前言
最近想把我的8G树莓派5拿出来做Minecraft服务器,但由于之前被便宜内存卡掉数据坑过一次,这次想起树莓派上面有一个PCIe x1接口,同时树莓派也支持加装并使用NVMe固态作为系统盘,拿出了换下来的PM981,开始折腾~
本文参考国外大佬 Jeef Geerling 的这篇文章。不知道算不算翻译了(
准备
启用PCIe
首先要做的,当然是将扩展板和固态安装好,并且准备一张刷写好系统的内存卡啦~
然后,打开树莓派,进入系统,打开终端(或者SSH进来),编辑/boot/firmware/config.txt
文件,添加以下内容:
# 如果使用的是 HAT+ 标准的扩展板,会自动启用 pciex1,无需手动启用
dtparam=pciex1
# 默认是 Gen2 速率,也可以添加下面一行启用 Gen3 速率
# dtparam=pciex1_gen=3
开启PCIe以后,建议找一个支持PD协议的电源供电,以保证固态正常使用。
重启树莓派后,即可使用 lspci
命令检查系统能否识别到固态。如果正常,命令会返回如下内容:
0000:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21) 0000:01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983 0001:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21) 0001:01:00.0 Ethernet controller: Raspberry Pi Ltd RP1 PCIe 2.0 South Bridge
出现 Non-Volatile memory controller
字样即说明固态已被系统识别。
设置 NVMe 优先启动
运行 sudo rpi-eeprom-config --edit
命令,找到 BOOT_ORDER
项,默认值应为 0xf41
,即先尝试U盘启动,再尝试内存卡启动。
将其改为 0xf416
(先尝试NVMe启动,再尝试U盘启动,最后尝试内存卡启动)后,保存文件即可。
这里也可以改成自己想要的顺序,最多可设置8项,顺序从后往前,可参考树莓派官方文档。
向 NVMe 刷入系统
准备工作做好后,即可向NVMe固态中刷入系统。可以通过NVMe硬盘盒在电脑上使用 Raspberry Pi Imager 刷入(这个不用教了吧),也可以使用脚本迁移内存卡中的系统。
迁移系统
这里需要用到国外大佬 Jeff Geerling 维护的 rpiclone
工具(原版不支持NVMe),直接使用以下命令即可安装:
git clone https://github.com/geerlingguy/rpi-clone.git
cd rpi-clone
sudo cp rpi-clone rpi-clone-setup /usr/local/sbin
安装好 rpiclone
工具后,运行 sudo rpi-clone nvme0n1
即可将内存卡中系统迁移至固态。
迁移前可使用以下命令,删除固态内所有分区(删除前请一定一定要做好备份!):
sudo umount /dev/nvme0n1p? sudo wipefs --all --force /dev/nvme0n1p? sudo wipefs --all --force /dev/nvme0n1 sudo dd if=/dev/zero of=/dev/nvme0n1 bs=1024 count=1
迁移系统后,就可以拔掉内存卡,测试一下系统能否从固态硬盘启动啦~
Comments NOTHING