我已通过 Live USB 在预装 Windows 10 的 ASUS Zenbook 13 UX331UN 上安装了 Ubuntu 18.04 LTS。它是启用安全启动并禁用快速启动的 UEFI 系统。我已经坐在这里好几天了,试图启动 Ubuntu,但没有成功。
fdisk -lu
给我以下分区布局
Disk /dev/sda: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 94F7C923-6092-46D5-AFD6-38F3F4F6096F
Device Start End Sectors Size Type
/dev/sda1 2048 534527 532480 260M EFI System
/dev/sda2 534528 567295 32768 16M Microsoft reserved
/dev/sda3 567296 946147327 945580032 450.9G Microsoft basic data
/dev/sda4 998576128 1000214527 1638400 800M Windows recovery environment
/dev/sda5 946147328 998576127 52428800 25G Linux filesystem
Partition table entries are not in disk order.
Ubuntu 安装程序创建的文件boot/grub/grub.cfg
包含以下用于启动 Ubuntu 的菜单项
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-97209f84-060d-4e49-a790-e9af75f2dc40' {
...
set root='hd0,gpt5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 97209f84-060d-4e49-a790-e9af75f2dc40
else
search --no-floppy --fs-uuid --set=root 97209f84-060d-4e49-a790-e9af75f2dc40
fi
linux /boot/vmlinuz-4.15.0-20-generic.efi.signed root=/dev/sda5 ro quiet splash $vt_handoff
initrd /boot/initrd.img-4.15.0-20-generic
}
但这会导致
ALERT! /dev/disk/by-uuid/97209f84-060d-4e49-a790-e9af75f2dc40 does not exist. Dropping to a shell
initramfs:_
我已经尝试了许多可能的修复方法,包括重新安装 grub、启动修复、手动更改 EFI,但……什么也没有。
作为最后的手段,我尝试使用以下命令从 grub 提示符手动启动 Ubuntu,如许多教程中所述
set root=(hd0,5)
linux /vmlinuz root=/dev/sda5 ro
initrd /initrd.img
boot
并且... tada,它启动成功了。
然后我将这些命令采用到 grub.cfg 中,现在菜单条目如下所示
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-97209f84-060d-4e49-a790-e9af75f2dc40' {
...
set root=(hd0,5)
linux /vmlinuz root=/dev/sda5 ro quiet splash
initrd /initrd.img
}
通过此条目配置,Ubuntu 启动成功。
grub.cfg
以这种方式改变是有效的方法吗?我是否必须面对这些更改可能产生的副作用?为什么 Ubuntu 不能自己创建一个工作grub.cfg
?
更新1
我想我找到了罪魁祸首。
首先,UUID
正如 Gilles 已经指出的那样, 是错误的,因此我恢复到原来的状态grub.cfg
并将所有出现的97209f84-
改为44ada74f-
。但尽管如此,它仍然无法启动,因为我仍然得到一个掉落到贝壳上迅速的。为了验证UUID
问题,我重新安装了 Ubuntu,现在是UUID
一个不同的版本(据我所知,它是在格式化分区时生成的),但现在 grub.cfg 状态UUID
正确/dev/sda5
。很奇怪。所以这UUID
显然不是问题。
其次,我替换set root='hd0,gpt5'
为set root=(hd0,5)
但这似乎也没有什么区别。在第三次尝试时,我将linux
命令中的文件名从更改/boot/vmlinuz-4.15.0-20-generic.efi.signed
为/boot/vmlinuz-4.15.0-20-generic
...现在它可以启动。
成功验证文件的存在后,/boot/vmlinuz-4.15.0-20-generic.efi.signed
根据此问题的答案,我现在认为系统不信任它:https://askubuntu.com/q/883814/678215
有什么想法为什么/boot/vmlinuz-4.15.0-20-generic.efi.signed
不起作用吗?