dd if=/dev/sda of=/dev/sdb bs=4M conv=notrunc,noerror
Linux系统中,克隆系统盘是一项常见且重要的操作,尤其在系统迁移、备份或升级硬件时,以下是几种常用的Linux系统盘克隆方法及其详细步骤:
克隆方法 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
dd 命令 |
完整磁盘克隆,包括所有分区和数据 | 简单直接,适用于整个磁盘的逐位复制 | 耗时长,目标磁盘需与源磁盘大小相同或更大,易受坏道影响 |
Partclone 工具 |
分区级别克隆,支持文件系统优化 | 支持压缩和文件系统调整,速度较快 | 需安装额外软件,对复杂分区结构可能需手动调整 |
Clonezilla 工具 |
图形化操作,支持增量备份和恢复 | 用户友好,支持多种存储设备和网络传输 | 需制作启动盘,初次配置稍复杂 |
rsync 命令 |
文件级同步,适合目录迁移 | 支持增量同步和排除特定文件,灵活高效 | 仅适用于文件系统,无法克隆整个磁盘或分区 |
使用dd
命令克隆系统盘
-
准备工作
- 确认设备名称:通过
lsblk
或fdisk -l
查看源磁盘(如/dev/sda
)和目标磁盘(如/dev/sdb
)的名称。 - 卸载目标分区:若目标磁盘已挂载,需先卸载。
umount /dev/sdb1
。 - 检查目标磁盘容量:确保目标磁盘容量不小于源磁盘。
- 确认设备名称:通过
-
执行克隆
sudo dd if=/dev/sda of=/dev/sdb bs=4M conv=sync,noerror status=progress
if
:源磁盘。of
:目标磁盘。bs=4M
:设置块大小为4MB,平衡速度与兼容性。conv=sync
:确保数据完整写入,noerror
跳过读取错误。status=progress
:实时显示进度。
-
验证与启动
- 同步缓存:
sudo sync
确保数据写入磁盘。 - 检查克隆结果:通过
fdisk -l /dev/sdb
确认分区结构与源磁盘一致。 - 启动测试:将目标磁盘设置为启动项,进入BIOS/UEFI调整启动顺序。
- 同步缓存:
使用Partclone
工具克隆分区
-
安装
Partclone
sudo apt install partclone # Debian/Ubuntu sudo yum install partclone # CentOS/RHEL
-
克隆分区
sudo partclone.ext4 -b -s /dev/sda1 -o /dev/sdb1
-b
:备份模式(也支持恢复模式-r
)。-s
:源分区(如/dev/sda1
)。-o
:目标分区(如/dev/sdb1
)。
-
优势:支持文件系统压缩(如
-d
参数),减少目标磁盘空间占用;保留权限和属性,适合分区迁移。
使用Clonezilla
工具克隆整个系统
-
制作启动盘
- 下载Clonezilla镜像(https://clonezilla.org/downloads.php)。
- 使用
Rufus
或dd
将镜像写入U盘:sudo dd if=clonezilla-xxxx.iso of=/dev/sdX bs=4M status=progress
-
启动并克隆
- 从U盘启动计算机,选择
device-image
或device-device
模式。 - 选择源磁盘(如
/dev/sda
)和目标磁盘(如/dev/sdb
)。 - 确认后开始克隆,完成后重启并调整启动顺序。
- 从U盘启动计算机,选择
-
优势:支持图形化操作,可自动调整分区大小;支持网络传输(如克隆到远程服务器)。
使用rsync
同步文件系统(非全盘克隆)
-
适用场景:迁移根文件系统(如)到新分区,保留配置。
-
执行同步
sudo rsync -aAXh --exclude={"/dev/","/proc/","/sys/","/tmp/","/run/","/mnt/","/media/","/lost+found"} / /mnt/new_root/
-aAXh
:归档模式,保留权限、压缩文件并显示进度。--exclude
:排除虚拟文件系统和临时目录。
-
后续操作:同步后需手动复制引导记录(如GRUB),并更新
/etc/fstab
。
FAQs
-
Q: 克隆后目标磁盘无法启动,如何解决?
A: 可能是引导记录未复制或分区未激活,解决方法:- 使用
grub-install
重新安装引导程序,sudo grub-install --root-directory=/mnt/new_root /dev/sdb sudo update-grub # 更新配置文件
- 检查目标磁盘的ESP(启动分区)是否激活(使用
fdisk
或parted
)。
- 使用
-
Q:
dd
命令克隆速度过慢,如何优化?
A: 调整块大小(bs
参数)或使用更高带宽的接口(如SATA→NVMe)。sudo dd if=/dev/sda of=/dev/sdb bs=8M status=progress
注意:块大小过大可能导致某些文件系统出错,需根据硬件稳定性调整
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/49232.html