我在我的笔记本电脑上安装了最新的 Debian 版本以及 Windows(通过缩小 15 GB 的 SSD 内存并用它为 Debian 创建一个分区)。问题是它从来没有真正要求选择是运行 Windows 还是 Debian,因为一直运行 Windows,没有我认为所谓的 GRUB 菜单选择。
由于我花了几个小时阅读,我想我终于通过访问此网站找到了解决方案:https://itsfoss.com/no-grub-windows-linux/。不幸的是,在 Windows cmd 中输入这些命令后:
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
我意识到我安装的不是Ubuntu而是Debian...
现在我真的没有选择了,Debian 和 Windows 都无法启动,我唯一看到的就是我认为的 GRUB 命令提示符。
我现在应该怎么做?
答案1
手头上的问题
您无法启动系统,您被困在grub>
shell 中。
您在单个磁盘上拥有 Windows 和 Debian 的双引导系统。
免责声明
您提到运行一个命令将 Debian 条目添加到涉及 UEFI 的 BCD 条目中。当您安装 Debian 时,您还记得使用以下命令安装 Debian 系统吗UEFI?
如果您没有设置 UEFI,按照概述的步骤重新安装系统可能会更快这里和这里。
从 GRUB 恢复
首先,我们需要修复 GRUB 条目才能启动。我找到了这个堆栈交换帖子其中包括从 grub 救援中恢复。使用用户 DocSalvager,您将需要找到包含您的 Debian 分区/boot
grub> ls
[ Here should be a list of devices and partitions, e.g. (hd0,1) (hd0,2) (etc) ]
你想要寻找你的 Debian 分区,它可能是这样的:
grub> ls (hd0,4)/boot
对所有列出的分区重复此操作,直到找到包含类似initrd.img-... vmlinuz-...
或 等内容的结果/grub
。一旦找到包含 Debian 启动映像的分区,您将运行以下步骤:
grub> set root=(hd0,[partition number you found])/boot
grub> insmod linux
grub> linux (hd0,[partition number you found])/boot/vmlinuz-[image name]
grub> initrd (hd0,[partition number you found])/boot/initrd.img-[image name]
grub> boot
在这里您应该启动到 Debian 系统,您可能需要通过以下方式进一步修复您的系统:
$ cd /boot
$ mv mod/* grub
$ reboot
我也会包括这个关联您也可以按照这些步骤修复您的靴子。
替代步骤
这是需要采取的一些步骤来自 Debian 维基。
启动到 Debian 系统后,运行以下命令:
[ -d /sys/firmware/efi ] && echo "EFI boot on HDD" || echo "Legacy boot on HDD"
should return "EFI boot on HDD".
mount /dev/sd[Debian boot Partition, e.g. sda4] /boot/efi
apt-get install --reinstall grub-efi
grub-install /dev/sdX \\ X being the disk with your operating systems
update-grub
file /boot/efi/EFI/debian/grubx64.efi \\ Verify that the file exists
efibootmgr --verbose | grep debian \\ Verify nvram entry was created
现在您应该能够重新启动并看到 grub 菜单!
将 Windows 条目添加到 GRUB 2 菜单
一旦启动到您的 Debian 安装而不是救援磁盘或其他任何东西,如果您发现 GRUB 中缺少 Windows,您将需要遵循这些脚步:
sudo os-prober \\ If you see your Windows Partition then you can run the next step
sudo grub2-mkconfig
sudo update-grub
如果os-prober
找不到您的 Windows 分区,您将需要安装 Windows 文件系统。按照以下步骤操作安装ntfs-3g
然后挂载 Windows。
mount -t ntfs-3g -o ro /dev/sd[Windows Partition] /media/windows
sudo os-prober
sudo grub2-mkconfig
sudo update-grub
您应该会看到添加了一个 Windows 条目。您还可以使用您喜欢的文本编辑器手动创建条目/etc/grub.d/40_custom
。
menuentry "Windows" {
set root='(hd0,1)' \\ Remember that this should be your Windows boot partition.
chainloader +1
}
结论
您将需要修复 中的启动过程grub
。我已经概述并链接了几种方法。如果这是全新安装,最好按照以下步骤再次安装 Debian维基百科上的建议。
我将包括另一个关联关于使用 GRUB 以及其他引导论坛帖子关于类似的问题。
如果您对此答案有任何疑问或疑问,请发表评论。我强烈建议您在尝试命令之前仔细阅读我提供的每个链接。我感谢您提供反馈来纠正任何误解并改进我的帖子。我可以根据需要更新我的答案。
祝你好运!
答案2
哦,这在过去给我的 Debian 双引导带来了痛苦......
首先,您是否在 BIOS (UEFI) 中禁用了安全启动?: https://askubuntu.com/questions/891248/ubuntu-16-04-how-can-i-disable-secure-boot
第二件事要检查,如果您直接启动进入 BIOS(最有可能是 UEFI),您仍然可以通过从启动管理器中选择它来访问可启动分区。应该有类似这样的东西: https://help.ubuntu.com/community/UEFI
该指南应该为您指明正确的安装方向。十有八九是因为您没有先禁用安全启动。完成后,只需重新安装您的发行版,它就会立即启动。
顺便说一句...Ubuntu 基于 Debian。除了一些稍微不同的皮肤和自定义安装 GUI 之外,底层过程应该是相同的。
答案3
我的 Windows 10 和 Linux Mint 19 戴尔笔记本电脑上也出现了同样的问题。所以发生的情况是我正在使用 Windows,突然硬盘列表中缺少硬盘。窗口工作正常,因为它位于 SSD 驱动器上。在困惑了一段时间后,我想确定硬盘是否正常工作,所以我在完成后从 BIOS 运行诊断,我重新启动了机器并恢复了 grub 列表。