必须使用dd命令:该命令以字节级方式读取整块设备,生成含mbr/gpt、全部分区、引导扇区及未分配空间的原始镜像,适用于裸机灾难恢复。

如果您需要在银河麒麟系统中通过命令行将整块硬盘完整备份为一个不可分割的IMG镜像文件,确保包含MBR/GPT分区表、所有分区、引导扇区及未分配空间,就必须使用dd命令直接读取底层块设备——该操作不依赖文件系统层级,生成的镜像可直接用于裸机恢复,但要求源设备识别绝对准确,否则将导致不可逆的数据覆写。
确认源磁盘与目标存储路径
1、打开终端,执行 lsblk 列出所有块设备,重点识别系统所在主磁盘(如 /dev/nvme0n1 或 /dev/sda),注意区分其与U盘、移动硬盘等外接设备;【误选设备将导致当前系统或重要数据被覆盖】
2、插入外部存储设备(如USB硬盘或NAS挂载点),运行 lsblk 确认其挂载路径(例如 /mnt/backup-disk);若未挂载,先创建目录并挂载:sudo mkdir -p /mnt/backup-disk && sudo mount /dev/sdb1 /mnt/backup-disk
3、执行 df -h /mnt/backup-disk 验证挂载点剩余空间是否 ≥ 源磁盘总容量(dd镜像大小与源盘物理容量完全一致,不压缩)
执行全盘dd镜像备份
方法一:基础无压缩镜像
1、以root权限执行:sudo dd if=/dev/nvme0n1 of=/mnt/backup-disk/kylin-disk-$(date +%Y%m%d).img bs=4M status=progress conv=noerror,sync
其中 if 必须指定整块磁盘设备节点(不是分区!如 /dev/nvme0n1,而非 /dev/nvme0n1p1),of 路径需确保有写入权限且空间充足。
方法二:实时gzip压缩节省空间
1、确认系统已预装gzip(银河麒麟默认具备);
2、执行管道命令:sudo dd if=/dev/nvme0n1 bs=4M status=progress conv=noerror,sync | gzip -c > /mnt/backup-disk/kylin-disk-$(date +%Y%m%d).img.gz
该方式显著减小镜像体积,但恢复时必须先解压再dd,不能直接挂载或dd回写。
校验与收尾操作
第一步:生成MD5校验码
执行 sudo md5sum /mnt/backup-disk/kylin-disk-$(date +%Y%m%d).img > /mnt/backup-disk/kylin-disk-$(date +%Y%m%d).md5,保存原始镜像完整性凭证。
第二步:安全卸载外接存储
执行 sudo umount /mnt/backup-disk,确认无进程占用后方可拔出设备。
第三步:验证镜像可读性(可选)
运行 file /mnt/backup-disk/kylin-disk-$(date +%Y%m%d).img,输出应含“DOS/MBR boot sector”或“Linux EXT filesystem data”等字样,表明镜像结构有效。











