M2 SSD硬盘
本文介绍如何在Linux系统中对NVMe固态硬盘(以/dev/nvme0n1为例)进行分区、格式化、挂载及性能测试的完整流程,适用于Quectel Pi H1。
硬件接口
快速开始
首先安装3个尼龙柱,用3个短螺钉固定尼龙柱底部,然后再安装GPIO转接头,用力按压,保证所有的引脚都安装到位。接着再将PCIe转接线完全均匀地插入单板电脑的PCIe端口后,从两侧向下推动PCIe接口的支架,将PCIe转接线牢牢固定到位。
- 安装完成后正面图:
- 安装完成后背面图:
- 安装完成后侧面图:
- 最后将M.2HAT+设置在尼龙柱顶部,并使用3个长螺钉,将M.2HAT+固定到位。
功能使用
通过fdisk工具对NVMe设备进行分区操作,步骤如下:
进入分区交互界面
执行以下命令,启动fdisk并指定目标NVMe设备:
fdisk /dev/nvme0n1
交互界面操作步骤
进入fdisk交互模式后,按以下顺序执行命令:
创建GPT分区表
输入g并回车,创建GUID分区表(GPT),适用于大容量设备(推荐):
Command (m for help): g
Created a new GPT disklabel (GUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)
新建分区
输入n并回车,创建一个新分区。后续参数(分区号、起始扇区、结束扇区)保持默认即可(默认会使用全部可用空间):
Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-xxxxxxxxx, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-xxxxxxxxx, default xxxxxx):
Created a new partition 1 of type 'Linux filesystem' and of size XX GiB.
写入分区表并退出
输入w并回车,将分区配置写入设备并退出fdisk:
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
操作完成后,系统会生成新分区/dev/nvme0n1p1(p1表示第一个分区)。
格式化分区(EXT4格式)
使用mkfs.ext4工具将新分区格式化为EXT4文件系统(适用于大多数Linux环境):
mkfs.ext4 /dev/nvme0n1p1
执行后会显示格式化进度,完成后输出类似信息:
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 12345678 4k blocks and 3456789 inodes
Filesystem UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Superblock backups stored on blocks:
32768, 98304, 163840, ...
Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done
手动挂载分区
创建挂载目录
使用mkdir命令创建一个用于挂载SSD的目录(示例路径为/mnt/myssd):
mkdir -p /mnt/myssd
挂载分区
将/dev/nvme0n1p1分区挂载到/mnt/myssd目录:
mount /dev/nvme0n1p1 /mnt/myssd
可通过df -h命令验证挂载是否成功,若输出中包含/dev/nvme0n1p1和/mnt/myssd则表示挂载正常:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p1 100G 5G 95G 5% /mnt/myssd
配置自动挂载(重启后生效)
通过修改/etc/fstab文件实现系统启动时自动挂载分区:
编辑fstab文件
使用nano编辑器打开/etc/fstab(也可使用vim等其他编辑器):
添加挂载配置
在文件末尾添加以下行,指定分区、挂载点、文件系统类型及挂载参数:
/dev/nvme0n1p1 /mnt/myssd ext4 defaults 0 2
性能测试(读写速度验证)
使用dd命令测试SSD的读写性能(测试时确保分区已挂载):
读取速度测试
创建一个临时测试文件,并通过读取该文件到空设备(/dev/null)测试读取速度:
dd if=/mnt/myssd/testfile of=/dev/null bs=1G iflag=direct # iflag=direct:绕过系统缓存,测试真实读取速度
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.852345 s, 1.3 GB/s
写入速度测试
生成一个1GB的空文件(/dev/zero为零数据来源),测试写入速度:
dd if=/dev/zero of=/mnt/myssd/testfile bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 1.245678 s, 862 MB/s
测试完成后可删除临时文件:
rm /mnt/myssd/testfile