我删除了 /boot 目录中的一些内核,并发现我已经使用命令“uname -a”删除了从中引导的内核。
有没有办法更改 grub.cfg 中的内核以便我可以启动?
我使用的是 Linux Mint 18.3 Sylvia,并且 /boot 目录中有其他启动映像。我只是没有更新 grub.cfg 以指向更新的版本。 (顺便说一句,内核更新内核时不应该更新 grub.cfg 吗?我认为它会这样做,直到我尝试“uname -a”)
我使用的 grub 版本是 grub 2.02。
问候,
答案1
如果您能够说出您正在运行的 Grub 版本,将会有所帮助。
如果您可以启动到 Grub 菜单,则可以使用“e”编辑配置条目。
如果您可以进入命令行,则可以使用“kernel”命令来命名要从中启动的内核文件:
ftp://ftp.gnu.org/old-gnu/Manuals/grub-0.90/html_chapter/grub_11.html#SEC34
命令:kernel [@option{--type=type}] [@option{--no-mem-option}] file ... 尝试加载主启动映像(Multiboot a.out 或 ELF、Linux zImage 或 bzImage 、FreeBSD a.out、NetBSD a.out 等)来自文件。该行的其余部分作为内核命令行逐字传递。使用此命令后必须重新加载任何模块。
免责声明:我已经有一段时间没有摆弄 Grub 了。
答案2
当你只删除一些内核,您可以使用现有内核之一启动。
首先检查它们是否在启动菜单中。直接或在“替代内核”小节或类似的内容中。如果它们在那里,您只需使用菜单项即可。
否则,突出显示已删除内核的菜单项,然后按“e”进行编辑。然后将文件路径编辑为仍安装的版本。之后您可以使用 启动ctrl+x
。系统启动后,尝试重新安装已删除的内核。或者,如果您不需要立即恢复已删除的内核,则继续使用旧内核启动,直到有安装更新内核版本的更新为止。
要重新安装丢失的内核,首先确定将启动哪个版本(例如,通过查看 中的菜单条目grub.cfg
),然后运行apt-get install --reinstall linux-image-X.Y-ARCH
。您可以使用它dpkg -l|grep linux-image
来查看哪些 Linux 映像包可用。安装的应该有一行以ii
.
答案3
这是我在 Ask Ubuntu SE 上的答案的完整副本如何修复已删除内核的系统?。它仍然可以帮助这里的人找到穿越丛林的方法。
我只是想法我已经删除了内核。相反,我以某种方式将其从内核队列中的第一个内核中取出,以便系统尝试使用另一个不需要的内核启动。所需的内核未被删除。我通过从高级开始菜单中选择正确的内核解决了这个问题。您可以通过在测试之前运行uname -r
来了解您的内核,也可以一一测试内核列表(我有大约 10 个内核)。