Ubuntu 20.04 在更新后启动到 grub 终端,无法使用 update-grub 永久修复

Ubuntu 20.04 在更新后启动到 grub 终端,无法使用 update-grub 永久修复

更新后,Ubuntu 20.04 启动到 grub 终端。我能够按照以下解决方案恢复登录,但每次重新启动时都会出现 grub 终端。

我按照此视频中的说明进行操作https://youtu.be/r7meKJsjqfY让我重新启动并运行,但最后几个步骤update-grub(我也试过了grub-mkconfig /boot/grub/grub.cfg)不能永久解决问题。每次重启我都会得到 grub 终端。

我目前的解决方案是...

ls (hd1,gpt2)/ls (hd0,gpt2) <-----(this changes with/without external drive *)
set root=(hd1,gpt2)
linux /boot/vmlinuz root=/dev/sda2
initrd /boot/initrd.img
boot

(我尝试设置 linux /boot/vmlinuz-5.4.0-40-generic 和 linux /boot/vmlinuz-5.4.0-42-generic 并使用相应的 IMG 文件)

重启后打开终端。我都试过了……

sudo update-grub

grub-mkconfig /boot/grub/grub.cfg

输出...

Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.4.0-42-generic
Found initrd image: /boot/initrd.img-5.4.0-42-generic
Found linux image: /boot/vmlinuz-5.4.0-40-generic
Found initrd image: /boot/initrd.img-5.4.0-40-generic
Adding boot menu entry for UEFI Firmware Settings
done

我还需要做其他事情吗?(我是 Linux 新手,因此文档和其他解决方案感觉相当冗长,并没有真正描述我的问题 - 至少我觉得我接近解决方案并且忽略了显而易见的东西)

这是我的 grub 文件

cat /etc/default/grub/

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

cat /etc/default/grub.d/init-select.cfg

# Work around a bug in the obsolete init-select package which broke
# grub-mkconfig when init-select was removed but not purged.  This file does
# nothing and will be removed in a later release.
#
# See:
#   https://bugs.debian.org/858528
#   https://bugs.debian.org/863801

lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.1 LTS
Release:    20.04
Codename:   focal
  • 附加信息...

如果我ls在 grub 终端中使用和不使用外部驱动器进行启动,我会看到根驱动器的不同标签。

(proc) (hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,gpt2) (hd1,gpt1) (cd0)

无需外部驱动器

(proc) (hd0) (hd0,gpt2) (hd0,gpt1) (cd0)

答案1

您有一个 MBR 驱动器和一个 gpt 驱动器?UEFI 应该是 gpt。

让我们查看详细信息,将 ppa 版本与您的实时安装程序(第二个选项)或任何有效的安装一起使用,而不是旧的 Boot-Repair ISO:请将 pastebin 链接复制并粘贴到 Boot-info 摘要报告(不要发布报告),在审核之前不要运行自动修复。

https://help.ubuntu.com/community/Boot-Repair

https://sourceforge.net/p/boot-repair/home/Home/

如果是 UEFI,则不应在 MBR 中安装引导加载程序,因为所有引导文件都在 ESP - efi 系统分区中。MBR 可用于旧 BIOS 引导,但如果是 UEFI 系统则不应使用。

MBR 与 gpt 仅存在一个分区条目,表明驱动器是 gpt,因此旧的分区工具不会尝试将驱动器重新分区为 MBR 并损坏它。

答案2

我将尝试使用以下命令重新创建 initramfs:

sudo update-initramfs -c -k 5.4.0-42-generic

然后sudo update-grub重新启动。

相关内容