需求
- 树莓派
- SD 卡 2 张,其中一张可引导系统
- USB 存储(可选)
不需要
- SD 读卡器
- 显示器
- 键盘
最近买了第四代树莓派,但等到 SD 卡寄到了我才意识到我的读卡器忘记带在身边了。环顾四周,唯一有 SD 卡槽的居然只有那只老的树莓派 3B+。理论上我可以直接用 U 盘引导系统,但我不知为何一直无法成功。我更无法冒险将唯一可以引导系统的 SD 卡改为引导到 U 盘,因为万一失败了我在搞到读卡器之前都再也进不去系统了。
于是我就想到了一个骚操作:先用一张 SD 卡引导系统,ssh 进去,然后利用 pivot_root 将 root 转移到 SD 卡以外的地方(U 盘或者内存盘),这样我就能把引导系统的 SD 卡拔下来换新的上去了。全程都可以在 ssh 上完成。
我自己在 U 盘里写了一个系统,理论上用内存盘也是可行的,但我没找到大小 1G 以内并且带 ssh 的好用的镜像。以下是我用到的命令:
1 2 3 4 5 6 7 8 |
sudo telinit 2 for SERVICE in \ `chkconfig --list | grep 2:on | awk '{print $1}' | grep -v -e ssh -e dhcpcd`; \ do echo "Stopping $SERVICE"; sudo service $SERVICE stop; done sudo umount -a sudo mount -o rw /dev/sda3 /media/usb_boot cd /media/usb_boot sudo unshare -m |
1 |
pivot_root . old |
1 2 3 4 5 6 7 8 |
cd / mount -a mount none /sys -t sysfs mount none /dev -t devtmpfs umount /old/proc umount /old/dev/pts umount /old/dev mount devpts /dev/pts -t devpts |
1 |
/usr/sbin/sshd -p 2222 |
0 条评论。