我的 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 菜单。