写个shell脚本初始化nvme0
时间: 2023-06-29 16:19:32 浏览: 157
好的,以下是一个简单的shell脚本,可以用来初始化nvme0:
```bash
#!/bin/bash
# 检查是否有nvme0设备
if [ ! -e /dev/nvme0n1 ]; then
echo "Error: nvme0 device not found!"
exit 1
fi
# 卸载nvme0设备
sudo umount /dev/nvme0n1
# 初始化nvme0设备
sudo nvme format /dev/nvme0n1 -s 1
# 创建文件系统
sudo mkfs.ext4 /dev/nvme0n1
echo "nvme0 initialized and formatted successfully!"
```
这个脚本首先检查是否有nvme0设备,如果没有,则输出错误信息并退出。接下来,它会卸载nvme0设备(如果已经挂载),然后使用nvme命令对设备进行初始化。最后,它会使用mkfs命令创建一个ext4文件系统。
相关问题
写个shell脚本初始化nvme0并分出一个区
好的,以下是一个简单的shell脚本,可以用来初始化nvme0并分出一个区:
```bash
#!/bin/bash
# 检查是否有nvme0设备
if [ ! -e /dev/nvme0n1 ]; then
echo "Error: nvme0 device not found!"
exit 1
fi
# 卸载nvme0设备
sudo umount /dev/nvme0n1
# 初始化nvme0设备
sudo nvme format /dev/nvme0n1 -s 1
# 创建分区
sudo parted /dev/nvme0n1 mklabel gpt
sudo parted /dev/nvme0n1 mkpart primary ext4 0% 100%
# 创建文件系统
sudo mkfs.ext4 /dev/nvme0n1p1
echo "nvme0 initialized and partitioned successfully!"
```
这个脚本与上一个脚本类似,但是额外添加了创建分区的步骤。它使用parted命令创建一个gpt分区表,并在nvme0设备的整个空间上创建一个主分区。然后,它使用mkfs命令创建一个ext4文件系统。请注意,在分区的情况下,设备路径会变为/dev/nvme0n1p1,而不是/dev/nvme0n1。
使用shell dd命令对NVME盘进行稳定压测的脚本
使用shell脚本来对NVMe(下一代存储设备)进行稳定压测,一般会结合`dd`命令和其他脚本语言如bash来实现。以下是一个简单的bash脚本示例,用于对NVMe进行连续读写的压测:
```bash
#!/bin/bash
# NVMe设备名称
DEVICE="/dev/nvme0n1"
# 块大小 (根据设备性能调整)
BLOCK_SIZE=512K # 或者1M, 4M等,以KB为单位
# 初始化大文件
INPUT_FILE="largefile.bin"
rm -f $INPUT_FILE
dd if=/dev/zero of=$INPUT_FILE bs=$BLOCK_SIZE count=$((1024 * 1024)) # 生成1GB的全零文件
# 压测开始
echo "Starting I/O stress test..."
for i in {1..10} ; do
# 写入文件
echo "Writing to device ($i/10)..."
dd if=$INPUT_FILE of=$DEVICE seek=$((i * 10)) bs=$BLOCK_SIZE oflag=direct
# 每次写入后进行短暂停顿以允许设备处理
sleep 10s
# 如果需要,可以选择同步写入,避免写入缓存
# sync
# 阅读回查以验证数据完整性
echo "Reading from device ($i/10)..."
dd if=$DEVICE of=$INPUT_FILE skip=$((i * 10)) bs=$BLOCK_SIZE iflag=direct | md5sum -c
done
echo "Test completed."
```
此脚本首先创建一个全零文件,然后循环进行写入和读取,每次写入后稍作休息,然后读回确认数据一致性。你可以根据实际情况修改脚本参数,比如循环次数、文件大小和写入间隔等。
阅读全文