双启动后如何重新生成 grub?

双启动后如何重新生成 grub?

我有双启动,Windows 10 和最新的 2017 版 kali linux。现在我用 Windows 8.1 替换了 Windows 10。现在没有 grub 选项。Windows 8.1 直接加载。有什么办法可以解决这个问题吗?还是我应该重新安装 kali?谢谢。

答案1

您很可能必须重新安装 Kali。在已经安装了其他操作系统的系统上安装 Windows 时,Windows 运行不顺畅。通常在设置双启动系统时,您总是希望先安装 Windows,然后再安装 Linux。

PCWorld:

当您在安装 Linux 之后安装 Windows 时,Windows 会忽略 Linux,不知道如何调整其分区大小,并用自己的引导加载程序覆盖 Linux 引导加载程序。

由于您不是从头开始,因此您没有选择先安装 Windows,因为这是在已有 Linux 分区的系统上重新安装 Windows。在这种情况下,如果您真的想尝试挽救您的 Kali 分区,您可以先尝试修复 Grub。如果没有什么值得挽救的,只需重新安装 Kali。

有可能 Windows 只用自己的引导程序覆盖了 Grub,而没有擦除你的 Kali 分区,所以你可以尝试修复 Grub,并希望其他一切都完好无损。一种方法是启动实时 Linux USB/CD 并修复 Grub,如本文所述帮助中心

  1. 插入您的 Ubuntu CD,重新启动计算机,并在 BIOS 中将其设置为从 CD 启动,然后启动到实时会话。如果您以前创建过 LiveUSB,也可以使用它。
  2. 安装并运行 Boot-Repair。
  3. 点击“推荐修复”。
  4. 现在重新启动系统。应该会出现常见的 GRUB 启动菜单。如果没有,请在启动时按住左 Shift。您将能够在 Ubuntu*(在您的情况下为 Kali)和 Windows 之间进行选择。

答案2

修复 grub 引导加载程序的一般方法。警告,如果出现问题,这可能会破坏您的 windows 引导加载程序或使一切都无法启动!

  • 从救援磁盘(例如实时 Linux CD)安装管理该引导加载程序的 Linux 系统

  • chroot 进入该挂载点

  • 挂载 /sys 和 /proc

  • 如果是较旧的(menu.cfg 样式) grub,则可能必须调整 /etc/mtab 并删除 device.map。警告:不要尝试将 grub 恢复为旧版本(即使配置起来不那么混乱),除非您确定旧版本可以处理您的 linux 根文件系统(例如,如果在格式化时未将 inode 大小设置为 128,则 0.xx 版本大多无法与 ext3 一起使用)。

  • 如果 linux 系统是 udev 驱动的,则在 /dev 中创建一组运行“MAKEDEV generic”的后备设备文件

  • 重新运行 grub-install,以正确的整个磁盘设备(例如 /dev/sda)作为目标(这应该会将另一个操作系统安装的任何 MBR 直接发送到地狱)

  • 离开 chroot 和 mountpoint (你需要 umount /sys 和 /proc 才能做到这一点)

  • 尝试启动。如果 Linux 系统开始启动但中止或内核崩溃,则需要从 grub 命令行临时检查并更正 grub 参数。提示:对于内核 root= 参数,您可以使用设备名称代替这些令人讨厌的 uuid;要设置 grub root,您需要 grub 特定的语法(例如 msdos(0,1) )。

  • 启动成功后,再次运行 grub-install

  • 设置所需的一切以链接加载其他操作系统

相关内容