Clonezilla 克隆基于 MBR 的 Linux 分区并恢复到基于 UEFI 的系统

Clonezilla 克隆基于 MBR 的 Linux 分区并恢复到基于 UEFI 的系统

我的实际笔记本电脑上有一个 xubuntu 分区,带有 MBR 和 grub,用于双启动 Windows 和 Linux。我正在尝试克隆 xubuntu 分区并恢复到基于 UEFI 的新笔记本电脑中。

在新笔记本电脑(最初只有 Windows 10 的 HP Probook)中,我设法创建了一个 ext4 分区并安装了 xubuntu 的新副本。现在我尝试用我的 xubuntu clonezilla 映像覆盖新的 ext4 分区,但恢复后遇到问题,因为 xubuntu 系统无法启动并且 grub 以 cmdline 模式启动。

我仍然可以通过 BIOS 启动选项启动到 Windows 分区。

这就是我所做的:

  1. 使用clonezilla将旧的ext4 xubuntu分区克隆到映像(在USB磁盘上)

  2. 在新笔记本电脑上,我禁用了安全启动并禁用了旧版支持,以便创建/调整分区大小

  3. 创建了一个新的空 ext4 分区,我在其中安装了新的 xubuntu 系统。现在我可以启动 Windows 和 xubuntu

  4. 恢复了ext4分区上的clonezilla xubuntu镜像,覆盖了全新安装的xubuntu

  5. 系统无法用xubuntu分区启动,用grub命令行启动

如何恢复 grub 选项?

谢谢

答案1

Xubuntu 的 GRUB 可能通过文件系统 UUID 来标识包含 GRUB 配置文件和/或 Xubuntu 根文件系统的分区。当您使用 clonezilla 映像覆盖全新安装时,该 UUID 会被映像中的文件系统 UUID 覆盖。

GRUB 命令行模式表明 GRUB 甚至没有找到自己的配置文件和/或normal.modGRUB 命令行模式表示由于 UUID 更改,文件。也许可以使用命令行模式来执行手动启动所需的命令,但如果您以前没有使用过 GRUB 命令行,那么这会非常棘手。相反,您可能应该使用 Xubuntu Live CD Recovery - 它更容易。要访问您的安装,请找到“更新失败”段落并执行步骤 1-7:

1.) 启动 [X]Ubuntu Live CD。

2.) 按 Ctrl-Alt-F1

3.) sudo mount /dev/sda1 /mnt## 将 sda1 替换为根分区的实际设备名称

4.)sudo mount --bind /dev /mnt/dev

5.)sudo mount --bind /proc /mnt/proc

6.)sudo mount --bind /sys /mnt/sys

7.)sudo chroot /mnt

现在您应该可以在命令行模式下访问从映像恢复的文件系统。

但由于您的映像来自基于 MBR 的系统,因此它很可能包含 MBR 版本的 GRUB 引导加载程序。在新系统上,您将需要 UEFI 版本的 GRUB 以及命令efibootmgr。在替换 GRUB 之前,您可能需要挂载 ESP 分区(= 包含磁盘上任何操作系统的所有 UEFI 引导加载程序的小 FAT 分区。)/boot/efi- 如果该挂载点尚不存在,请创建它。

如果 Live CD 成功启动网络连接,您现在可能只能使用apt命令:

sudo apt-get remove grub-pc
sudo apt-get install grub-efi-amd64 grub-efi-amd64-signed efibootmgr

作为 GRUB 重新安装过程的一部分,安装很可能grub-efi-amd64会自动重建您的 GRUB 配置,您无需执行任何其他操作。您可能想要显示 UEFI 启动设置并将sudo efibootmgr -v其与 UEFI 启动设置进行比较。您将能够使用该efibootmgr命令从 Xubuntu 中更改启动顺序等。

相关内容