启动时无法进入 GRUB,无法使用默认内核启动

启动时无法进入 GRUB,无法使用默认内核启动

我的 Optiplex 990 安装了 ubuntu server 16.04.3,无法启动。左上角有一个闪烁的光标。我遇到了 specre 内核问题更新至 4.4.0-108-generic 后内核崩溃

我曾尝试过如何在启动时进入 GRUB 菜单?进入 grub,但无论我如何点击/按住 shift(或其他地方列出的 escape 键)都无法进入 grub。

我尝试使用 Live CD 并运行了启动修复(https://help.ubuntu.com/community/Boot-Repair) 并且成功运行但没有解决任何问题。

还有其他想法吗?

答案1

您链接的问题的顶部答案解释了如果按 shift 不起作用,如何进入 GRUB 菜单。您只需编辑文件/etc/default/grub并注释掉GRUB_HIDDEN_TIMEOUT=[some number]。然后运行sudo update-grub

由于您根本无法启动,因此您无法轻易做到这一点。

但是,您可以从实时系统执行此操作,因此请继续像以前一样从实时系统启动。

现在您可以设置chroot。如果您不确定安装的根分区的设备标签,请尝试运行sudo fdisk -l以识别它。您应该在输出中看到类似

/dev/sda2 <numbers indicating size> Linux filesystem

尝试挂载该分区:

sudo mount /dev/sdXY /mnt

正确的标签在哪里sdXY。然后查看挂载的分区是否具有您希望在根分区中看到的目录:

ls /mnt

如果你看到类似的东西(不一定完全这样,但至少大部分都是这样)

bin    dev   mnt         root        sys   var
boot   etc   lost+found  opt         run   srv  tmp 
home   lib   media       proc        sbin  usr 

那么你就得到了正确的分区。

如果您有单独的启动分区,则需要挂载它。如果您不确定,请检查文件/mnt/etc/fstab以查看它是否已挂载分区/boot忽略任何提及安装在上的分区/boot/efi

如果您有单独的启动分区,请挂载它:

sudo mount /dev/sdXY /mnt/boot

sdXY启动分区的正确标签在哪里。

我们可能需要绑定一些额外的资源(我不确定在这种情况下是否有必要):

for d in dev sys run proc; do sudo mount --bind /$d /mnt/$d; done

OK,现在进入chroot

sudo chroot /mnt

现在我们可以像在已安装的系统中一样操作。首先让我们编辑配置文件:

sudoedit /etc/default/grub

(或者调用你最喜欢的文本编辑器)。找到以下行

GRUB_HIDDEN_TIMEOUT=0

#(它可能有不同的数字,但这并不重要)。通过在行首放置注释来注释掉该行,因此它显示

#GRUB_HIDDEN_TIMEOUT=0

如果你没有上述行,请查找

GRUB_TIMEOUT_STYLE=hidden

并将其注释掉

#GRUB_TIMEOUT_STYLE=hidden

检查该行

GRUB_TIMEOUT=[some number]

以大于 0 的数字结尾(默认值可能是 10)。保存文件并退出。

运行此命令将配置写入/boot/grub/grub.cfg

sudo update-grub

现在您可以重新启动进入安装,并且每次都会强制出现 GRUB 菜单。

相关内容