我有双启动,Windows 10 和最新的 2017 版 kali linux。现在我用 Windows 8.1 替换了 Windows 10。现在没有 grub 选项。Windows 8.1 直接加载。有什么办法可以解决这个问题吗?还是我应该重新安装 kali?谢谢。
答案1
您很可能必须重新安装 Kali。在已经安装了其他操作系统的系统上安装 Windows 时,Windows 运行不顺畅。通常在设置双启动系统时,您总是希望先安装 Windows,然后再安装 Linux。
当您在安装 Linux 之后安装 Windows 时,Windows 会忽略 Linux,不知道如何调整其分区大小,并用自己的引导加载程序覆盖 Linux 引导加载程序。
由于您不是从头开始,因此您没有选择先安装 Windows,因为这是在已有 Linux 分区的系统上重新安装 Windows。在这种情况下,如果您真的想尝试挽救您的 Kali 分区,您可以先尝试修复 Grub。如果没有什么值得挽救的,只需重新安装 Kali。
有可能 Windows 只用自己的引导程序覆盖了 Grub,而没有擦除你的 Kali 分区,所以你可以尝试修复 Grub,并希望其他一切都完好无损。一种方法是启动实时 Linux USB/CD 并修复 Grub,如本文所述帮助中心:
- 插入您的 Ubuntu CD,重新启动计算机,并在 BIOS 中将其设置为从 CD 启动,然后启动到实时会话。如果您以前创建过 LiveUSB,也可以使用它。
- 安装并运行 Boot-Repair。
- 点击“推荐修复”。
- 现在重新启动系统。应该会出现常见的 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
设置所需的一切以链接加载其他操作系统