将单个分区克隆到可启动 USB

将单个分区克隆到可启动 USB

我有一个带有 2 个操作系统分区的硬盘。它们加在一起太大,无法克隆到我的闪存驱动器上。无论如何,我只想克隆较小的一个。

/dev/sda1: 120GB HDD 分区 1(Lubuntu)
/dev/sda2: 8GB HDD 分区 2(Debian) <-- 想要克隆这个
/dev/sdb: 32GB 闪存驱动器

我尝试通过克隆单个分区dd,但它似乎无法启动:

sudo dd if=/dev/sda2 of=/dev/sdb status=progress bs=1M

当我尝试启动此闪存驱动器时,我单击“启动 USB”,但 BIOS 菜单重置为 grub 启动菜单,其中我唯一的 2 个选项是 2 HDD 操作系统。

  1. 问题是我尝试将单个分区 ( sda2) 克隆到驱动器 ( sdb) 吗?我应该改用sdb1吗?

  2. 由于我只克隆一个分区,这是否意味着启动(grub)内容丢失了?

如何成功将单个操作系统分区克隆至可启动闪存驱动器?

答案1

你的两个假设都是正确的。当您将分区直接转储到拇指驱动器时,没有分区表,因此也没有引导扇区。

为了使其发挥作用,您可以采取几种方法。通常,首先在驱动器上创建分区表,然后创建将包含操作系统数据的实际分区(/dev/sdb1),然后将数据复制到那里。获得所有数据后,您也可以将 grub 安装到驱动器上。

这可以通过几个命令很快完成,但如果您不习惯术语和概念,很容易犯(可怕的)错误。所以我会建议你以下,这应该更容易:

  1. 备份!一切!有时,您可能会因丢失单个字符而永久丢失所有数据。
  2. 安装并打开 gparted:
    • 选择您的拇指驱动器(确保它没有选择您的磁盘)
    • 菜单“设备”>“创建分区表”
    • 你可以使用msdos
    • 在未分配的空间上创建一个主分区,如 ext4
    • 将新分区设置为可启动
    • 申请并退出
  3. 跑步sudo dd if=/dev/sda2 of=/dev/sdb1; sudo resize2fs /dev/sdb1
  4. 启动进入你的 Debian 系统(我假设你的拇指驱动器/dev/sdb在启动 Debian 后仍然存在)
    • 运行blkid /dev/sdb1以获取已克隆的分区的 UUID。
    • 备份当前/etc/fstab文件。
    • 更新它,使其引用/您获得的 UUID 的路径,如下所示:
...
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=5405ba56-dd62-48b4-b381-976162b4957c /               ext4    errors=remount-ro 0       1
  • 运行sudo mount /dev/sdb1 /mnt; sudo cp -p /etc/fstab /mnt/etc/fstab; sudo umount /mnt以将这个新的 fstab 复制到您的拇指驱动器 Debian。
  • 跑步sudo grub-install /dev/sdb
  • 将文件备份恢复/etc/fstab到原始状态(使用磁盘分区的 UUID,而不是拇指驱动器分区)。
  • 这些命令不应该扰乱你的 Debian 磁盘的启动,但现在已经fstab恢复到原来的状态,运行sudo update-grub只是为了确保,因为更新可以在文件/etc/fstab设置到拇指驱动器时读取该文件。

这应该已将 debian 分区的内容克隆到拇指驱动器并为其创建启动环境。我现在无法在这里验证此过程,因此请注意,尽管我已经做过几次这样的事情,但此处的命令目前尚未经过测试。

相关内容