我尝试创建一个安装 Ubuntu 20.04 LTS Desktop 64 位的 UEFI 笔式驱动器。
该exFAT
分区gpt2
包含整个 Ubuntu 20.04 LTS 系统映像。
该FAT32
分区gpt1
包含以下文件:
.
├── boot
│ └── grub
│ └── x86_64-efi
│ └── exfat.mod
└── EFI
└── BOOT
├── BOOTX64.EFI
├── grub.cfg
├── grubx64.efi
└── mmx64.efi
5 directories, 5 files
该grub.cfg
文件包含以下行:
insmod exfat
search --no-floppy --set=root --fs-uuid 7026-67D5
configfile /boot/grub/grub.cfg
Secure Boot
将方法从改为 后Deployed Mode
,分区的Audit Mode
默认文件可以从分区文件中正确调用。 实际上,正确的安装选项出现了。 选择选项后,无限循环,按下键后,我意识到原因是未指定的错误:,该错误重复多次。 这个错误可能是什么原因造成的?grub.cfg
exfat
grub.cfg
FAT32
Ubuntu
ESC
stdin: invalid argument
更新 1:即使完全禁用安全启动,也会出现同样的错误。
更新2:等待一段时间后,出现以下消息:
Unable to find a medium container a live file system
Attempt interactive netboot from a URL?
yes no (default yes): _
更新 3:
我发现,如果分区不是 exFAT,而是 NTFS,则不会出现问题。由此我推断,尽管命令insmod exfat
已传递给具有该文件系统的分区,但 initrd.lz 文件不支持 exfat 文件系统。事实上,我还进行了另一项测试,以几乎完全确认这一点:
insmod exfat
search --no-floppy --set=root --fs-uuid 7026-67D5
chainloader /efi/boot/bootx64.efi
boot
我收到了错误信息:
Failed to find fs: Unsupported
Failed to load image \efi\boot\grubx64.efi: Unsupported
start_image() returned Unsupported
如果 exfat 分区中有一个 Windows 映像而不是 Ubuntu,则引导加载程序将正确启动。
有没有办法在 bootx64.efi 和 initrd.lz 文件中实现 exfat 支持?
答案1
当显示消息“stdin:无效参数”时,我只需取出闪存驱动器并重新插入即可解决此问题。效果非常好。我使用的闪存驱动器是 32 GB USB3.0 SanDisk 驱动器。
答案2
来自该论坛:
有人提出了这个问题:
[20.655271] usb usb1-port4: couldn't allocate usb_device
几秒钟后,它会重新启动并显示适当的操作系统徽标并显示以下错误:
stdin: invalid argument
...大约 50 个相同的错误...
Unable to find a medium container a live system
尝试从 URL 进行交互式网络启动?
此解决方案:
- 在可启动 USB 中的 /boot/grub/grub.cfg 中插入“iommu=soft”对我有帮助。
解决了这个问题。
概括
听起来你遇到了同样的问题,解决方案也是一样的应该工作。
答案3
答案4
所有其他建议的解决方案都对我不起作用,但在移除附加网卡后,我能够运行安装程序。我之前拔掉了所有其他设备(硬盘等)和其他设备,但没有找到网卡。
因此,请尝试仅使用最低限度的硬件进行启动。