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跳过错误(但可能引入数据错位)dd运行中的根分区大概率损坏镜像status=progress,但某些内核版本下该参数无效,得用pv替代:sudo pv /dev/sda | sudo dd of=image.img bs=4M
partclone 比 dd 快在哪?哪些分区类型能用partclone在文件系统层操作,只复制已用块,跳过空白区域,还能边复制边压缩。但它不是万能的:
ext2/3/4、xfs、btrfs、ntfs等,但zfs和f2fs需确认版本(如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
mkisofs 或 genisoimage 打包目录后无法启动这两个工具只生成标准ISO 9660文件系统,本身不具备引导能力。要可启动,必须满足三个硬性条件:
isolinux.bin或boot/grub/efi.img
-b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table(BIOS模式)-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冲突mondoarchive默认不识别,得加-x参数并手动写--exclude-fstab规则,否则备份会跳过这些逻辑卷真正麻烦的从来不是“怎么生成一个镜像”,而是“还原时能不能从第一行引导日志开始就不出错”。dd和partclone适合单机快速兜底,mondo适合多服务器统一策略,而mkisofs只该出现在你明确知道自己在构建安装介质的场景里——把它当系统备份工具,等于拿螺丝刀当锤子使。