如题,参考网上把 sd 卡挂载,然后用 sudo dd bs=4M if=/dev/mmcblk0 of=/dev/sda1,
插入另一个 pi4,无法启动。。。
有没有其他的方法?有好几个 pi,懒得每个都去安装配置一堆软件
1
M3ng 2020-12-13 12:03:23 +08:00 via iPhone
dd 存储设备而非分区
|
2
ysc3839 2020-12-13 12:10:08 +08:00 via Android
> 参考网上把 sd 卡挂载
挂载指的是什么?挂载了文件系统?直接复制数据时不能挂载文件系统,因为随时有可能写入数据进去。 |
3
fxrocks OP @ysc3839 , 谢谢。你这么一提醒,我仔细看了一下,原来是有挂载新 sd 的话,要先卸载。。。是我搞反了。。。
我参考这个教程 https://www.cirmall.com/bbs/thread-39663-1-1.html |
4
Osk 2020-12-13 12:29:45 +08:00
sudo dd bs=4M if=/dev/mmcblk0 of=/dev/sda
注意: 是 sda 不是 sda1 另外: dd 来拷贝系统是一个糟糕的注意. 不过网上一堆 dd 的教程... |
5
xiaket 2020-12-13 13:45:10 +08:00
话说你是不是应该考虑把你的配置过程写成脚本或者 ansible playbook? 这样 rpi 挂了要重做也简单.
|
8
fxrocks OP |
9
Osk 2020-12-13 14:20:52 +08:00 via Android 1
parted 脚本完成自动分区,可选,手动分区也浪费不了一分钟。
脚本完成 分区格式化 /mkfs 。 对源系统进行调整:树莓派的 botloader 没啥要求,只要文件放 fat32 分区就行,调整下 cmdline.txt 和 /etc/fstab 的挂载设备名即可,由于算是嵌入式设备,root=/dev/mmcblk0pX 等参数可以写死,没问题的。 rsync 等工具真接拷贝系统和 boot 分区的文件即可,注意调整好了 --exclude 的话可以将正在跑的系统拷贝,不过一般不拷贝正在跑的系统。 树莓派就两三个分区: /boot/firmware 一个分区,256MB 以上的 FAT32 文件系统,内含树莓派的闭源启动代码,内核等,直接拷贝就行,没啥要求。 / 一个分区,一般 ext4 直接拷。 swap 分区,可选的。 不推荐 dd 是因为: dd 全盘拷贝会浪费较长时间,无意义的那种,现在的 SD 卡容量大但速度却不快,稳定性也捉急,有较低的概率拷挂。。。 还有就是 dd 的目标盘大小和源盘如果不一致会是个问题,大了还好说,小了搞不好拷过去的会炸。 |
10
fxrocks OP |
12
spcharc 2020-12-13 14:34:27 +08:00
为什么是 dd ? cp -ax 不好吗?而且 dd 还用错了…
|
14
lh900519 2020-12-13 16:24:53 +08:00 via Android
|
16
Hardrain 2020-12-14 00:59:02 +08:00
rsync
参考: https://wiki.archlinux.org/index.php/Rsync#Full_system_backup rsync -aAXHv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup /path/to/backup 改作新 TF 卡上 rootfs 分区的挂载点 |