Mar*_*mbo 5 partitioning boot grub2 uefi 20.04
我尝试创建一个安装 Ubuntu 20.04 LTS Desktop 64 位的 UEFI 笔式驱动器。
\n该exFAT
分区gpt2
包含整个 Ubuntu 20.04 LTS 系统映像。
\nFAT32
分区gpt1
包含以下文件:
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 boot\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 grub\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 x86_64-efi\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 exfat.mod\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 EFI\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 BOOT\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 BOOTX64.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\x94\xe2\x94\x80\xe2\x94\x80 mmx64.efi\n\n5 directories, 5 files\n
Run Code Online (Sandbox Code Playgroud)\n其中该grub.cfg
文件包含以下行:
insmod exfat\nsearch --no-floppy --set=root --fs-uuid 7026-67D5\nconfigfile /boot/grub/grub.cfg\n
Run Code Online (Sandbox Code Playgroud)\n将Secure Boot
方法从改为Deployed Mode
后Audit Mode
,可以从该分区的文件中正确调用该分区grub.cfg
的默认文件。\n事实上,会出现正确的安装选项。\n选择选项后,无限循环并按下键我意识到原因是一个未指定的错误:,重复了很多次。\n这个错误的原因可能是什么?exfat
grub.cfg
FAT32
Ubuntu
ESC
stdin: invalid argument
更新 1:即使完全禁用安全启动,也会出现相同的错误。
\n更新2:等待一段时间,出现以下消息:
\nUnable to find a medium container a live file system\nAttempt interactive netboot from a URL?\nyes no (default yes): _\n
Run Code Online (Sandbox Code Playgroud)\n更新 3:
\n我发现如果分区不是 exFAT,而是 NTFS,则不会出现该问题。由此我推断insmod exfat
,尽管命令传递到具有该文件系统的分区,但 initrd.lz 文件不支持 exfat 文件系统。\n事实上,我还执行了其他测试来几乎完全确认这一点:
insmod exfat\nsearch --no-floppy --set=root --fs-uuid 7026-67D5\nchainloader /efi/boot/bootx64.efi\nboot\n
Run Code Online (Sandbox Code Playgroud)\n我收到错误消息:
\nFailed to find fs: Unsupported\nFailed to load image \\efi\\boot\\grubx64.efi: Unsupported\nstart_image() returned Unsupported\n
Run Code Online (Sandbox Code Playgroud)\n如果 exfat 分区中有 Windows 映像而不是 Ubuntu,则引导加载程序可以正确启动。
\n有没有办法在 bootx64.efi 和 initrd.lz 文件内部实现 exfat 支持?
\n来自这个论坛:
这个问题被提出:
[20.655271] usb usb1-port4: couldn't allocate usb_device
Run Code Online (Sandbox Code Playgroud)
几秒钟后,它会以适当的操作系统徽标重新启动,并显示下一个错误:
stdin: invalid argument
Run Code Online (Sandbox Code Playgroud)
...就像 50 个相同的错误...
Unable to find a medium container a live system
Run Code Online (Sandbox Code Playgroud)
尝试从 URL 进行交互式网络启动?
这个解决方案:
解决了问题。
听起来您遇到了同样的问题,并且相同的解决方案应该有效。