V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fxrocks
V2EX  ›  Raspberry Pi

Pi4 装了 ubuntu server,如何备份整个 sd 卡然后直接到另一台 Pi4 上使用

  •  
  •   fxrocks · 2020-12-13 12:00:04 +08:00 · 3161 次点击
    这是一个创建于 1201 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,参考网上把 sd 卡挂载,然后用 sudo dd bs=4M if=/dev/mmcblk0 of=/dev/sda1,

    插入另一个 pi4,无法启动。。。

    有没有其他的方法?有好几个 pi,懒得每个都去安装配置一堆软件

    16 条回复    2020-12-14 00:59:02 +08:00
    M3ng
        1
    M3ng  
       2020-12-13 12:03:23 +08:00 via iPhone
    dd 存储设备而非分区
    ysc3839
        2
    ysc3839  
       2020-12-13 12:10:08 +08:00 via Android
    > 参考网上把 sd 卡挂载

    挂载指的是什么?挂载了文件系统?直接复制数据时不能挂载文件系统,因为随时有可能写入数据进去。
    fxrocks
        3
    fxrocks  
    OP
       2020-12-13 12:17:49 +08:00
    @ysc3839 , 谢谢。你这么一提醒,我仔细看了一下,原来是有挂载新 sd 的话,要先卸载。。。是我搞反了。。。

    我参考这个教程
    https://www.cirmall.com/bbs/thread-39663-1-1.html
    Osk
        4
    Osk  
       2020-12-13 12:29:45 +08:00
    sudo dd bs=4M if=/dev/mmcblk0 of=/dev/sda

    注意: 是 sda 不是 sda1


    另外: dd 来拷贝系统是一个糟糕的注意. 不过网上一堆 dd 的教程...
    xiaket
        5
    xiaket  
       2020-12-13 13:45:10 +08:00
    话说你是不是应该考虑把你的配置过程写成脚本或者 ansible playbook? 这样 rpi 挂了要重做也简单.
    mrcn
        6
    mrcn  
       2020-12-13 13:45:56 +08:00
    @Osk
    > dd 来拷贝系统是一个糟糕的主意
    为什么这么说呢?如果不用 dd,用什么方式比较合适呢?
    CEBBCAT
        7
    CEBBCAT  
       2020-12-13 13:57:46 +08:00 via Android
    @Osk 老兄,给出批评意见的同时最好搭配一个建议啊🙏
    fxrocks
        8
    fxrocks  
    OP
       2020-12-13 14:14:56 +08:00
    没有挂载就成功了。谢谢各位。

    @Osk,是的,我第二次用了 sda, 复制之前先用了 fdisk -l 查看

    麻烦告知一下有什么更好的方法,谢谢。目前复制要 1 个小时。。。用是能用了。
    Osk
        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 的目标盘大小和源盘如果不一致会是个问题,大了还好说,小了搞不好拷过去的会炸。
    fxrocks
        10
    fxrocks  
    OP
       2020-12-13 14:24:17 +08:00
    @xiaket



    其实真正使用就 8G,在找方法如何备份这 8G 一个镜像,卡是整个复制的。找到方法再搞成每天自动备份。
    fxrocks
        11
    fxrocks  
    OP
       2020-12-13 14:25:48 +08:00
    @Osk, 感谢指导,我等会儿试试。
    spcharc
        12
    spcharc  
       2020-12-13 14:34:27 +08:00
    为什么是 dd ? cp -ax 不好吗?而且 dd 还用错了…
    fxrocks
        13
    fxrocks  
    OP
       2020-12-13 15:39:00 +08:00 via Android
    @spcharc,我没怎么接触过 linux,菜鸟一枚,请教 dd 是哪里用错了,谢谢
    lh900519
        14
    lh900519  
       2020-12-13 16:24:53 +08:00 via Android
    可以参考这个项目,自己调整一下

    https://github.com/nanhantianyi/rpi-backup
    fxrocks
        15
    fxrocks  
    OP
       2020-12-13 19:10:33 +08:00 via Android
    @lh900519
    这个好,我研究一下。谢谢
    Hardrain
        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 分区的挂载点
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3355 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:17 · PVG 21:17 · LAX 06:17 · JFK 09:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.