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/

安装 grub

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

# mount /dev/sda1 /mnt
# for in 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 in in /dev/pts /dev /proc /run /sys; do umount /mnt$i; done

Reference