![无法在 DELL PRECISION 5510 的 Debian Strap 上安装 GRUB](https://linux22.com/image/1515280/%E6%97%A0%E6%B3%95%E5%9C%A8%20DELL%20PRECISION%205510%20%E7%9A%84%20Debian%20Strap%20%E4%B8%8A%E5%AE%89%E8%A3%85%20GRUB.png)
我正在尝试对预装 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 上的特定设置
设置
- 启动模式为“仅 UEFI”(检查 BIOS 设置中的相应设置)。
- 工厂安装的 Windows 10 启动,显然是在 UEFI 模式下(检查系统信息中的“BIOS 模式”行,应该显示 UEFI)。
该磁盘有 3 个分区:
- EFI 系统分区
- Windows NTFS 分区
- 恢复分区
我想保留 Windows 以实现双启动,因此我缩小了 Windows 分区以便为 Debian 腾出空间(使用 Windows 下的磁盘管理工具)。
- 从 USB 驱动器运行 Debian 安装。安装程序在 UEFI 模式下运行(初始启动画面上有一行文本,写着“Debian GNU/Linux UEFI 安装程序菜单”)。
- 手动对磁盘上的可用空间进行分区:
- 创建了一个 256MB 的分区
/boot
- 在剩余的可用空间中创建了一个加密卷(Debian 安装程序在稍后的 Grub 安装过程中似乎对该加密卷存在问题)。
- 为 root、swap 和 home 创建了 3 个 LVM 逻辑卷。
- 创建了一个 256MB 的分区
- 安装过程非常顺利,直到“在硬盘上安装 Grub 引导加载程序”这一步,安装程序失败并显示以下消息:“无法在虚拟环境中安装 GRUB。执行‘grub-install dummy’失败。这是一个致命错误。”
- 我跳过了 Grub 安装步骤,继续下一步安装。安装成功完成,但重启时没有显示 Grub 屏幕,Windows 启动了。
解决方案
- 从安装 Debian 的安装介质启动。
- 在初始菜单中,进入高级选项->救援模式,并完成救援模式的配置过程,直到获得 shell 提示符。
- 在 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'.
/etc/default/grub
在编辑器(例如 nano)中打开并添加GRUB_ENABLE_CRYPTODISK=y
为最后一行。保存文件。- 跑步
apt-get install --reinstall grub-efi-amd64
update-grub
- 运行
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/efi
mounted - 这是 UEFI 启动系统所必需的 biosgrub
分区,或保留的 BIOS 启动区域 - 这将成为引导加载程序文件的空间。您将无法使此分区“可启动”,因为 ESP 是可启动的。
这是至关重要的这些是未加密的,并且建议将它们放在磁盘的开头或可用空间,其他分区跟在后面。
设置其他分区并根据需要加密
如果您双启动 Windows,您的 Windows 分区应该会在手动分区期间显示,您不必为此进行任何更改。我建议遵循Debian 推荐的分区方案剩余的分区。
其他说明
您可能需要清除分区(Windows 分区除外)上的数据才能使其正常工作,并再次执行分区和安装 GRUB 之间的安装程序步骤,以便安装程序将文件放在正确的位置。如果您继续再次安装 GRUB,此解决方案可能不起作用。
希望这可以帮助!