无法在 DELL PRECISION 5510 的 Debian Strap 上安装 GRUB

无法在 DELL PRECISION 5510 的 Debian Strap 上安装 GRUB

我正在尝试对预装 Windows 10 的 Dell Precision 5510(1TB PCIe SSD)进行双启动,并添加 Debian stretch。

首先,我禁用了 Windows 的快速启动,然后禁用了安全启动。然后,当从可启动的 USB 棒安装 Debian 时,在某个时刻,它会提示 Windows安装 grub 引导加载程序. 它显示消息寻找其他操作系统大约半个小时,最后提示窗口错误无法在虚拟系统中安装 grub,执行 grub-install dummy 失败,致命错误。希望有人能帮忙。

答案1

导致此失败的原因似乎有多种。就我而言,Debian 安装程序未能/etc/default/grub正确配置。我将描述的解决方案适用于我在 Thinkpad 13 Gen 2 上的特定设置

设置

  1. 启动模式为“仅 UEFI”(检查 BIOS 设置中的相应设置)。
  2. 工厂安装的 Windows 10 启动,显然是在 UEFI 模式下(检查系统信息中的“BIOS 模式”行,应该显示 UEFI)。
  3. 该磁盘有 3 个分区:

    1. EFI 系统分区
    2. Windows NTFS 分区
    3. 恢复分区
  4. 我想保留 Windows 以实现双启动,因此我缩小了 Windows 分区以便为 Debian 腾出空间(使用 Windows 下的磁盘管理工具)。

  5. 从 USB 驱动器运行 Debian 安装。安装程序在 UEFI 模式下运行(初始启动画面上有一行文本,写着“Debian GNU/Linux UEFI 安装程序菜单”)。
  6. 手动对磁盘上的可用空间进行分区:
    1. 创建了一个 256MB 的分区/boot
    2. 在剩余的可用空间中创建了一个加密卷(Debian 安装程序在稍后的 Grub 安装过程中似乎对该加密卷存在问题)。
    3. 为 root、swap 和 home 创建了 3 个 LVM 逻辑卷。
  7. 安装过程非常顺利,直到“在硬盘上安装 Grub 引导加载程序”这一步,安装程序失败并显示以下消息:“无法在虚拟环境中安装 GRUB。执行‘grub-install dummy’失败。这是一个致命错误。”
  8. 我跳过了 Grub 安装步骤,继续下一步安装。安装成功完成,但重启时没有显示 Grub 屏幕,Windows 启动了。

解决方案

  1. 从安装 Debian 的安装介质启动。
  2. 在初始菜单中,进入高级选项->救援模式,并完成救援模式的配置过程,直到获得 shell 提示符。
  3. 在 shell 提示符下运行:
    apt-get install --reinstall grub-efi-amd64
    此操作应会失败并显示以下消息
    grub-install: error: attempt to install to encrypted disk without cryptodisk enabled. Set 'GRUB_ENABLE_CRYPTODISK=y' in file '/etc/default/grub'.
  4. /etc/default/grub在编辑器(例如 nano)中打开并添加GRUB_ENABLE_CRYPTODISK=y为最后一行。保存文件。
  5. 跑步
    apt-get install --reinstall grub-efi-amd64
    update-grub
  6. 运行exit并重新启动。

您现在应该获得一个 Grub 菜单,其中包含启动 Debian 和 Windows 的选项。

更新

我发现 Debian 安装程序忽略了/boot我创建的单独分区,并尝试将 Grub 安装到加密根分区上的启动目录中。这导致了失败。因此,不要编辑/etc/default/grub目录内容,而是将其移动boot到单独的未加密/boot分区(请注意,EFI 分区已安装到/boot/efi),然后正常安装 Grub:
apt-get install --reinstall grub-efi-amd64
update-grub

如果您使用此解决方案,系统将仅提示您输入一次密码来解密加密分区。

答案2

对于 UEFI 启动,使用 GPT,您不需要创建 BIOS BOOT 分区(使用 BIOS_GRUB 标志)。对于非 UEFI 启动(使用 BIOS)和使用 GPT,您需要 BIOS BOOT 分区。阅读https://wiki.archlinuxjp.org/index.php/GRUB#UEFI_.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0

我想知道你电脑当前的启动配置。使用 Boot-repair 启动并生成 Boot-info URL,然后发布生成的 URL。

答案3

解决方案如下:文件系统继续读取优先安装了 grub 加载程序的旧 1.0 mb 分区。即使您尝试调整大小或删除分区,它们也不会占用该可用空间,并且您的分区表仍然有缺陷。要解决此问题,您必须在 kali 安装程序分区程序中选择整个卷或硬盘,而不是分区,然后将文件系统更改为 ms-dos,并创建一个新的分区表。格式化卷并尝试安装后,不使用这些分区的新文件系统将摆脱它们,在覆盖安装之后,这可能还不起作用,您可以重新开始再次选择正确的文件系统(我认为是 gpt),这次分区程序将删除整个磁盘并重新正确分区。计算机现在将被修复,并且能够使用所有可用空间无问题地启动。需要一些时间,您必须放弃双启动,但它解决了所有问题。相信我,它有效!整个问题是由于 kali 分区程序是一个基本的分区程序,仅用于清理磁盘和安装系统,它不像 gparted 那样完整,因此缺乏修复这些必须手动解决的问题的能力。

答案4

在安装程序中解决

我在通过 USB 驱动器安装 Debian Stretch 时解决了这个问题戴尔 Precision 5820驱动器加密。我没有双启动 Windows,但我相信如果我这样做,解决方案会起作用。我已经禁用了安全启动。安装时,我遇到了有关在虚拟环境中安装 grub 的相同错误,但我没有退出安装程序。

我认为问题在于/boot/boot/efi的安装位置。我在安装过程中解决了这个问题,方法是返回分区步骤并使用以下命令更改分区表手动分区

首先设置启动分区未加密

  • EFI 系统分区 (ESP)with /boot/efimounted - 这是 UEFI 启动系统所必需的
  • biosgrub分区,或保留的 BIOS 启动区域 - 这将成为引导加载程序文件的空间。您将无法使此分区“可启动”,因为 ESP 是可启动的。

这是至关重要的这些是未加密的,并且建议将它们放在磁盘的开头或可用空间,其他分区跟在后面。

设置其他分区并根据需要加密

如果您双启动 Windows,您的 Windows 分区应该会在手动分区期间显示,您不必为此进行任何更改。我建议遵循Debian 推荐的分区方案剩余的分区。

其他说明

您可能需要清除分区(Windows 分区除外)上的数据才能使其正常工作,并再次执行分区和安装 GRUB 之间的安装程序步骤,以便安装程序将文件放在正确的位置。如果您继续再次安装 GRUB,此解决方案可能不起作用。

希望这可以帮助!

相关内容