NVMe
本节介绍在树莓派上如何使用 NVMe 硬盘功能,为后续项目开发奠定基础。
注意:在使用此功能前需先启用 PCIe 接口
启用 PCIe 接口
- 启用 PCIe gen3 接口(PCIe gen2 默认为启用状态)
- 进入 config.txt 文件(根据你的系统版本选择对应路径)
sudo nano /boot/config.txt # 部分旧版本系统在这个路径sudo nano /boot/firmware/config.txt # 新版系统基本都在这个路径 - PCIE 默认是 gen2,如果需要启用 PCIE gen3, 则在 config.txt 中添加
dtparam=pciex1_gen=3 - 修改之后重启树莓派,就可以识别到设备了
sudo reboot - 重启后查看 PCIe 识别情况
lspci
- 进入 config.txt 文件(根据你的系统版本选择对应路径)
NVMe 硬盘操作
格式化硬盘
- 若没有启用 PCIe 接口的话,先启用 PCIe 接口
- 查看支持的格式,输入
sudo mkfs.后,按 tab 按键 可以看到很多种不同的后缀名,不同的后缀名对应允许格式化的格式sudo mkfs. - 列出所有硬盘
lsblk
- 假设要将
/dev/nvme0n1p1格式化为 ext4 文件格式,就是执行sudo mkfs.ext4 /dev/nvme0n1p1
硬盘分区
- 若没有启用 PCIe 接口的话,先启用 PCIe 接口
- 列出所有硬盘(如果想看到详细信息执行
sudo fdisk -l)lsblk
- 假设要将
/dev/nvme0n1重新分区,就是执行以下指令(注意:设备号是总设备号,不要添加 p1,那只是一个分区而已)sudo fdisk /dev/nvme0n1 - 添加分区执行
n即可,最后w保存退出 fdisk功能说明:n新建分区q不保存退出p打印分区表m打印选择菜单d删除分区w保存退出t修改 ID 号
手动挂载
- 若没有启用 PCIe 接口的话,先启用 PCIe 接口
- 确认好需要挂载的目录,若路径不存在先创建路径中缺少的文件夹(例如要挂载到当前文件夹的
toshiba文件夹下,当前目录若没有toshiba文件夹则使用以下指令创建)sudo mkdir toshiba - 列出所有硬盘(如果想看到详细信息执行
sudo fdisk -l)lsblk
- 假设要将
/dev/nvme0n1挂载到当前目录下的toshiba文件夹sudo mount /dev/nvme0n1p1 ./toshiba - 查看文件系统磁盘空间使用情况。
df -h
开机自动挂载
- 注意:自动挂载只有在不作为系统盘时使用,仅作为扩展磁盘时进行此类配置
- 若没有启用 PCIe 接口的话,先启用 PCIe 接口
- 修改
fstab文件sudo nano /etc/fstab - 在文件最下方添加 (/dev/nvme0n1p1 设备名, /home/pi/toshiba 挂载到目录,ext4 是文件系统类型 ,defaults 使用默认的挂载选项)
/dev/nvme0n1p1 /home/pi/toshiba ext4 defaults 0 0 - 使更改生效(测试无问题再重启,不然会导致无法挂载导致无法开机)
sudo mount -a - 在没有问题的情况下,执行重启操作
sudo reboot - 重启后查看挂载情况
lsblk
读写测试
-
若没有启用 PCIe 接口的话,先启用 PCIe 接口
-
查看挂载情况
lsblk -
挂载正常的情况下进入挂载目录(这里挂载目录是 /home/pi/toshiba)
cd /home/pi/toshiba -
拷贝树莓派内存内容到硬盘(写)
sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches" # 释放内存
sudo dd if=/dev/zero of=./test_write count=2000 bs=1024k # 写测试 -
拷贝硬盘内容到树莓派内存(读)
sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches" # 释放内存
sudo dd if=./test_write of=/dev/null count=2000 bs=1024k # 读测试 -
注意:不同的卡以及环境在树莓派上测试效果不同,部分硬盘速率受限,如果想要测试准确的性能使用 PC 电脑测试