将图像从一台计算机移动到另一台计算机时如何恢复 grub

将图像从一台计算机移动到另一台计算机时如何恢复 grub

我有一台 2009 年的电脑,现在坏了。我有一个硬盘映像,现在想将其恢复到新电脑上。我设法重新映像了新电脑,但无法让 grub 工作。

grub>每次启动时它都会停在提示符处。

我如何恢复 grub 以使其不会在grub>提示符处停止并在新计算机上启动到正常登录屏幕?

Ubuntu 桌面版本是 15.10。

我的 BIOS 的 Boot 菜单中的设置如下:

 +---------------------------+
 | Boot Mode       | UEFI    |
 | USB Boot        | Enabled |
 | PXE Boot to LAN | Enabled |
 | PXE IPV4 First  | Enabled |
 +---------------------------+

我的分区如下所示:

/dev/sda8 /usr /dev/sda9 /home /dev/sda10 / /dev/sda11 /usr/本地

分区 1-7 与恢复 Ubuntu 分区之前安装的 Windows 10 相关。

因此,首先安装了 Windows 10,它占用了整个驱动器(1TB)。我将 Windows 分区缩小到~300G,并在剩余空间上创建了 Linux 分区。

我打开电脑,它停在

grub>

然后我按照这里的说明进行操作:如何在 Linux 上修复无法启动的 GRUB 2

首先我挂载 / 分区,设置内核、initrd,然后启动。

grub> set root=(hd0,10) grub> linux /boot/vmlinuz-4.2.0-34-generic root=/dev/sda10 grub> initrd /boot/initrd.img-4.2.0-34-generic grub> boot

这将带我进入 Linux 提示符。

然后我跑

 root@lnx-R560>update-grub

 Found linux image /boot/vmlinuz-4.2.0-34-generic
  Found initrd image /boot/initrd.img-4.2.0-34-generic
 [  279.358637] EXT4-fs (sda2): VFS Can't find ext4 filesystem
 [  279.360540] EXT4-fs (sda2): VFS Can't find ext4 filesystem
 [  279.362423] EXT4-fs (sda2): VFS Can't find ext4 filesystem
 [  279.364298] FAT-fs (sda2): bogus number of reserved sectors
 [  279.396817] FAT-fs (sda2): bogus number of reserved sectors
 [  279.421858] qnx4: No qnx4 file system (no root dir)
 [  279.423659] ufs:You didn't specify the type of tyour file system
 [  279.423659]
 [  279.423659] mount -t ufs -o ufstype=sun|sunx86|44bsd|ufs2|5xbsd|old|hp|nextstep|nextstep-cd|openstep
 [  279.423659]
 [  279.423659] >>>WARNING<<< Wrong ufstype may corrupt your filesystem,default is ufstype=old
 [  279.426405] ufs: ufs_fill_super(): bad magic number

 Found Windows Boot Manager on /dev/sda1@/efi/Microsoft/Boot/bootmgfw.efi
 Adding boot meny entry for EFI firmware configuration
 done

sda2 是一个 Windows 分区。

然后我们安装grub

 lnx-R540> grub-install /dev/sda

 Installing for i386-pc platform
 grub-install: warning: the GPT partition label contains no BIOS Boot  Partition; embedding won't be possible.
 grub-install: warning: Embedding is not possible.GRUB can only installed in this setup by using blocklists. However blocklists are  UNRELIABLE and their use is discouraged.
 grub-install: error:will nnot proceed with blocklists

然后我们重新启动。

root@lnx-R540>reboot now

重启后,计算机仍然停留在grub>提示符处。

我如何恢复 grub 以便它启动到正常登录提示?

答案1

您的某些输出表明 Windows 以 EFI/UEFI 模式安装并使用磁盘上的 GUID 分区表 (GPT)。这意味着您必须为 Linux 安装 EFI 模式引导加载程序。但由于您的原始计算机是 2009 年的,因此它可能是仅限 BIOS 的型号,这意味着磁盘可能使用主引导记录 (MBR) 分区表并安装了 BIOS 模式引导加载程序。这解释了您在使用 和 时遇到的问题update-grubgrub-install这些命令根据您拥有的 BIOS 模式 GRUB 包尝试更新和安装 BIOS 模式 GRUB,而它在您的 GPT 磁盘上无法正常工作。即使您在磁盘上创建了 BIOS 引导分区,Linux 的 BIOS 模式引导加载程序也无法正常工作,因为在引导模式之间切换通常很麻烦,有时甚至是不可能的。

Linux 有不少 EFI 模式的引导加载程序,详情请参见我的这个页面。最容易安装的两个可能是:

  • GRUB(通过启动修复)- 这启动修复实用程序可以安装 EFI 模式版本的 GRUB 并半自动更新软件包;但是,您必须以 EFI 模式启动计算机执行此操作。通常的做法是使用 Ubuntu 安装程序在“安装前尝试”模式下进行启动;但控制启动模式(EFI/UEFI 与 BIOS/CSM/legacy)可能很棘手,如我的这个页面。确保 EFI 模式启动的另一种方法是使用 rEFInd,如下所述......
  • 重新索引- 我的rEFInd 启动管理器以 CD-R 和 USB 闪存驱动器映像以及 Debian 软件包和 PPA 形式提供。如果您从匹配的映像准备 CD-R 或 USB 闪存驱动器,则可以使用它以 EFI 模式启动。然后,您可以安装 Debian 软件包或 PPA 以使用 rEFInd 作为默认操作系统;或者运行 Boot Repair 来安装 GRUB。需要注意的是,我提供的 rEFInd USB 闪存驱动器和 CD-R 映像未设置为支持安全启动,现在安全启动可能处于活动状态,也可能处于非活动状态。如果您无法启动 rEFInd,可能需要至少暂时禁用安全启动。(rEFInd 可以在安全启动处于活动状态时工作,但需要完成一些额外的工作;请参阅rEFInd 关于安全启动的文档了解详情。

请注意,您可能需要在磁盘传输(如您所述)后更新/etc/fstab文件。听起来您至少可以强制系统启动,因此您的根 ( /) 文件系统可能配置正确;但您可能需要调整其他内容。特别是,安装EFI 系统分区 (ESP)建议/boot/efi使用,因为这是 Ubuntu 的默认设置。

相关内容