将树莓派系统从SD卡迁移到USB设备
Posted on Mon 09 January 2023 in howto
将树莓派4B的操作系统从SD卡迁移到U盘的过程:
-
更新系统
sudo apt update && sudo apt full-upgrade -y
-
确认已安装了最新版EEPROM Bootloader
sudo rpi-eeprom-update
若输出显示“UPDATE AVAILABLE“则在命令中加入-a选项予以更新
sudo rpi-eeprom-update -a
更新完成后,重启系统。
-
编辑bootloader配置文件,设定启动设备顺序
用命令
sudo -E rpi-eeprom-config --edit
查看 BOOT_ORDER 的内容。根据树莓派文档,BOOT_ORDER值的含义如下:
Value Mode Description 0x1 SD CARD SD card 0x2 NETWORK Network boot 0x3 RPIBOOT RPIBOOT 0x4 USB MSD USB mass storage boot 0xe STOP Stop and display error pattern. 0xf RESTART Start again with the first boot order field. 为使系统从U盘或插在USB #0接口上的硬盘/SSD上启动,设置
BOOT_ORDER=0xf14
意思是(数值从右向左解读):先试着从U盘启动(4),若不成功则尝试从SD卡启动(1),若再失败则重新尝试U盘(f)。
保存修改并重新启动。由于此时仍未插上U盘,从U盘启动失败后,系统仍然从原先的SD卡启动。
-
将U盘插在树莓派USB #0接口上,用
dmesg
命令查看U盘的盘符,例如/dev/sda。 -
将原系统拷贝到新U盘
注意:这个操作会抹掉U盘上所有内容
再次确认U盘的盘符,再次确认U盘容量大于SD卡,用dd命令拷贝:
sudo dd if=/dev/mmcblk0 of=/dev/sda bs=1024k
等待一段时间(视乎SD卡容量及U盘的写入速度,可能会比较长时间)直到命令执行完毕。关机,移出SD卡,重新开机。
如果一切顺利,系统应该会从U盘启动。
-
扩大根分区,充分利用U盘容量
dd命令拷贝的结果,U盘上只使用了与SD卡容量大小的空间,并没有充分利用,因此需要扩大根分区。输入命令:
sudo raspi-config
选择 Advanced Options/Expand Filesystem,重启系统使更改生效。
参考文档: