以下是Debian文件系统迁移的详细步骤,以从旧硬盘迁移到新硬盘为例,核心步骤包括备份、分区、复制数据、更新引导等,可根据实际需求选择工具(如rsync、dd、Clonezilla):
备份重要数据
tar或rsync备份用户数据、配置文件(如/etc、/home、/var)到外部存储设备。sudo tar -czvf backup.tar.gz /home /etc /var。准备新硬盘
parted创建GPT分区表,mkfs.ext4格式化分区)。sudo parted /dev/sdb mklabel gpt → sudo mkfs.ext4 /dev/sdb1。rsync(推荐,保留权限和符号链接)挂载新硬盘
sudo mkdir /mnt/newrootsudo mount /dev/sdb1 /mnt/newroot。同步数据
/dev、/proc、/sys),仅复制系统文件:sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*"} / /mnt/newroot/。/disk),可单独指定:sudo rsync -av /disk/ /mnt/newroot/disk/。更新/etc/fstab
sudo blkid /dev/sdb1。/mnt/newroot/etc/fstab,替换旧分区UUID为新UUID,格式示例:UUID=新UUID / ext4 defaults 0 1。dd(快速复制整盘,但包含空扇区)复制整盘数据
sudo dd if=/dev/sda of=/dev/sdb bs=4M status=progress && sync。调整分区(如需)
parted或gparted调整分区边界。挂载必要的系统目录
sudo mount --bind /dev /mnt/newroot/dev
sudo mount --bind /proc /mnt/newroot/proc
sudo mount --bind /sys /mnt/newroot/sys。
进入新系统环境
sudo chroot /mnt/newroot。
重新安装GRUB
grub-install /dev/sdb。/dev/sdb2)并执行grub-install --target=x86_64-efi --efi-directory=/boot/efi。更新GRUB配置
update-grub。
退出并卸载
exit
sudo umount /mnt/newroot/{dev,proc,sys}。
验证新硬盘
/etc/fstab中的UUID是否正确。df -h查看新硬盘挂载情况。重启系统
| 工具 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
rsync |
增量迁移、保留权限 | 灵活、可选择性复制 | 需手动处理引导配置 |
dd |
整盘克隆(快速) | 简单、无需额外工具 | 占用空间大、无法排除文件 |
| Clonezilla | 大规模迁移、支持加密 | 支持压缩、验证和网络传输 | 需下载镜像、操作稍复杂 |
注意:
参考来源: