一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Linux系统备份与恢复 常用镜像制作工具 教程

时间:2026-06-10 08:03:47 编辑:袖梨 来源:一聚教程网

Linux系统级备份与恢复中,dd适合整盘克隆但耗时且不可增量;partclone更高效、支持压缩和中断续传;mkisofs/genisoimage仅适用于打包已挂载的只读目录为可启动ISO,非系统备份工具;mondo是唯一支持LVM/RAID/UEFI引导修复与还原校验的生产级全自动方案。

直接说结论:Linux系统级备份与恢复,dd适合整盘克隆但耗时且不可增量;partclone更高效、支持压缩和中断续传;mkisofs/genisoimage只适用于「已挂载的只读文件系统目录」打包成可启动ISO,不是系统备份工具;mondo是唯一能全自动处理LVM/RAID/UEFI+引导修复+还原校验的生产级方案,但配置门槛略高。

dd 备份整个磁盘时为什么总卡住或失败

dd本质是块设备逐扇区复制,它不理解文件系统,所以:

  • 遇到坏道会阻塞甚至失败,需加conv=noerror,sync跳过错误(但可能引入数据错位)
  • 目标空间必须 ≥ 源磁盘总容量,哪怕实际只用了10GB,也不能压缩
  • 无法排除/tmp、/proc等虚拟文件系统,直接dd运行中的根分区大概率损坏镜像
  • 进度条靠status=progress,但某些内核版本下该参数无效,得用pv替代:sudo pv /dev/sda | sudo dd of=image.img bs=4M

partclonedd 快在哪?哪些分区类型能用

partclone在文件系统层操作,只复制已用块,跳过空白区域,还能边复制边压缩。但它不是万能的:

  • 支持ext2/3/4xfsbtrfsntfs等,但zfsf2fs需确认版本(如partclone.f2fs在较新发行版中才内置)
  • 备份前必须umount或至少fsfreeze -f冻结文件系统,否则可能 inconsistent
  • 压缩用-C参数(默认gzip),想更快可用-j4开4线程,但别用-C + -j组合——部分旧版会崩溃
  • 示例:sudo partclone.ext4 -c -s /dev/sda2 -o backup.pcl -C -j2,还原时把-c换成-r

为什么用 mkisofsgenisoimage 打包目录后无法启动

这两个工具只生成标准ISO 9660文件系统,本身不具备引导能力。要可启动,必须满足三个硬性条件:

  • 源目录里得有合法的El Torito引导映像,通常是isolinux.binboot/grub/efi.img
  • 必须显式指定-b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table(BIOS模式)
  • UEFI启动还需-eltorito-alt-boot -e EFI/boot/BOOTx64.efi -no-emul-boot,且BOOTx64.efi必须是真实有效的PE格式二进制
  • 常见错误:SYSLINUX not a bootable disk——说明-b指向的文件不存在或不是SYSLINUX生成的;Failed to load EFI image——BOOTx64.efi路径错或签名不被固件接受

mondo 配置里最容易被忽略的三个点

mondo自动化程度高,但关键路径和策略必须手动确认,否则还原时才发现缺东西:

  • -d /backup指定的备份目录,必须是独立挂载点(不能是/home/backup),且剩余空间要 ≥ 1.5倍系统已用空间(含压缩冗余)
  • -E "/tmp|/proc|/sys|/dev"排除列表必须包含所有虚拟文件系统,漏掉/dev会导致备份中混入设备节点,还原时可能触发udev冲突
  • 若系统用了LVM thin pool或Btrfs子卷,mondoarchive默认不识别,得加-x参数并手动写--exclude-fstab规则,否则备份会跳过这些逻辑卷

真正麻烦的从来不是“怎么生成一个镜像”,而是“还原时能不能从第一行引导日志开始就不出错”。ddpartclone适合单机快速兜底,mondo适合多服务器统一策略,而mkisofs只该出现在你明确知道自己在构建安装介质的场景里——把它当系统备份工具,等于拿螺丝刀当锤子使。

热门栏目