修复仅 Windows 引导的 Grub 引导加载程序(从双引导中删除 Linux 后)

修复仅 Windows 引导的 Grub 引导加载程序(从双引导中删除 Linux 后)

我的笔记本电脑(单磁盘)上有双启动(Ubuntu + Win10)配置。由于空间限制,我不得不删除 Ubuntu 分区(扩展分区中的 root、home、swap)并将大 NTFS 分区扩展到整个磁盘。不幸的是,Grub 配置存储在 Ubuntu 部分中。所以我无法再启动了。我刚刚进入 grub 修复 CLI。

在使用 Ubuntu 20.04 live USB 记忆棒进行修复尝试期间,我现在拥有 sda1 (NTFS 500MB)、sda2 (Windows 10、250GB)、sda3 (Windows 恢复) 和 sda4 (300MB ext4,指定为 /boot 分区)蛴螬)。对于后者,我尝试修复现有的配置。我使用grub-install --root-directory /mnt/sda4 /dev/sdafrom安装了 grub这个帖子

我能够启动到 Grub CLI (2.04)。使用来自的命令这个帖子,我可以再次启动进入Win10:

insmod chain
insmod ntfs
set root=(hd0,msdos1)
chainloader +1
boot

但此时我陷入困境。我不知道如何再次永久安装 grub 菜单。像update-grub或(从实时操纵杆运行)这样的命令grub2-mkconfig不需要从实时操纵杆运行。我尝试过chroot,但没有成功。我找到的所有手册都假设仍然安装了一个 Linux 操作系统,这似乎是chroot.我想要获得仅运行 Windows 的配置。现在如果有 Grub 引导加载程序就可以了。最好使用 Windows 引导加载程序,但我似乎无法启动恢复模式,尽管在 Windows 启动时按了 F8,而且也没有 Windows 恢复介质。

那么有人知道如何在这种情况下将 Windows 启动项永久添加到 Grub 中吗?不需要我在每次启动时键入五个命令的快速解决方法也很好。谢谢 :-)

答案1

由于您grub-install使用实时媒体运行并将已安装的/mnt/sda4文件系统指定为它的根文件系统,因此grub-install现在应该有一个/mnt/sda4/boot/grub/目录,其中至少有一个i386-pc子目录。可能还有像device.map和/或grubenv.

只需将这五个 Windows 启动命令输入到一个文本文件中(最好使用 Linux 样式的行结尾,因此可以使用 Linux 文本编辑器),然后将该文件放置为 ,/mnt/sda4/boot/grub/grub.cfg这应该是您的快速解决方法。

grub2-mkconfig用于运行脚本来/etc/grub.d/解析简化的配置文件/etc/default/grub,并可选择运行实用程序脚本,例如os-prober自动检测其他操作系统并grub.cfg根据结果自动生成带有漂亮菜单系统的文件。本质上update-grub只是 Debian/Ubuntu 特定的别名grub2-mkconfig

没有什么可以阻止您跳过中间人并grub.cfg自己从头开始编写实际文件,除了如果您想做更复杂的菜单结构可能会相当乏味这一事实。

相关内容