1 min read

Debian 系统对拷迁移

Debian 安装在 U 盘,现在需要将系统完整拷贝到另外一个 U 盘并引导启动。

准备新 U 盘

使用 GParted 为新 U 盘创建 ext4 分区,分区前面保留 2MB 空间。

gparted

同步方式一:rsync

将两个系统分区如 /dev/sdc1 /dev/sdd1 分别挂载到 /mnt/dest/mnt/source

$ sudo rsync -aHAXE --delete-during /mnt/source/ /mnt/dest/

同步方式二:FSArchiver

备份系统

假设系统在 U 盘的 /dev/sda1 分区,将其备份到当前目录:

$ sudo fsarchiver savefs ~/backup-190629.fsa /dev/sda1 

恢复系统

将备份恢复到新 U 盘:

$ sudo fsarchiver restfs ~/backup-190629.fsa id=0,dest=/dev/sdc1

安装 grub

在 LiveCD 中挂载新U盘分区,并进入 chroot 环境。

# mount /dev/sda1 /mnt
# for i in /dev /dev/pts /proc /run /sys; do mount -B $i /mnt$i; done
# chroot /mnt

查看设备 PARTUUID

chroot# blkid
/dev/sda1: UUID="f91eb491-c446-4928-83aa-4cffac77c6d1" TYPE="ext4" PARTUUID="6923f823-01"

编辑 grub 配置文件

chroot# nano /etc/default/grub

GRUB_DISABLE_LINUX_UUID=true
GRUB_DEVICE="PARTUUID=6923f823-01"

编辑 fstab 配置文件,将根分区的 UUID=xxx 替换成实际的 PARTUUID=6923f823-01

chroot# nano /etc/fstab

安装 grub

chroot# grub-install --target=i386-pc --root-directory=/ /dev/sda

更新 grub 配置文件

chroot# update-grub

卸载文件系统

# for i in /dev/pts /dev /proc /run /sys; do umount /mnt$i; done

Reference