更新后,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
重新启动。