Mak*_*isH 2 boot thinkpad uefi fwupd 20.10
我正在尝试调试fwupd 遇到的问题,但首先我想了解当我尝试启动 Ubuntu 20.10 时,ThinkPad T470s 上的 UEFI 正在做什么。
\n这是我的/boot/efi内容:
/boot/efi/\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 EFI\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 BOOT\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 BOOTX64.EFI\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 fbx64.efi\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mmx64.efi\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ubuntu\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 BOOTX64.CSV\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 fw\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 fwupd-3b8c8162-188c-46a4-aec9-be43f1d65697.cap\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 fwupd-7a176688-0960-47ba-931b-7829849e8347.cap\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 fwupd-d95d3ada-eef1-464f-8a2a-a11232b8556b.cap\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 fwupdx64.efi\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 grub.cfg\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 grubx64.efi\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 mmx64.efi\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 shimx64.efi\nRun Code Online (Sandbox Code Playgroud)\n我目前还安装了较旧的 Ubuntu 16.04,并且使用的是 NVMe 驱动器。我的启动顺序首先是“ubuntu”,然后是 NVMe 驱动器。\n当我启动系统时,我收到一条警告System bootloader not found, initializing defaults.。然后,我的系统从 nvme 设备启动,GRUB 允许我在 Ubuntu 20.10 和 Ubuntu 16.04 中启动。
看起来我的固件启动选项“Ubuntu”和“Linux-Firmware-Updater”无法加载(它返回到启动菜单而不显示任何错误),所以我试图了解我的/EFI/树是否正常或者我弄乱了一些东西向上。
这棵树的结构正常吗?我应该同时拥有EFI/BOOT和EFI/ubuntu吗?难道我做错了什么?
编辑:要求详细信息:
\n$ sudo efibootmgr -v\nBootCurrent: 0019\nTimeout: 0 seconds\nBootOrder: 0000,0017,0010,0011,0012,0013,0018,001A,001B,001C,001D,001E,0001,0019\nBoot0000* ubuntu HD(3,MBR,0xff767ef,0x64bb800,0x100800)/File(\\EFI\\ubuntu\\shimx64.efi)\nBoot0001* Linux-Firmware-Updater HD(3,MBR,0xff767ef,0x64bb800,0x100800)/File(\\EFI\\ubuntu\\fwupdx64.efi)\nBoot0010 Setup FvFile(721c8b66-426c-4e86-8e99-3457c46ab0b9)\nBoot0011 Boot Menu FvFile(126a762d-5758-4fca-8531-201a7f57f850)\nBoot0012 Diagnostic Splash Screen FvFile(a7d8d9a6-6ab0-4aeb-ad9d-163e59a7a380)\nBoot0013 Lenovo Diagnostics FvFile(3f7e615b-0d45-4f80-88dc-26b234958560)\nBoot0014 Startup Interrupt Menu FvFile(f46ee6f4-4785-43a3-923d-7f786c3c8479)\nBoot0015 Rescue and Recovery FvFile(665d3f60-ad3e-4cad-8e26-db46eee9f1b5)\nBoot0016 MEBx Hot Key FvFile(ac6fd56a-3d41-4efd-a1b9-870293811a28)\nBoot0019* NVMe0 VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,001c199932d94c4eae9aa0b6e98eb8a400)\n# (removed a few non-important entries)\nRun Code Online (Sandbox Code Playgroud)\n的 UUIDEFI/ubuntu/grub.cfg似乎与efibootmgr列表中的任何内容都不对应:
$ sudo less /boot/efi/EFI/ubuntu/grub.cfg\nsearch.fs_uuid 4be2c650-c96c-4823-a833-28d345042788 root \nset prefix=($root)\'/boot/grub\'\nconfigfile $prefix/grub.cfg\nRun Code Online (Sandbox Code Playgroud)\n和BOOT/bootx64.efi似乎EFI/ubuntu/shimx64.efi是相同的:
$ sudo md5sum /boot/efi/EFI/BOOT/bootx64.efi\n78415fb8fb9b909f8029858113f1335f /boot/efi/EFI/BOOT/bootx64.efi\n$ sudo md5sum /boot/efi/EFI/ubuntu/shimx64.efi\n78415fb8fb9b909f8029858113f1335f /boot/efi/EFI/ubuntu/shimx64.efi\nRun Code Online (Sandbox Code Playgroud)\n看起来我正在使用 MBR,而不是 GPT。
\n新硬件基于 UEFI,然后 Ubuntu(以及 Windows,如果未预安装)应以 UEFI 引导模式安装。Microsoft 要求供应商对 UEFI 安装进行 gpt 分区,但 Ubuntu 将允许 UEFI 安装到 MBR (msdos) 分区驱动器,但可能不应该。
您可以使用以下命令查看分区:
lsblk -o name,mountpoint,label,size,fstype,uuid,partuuid | grep -E -v "^loop"
sudo parted -l
Run Code Online (Sandbox Code Playgroud)
UEFI 从 UEFI 启动条目启动,但要查看使用的分区/文件的详细信息,您可以运行此命令,它显示 ESP - efi 系统分区的 GUID/partUUID:
sudo efibootmgr -v
Run Code Online (Sandbox Code Playgroud)
然后在 ESP 中有一个 3 行的/EFI/ubuntu/grub.cfg配置文件,用于在安装的/(根)分区(或者/boot如果是单独的分区)中加载完整的 grub.cfg。
ESP 应该至少有两个文件夹/EFI/Boot& /EFI/ubuntu。Windows 添加了/EFI/Microsoft. 这些文件夹包含启动文件。这/EFI/Boot是一个后备或驱动器启动项,它是shimx64.efigrub 的副本,或者如果是 Windows,则是其启动文件的副本bootmgfw.efi。
所以启动是UEFI,到ESP,进行安装。
可以在此处/EFI/ubuntu/grub.cfg查看的示例。
参考:
| 归档时间: |
|
| 查看次数: |
11059 次 |
| 最近记录: |