Banana Pi M5 eMMC中Armbian系统的备份与恢复问题求助
Banana Pi M5 eMMC系统备份与恢复解决方案
问题根源分析
你遇到的initramfs启动卡住问题,主要来自两个原因:
- 备份时eMMC的根分区处于挂载读写状态,实时写入的脏数据被
dd捕获,导致镜像文件系统不一致 - 恢复时未正确解压xz压缩的镜像文件,直接写入了压缩数据
正确的整盘备份步骤(优先推荐)
方法1:从SD卡启动后备份(最可靠)
- 制作一张可启动的Armbian/Ubuntu SD卡,插入Banana Pi M5
- 执行命令清空eMMC引导区(确保从SD卡启动):
sudo dd if=/dev/zero of=/dev/mmcblk1 bs=1M count=10 - 启动系统后,确认eMMC设备路径(通常为
/dev/mmcblk1)且未被挂载:lsblk - 挂载USB存储设备:
sudo mkdir -p /media/usb sudo mount /dev/sda1 /media/usb - 执行整盘备份并压缩:
sudo dd if=/dev/mmcblk1 bs=1M status=progress | xz -9 > /media/usb/emmc_backup.img.xz
方法2:在eMMC系统内备份(无需切换SD卡)
如果无法从SD卡启动,可先冻结文件系统避免脏数据:
- 冻结根文件系统(暂停所有磁盘写入):
sudo fsfreeze -f / - 执行备份命令:
sudo dd if=/dev/mmcblk1 bs=1M status=progress | xz -9 > /media/usb/emmc_backup.img.xz - 解冻文件系统:
sudo fsfreeze -u /
正确的恢复步骤
- 从SD卡启动系统,挂载USB存储:
sudo mount /dev/sda1 /media/usb - 解压并写入镜像到eMMC:
(xzcat /media/usb/emmc_backup.img.xz | sudo dd of=/dev/mmcblk1 bs=1M status=progress conv=fsyncconv=fsync确保所有数据写入磁盘后再结束命令)
跨设备复制替代方案(rsync文件级备份)
如果需要将系统复制到其他Banana Pi M5,文件级备份比整盘镜像更灵活:
- 从SD卡启动,挂载源eMMC根分区:
sudo mount /dev/mmcblk1p2 /mnt/source - 挂载USB存储:
sudo mount /dev/sda1 /media/usb - 同步系统文件(排除临时/设备目录):
sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/source/ /media/usb/bpi_system_backup/ - 恢复到新设备:
- 先在新eMMC上刷入基础Armbian镜像
- 从SD卡启动,挂载新eMMC根分区到
/mnt/target - 同步备份文件:
sudo rsync -aAXv /media/usb/bpi_system_backup/ /mnt/target/ - 修复引导:
sudo mount --bind /dev /mnt/target/dev sudo mount --bind /proc /mnt/target/proc sudo mount --bind /sys /mnt/target/sys sudo chroot /mnt/target update-grub grub-install /dev/mmcblk1 exit
内容的提问来源于stack exchange,提问作者Denis
相关产品推荐
相关产品推荐

