使用dd命令可实现Linux系统盘的完整迁移。首先确认源盘(如/dev/sda)和目标盘(如/dev/sdb)正确连接,目标盘容量不低于源盘已用空间,建议在Live CD环境下操作以避免数据占用。通过lsblk或fdisk -l识别设备名后,执行sudo dd if=/dev/sda of=/dev/sdb bs=4M status=progress conv=fsync进行整盘克隆,确保数据一致性。克隆完成后,若目标盘更大,需使用gparted或parted扩展分区,LVM环境则用pvresize等命令调整逻辑卷。最后将新盘设为启动设备,若引导失败,可通过Live系统挂载并重新安装GRUB:mount /dev/sdb1 /mnt,绑定/dev、/proc、/sys,chroot后执行grub-install /dev/sdb和update-grub。整个过程需谨慎核对设备名称,防止误操作导致数据丢失,适合对完整性要求高的系统迁移场景。

系统盘迁移在更换硬盘或升级存储设备时非常常见。Linux下使用dd命令可以实现完整的磁盘克隆,适用于系统迁移、备份恢复等场景。这种方法复制的是整个磁盘的二进制数据,包括分区表、引导信息和所有文件系统,因此能完整保留原系统状态。
准备工作:确保环境安全
使用dd进行磁盘克隆前,必须做好以下准备:
- 确认源盘和目标盘连接正常,可通过
lsblk或fdisk -l查看磁盘列表 - 目标盘容量应大于等于源盘已使用空间(推荐容量相等或更大)
- 建议在Live CD/USB环境下操作,避免文件系统被占用导致数据不一致
- 备份重要数据,
dd操作不可逆,误操作可能导致数据丢失
识别磁盘设备名称
执行以下命令查看当前系统中的磁盘:
lsblk# 或
sudo fdisk -l
输出中会列出类似/dev/sda、/dev/sdb的设备名。假设原系统盘为/dev/sda,新硬盘为/dev/sdb,请务必确认无误后再继续。
使用dd命令克隆磁盘
运行以下命令开始克隆:
sudo dd if=/dev/sda of=/dev/sdb bs=4M status=progress conv=fsync参数说明:
-
if=/dev/sda:输入文件,即源磁盘 -
of=/dev/sdb:输出文件,即目标磁盘 -
bs=4M:每次读写4MB,提升效率 -
status=progress:显示复制进度 -
conv=fsync:确保写入完成后才结束,防止缓存导致数据不全
等待命令执行完成,时间长短取决于磁盘大小和速度。
调整新磁盘分区(可选)
如果目标盘比源盘大,克隆后未使用的空间默认不会自动扩展。需手动调整分区:
- 使用
gparted图形工具或parted命令行工具扩展主分区 - 若使用LVM,可用
pvresize、lvextend和resize2fs或xfs_growfs扩展逻辑卷
设置新磁盘可启动
克隆后,新磁盘已包含引导程序(如GRUB),但仍需检查:
- 将新磁盘接入目标机器,进入BIOS选择其为启动盘
- 若无法引导,可用Live系统启动并挂载新盘,重新安装引导:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
grub-install /dev/sdb
update-grub
exit
基本上就这些。只要识别清楚设备、操作细心,用dd克隆系统盘是可靠且直接的方法。适合对数据一致性要求高的迁移任务。










