Grub 命令`loopback loop...` 在 Ubuntu 19.10 上不起作用

PJ *_*ngh 5 command-line boot grub2 iso

在启动过程中,我通过按下cGrub 菜单进入 grub2 命令行。

当我输入以下命令时...

loopback loop (hd0,gpt2)/ubuntu-19.10-desktop-amd64.iso
Run Code Online (Sandbox Code Playgroud)

...grub 挂起,终端上没有更多输出或活动,最终笔记本电脑风扇因为笔记本电脑变热而旋转。

该路径(hd0,gpt2)/ubuntu-19.10-desktop-amd64.iso在我的系统上有效。

无论我使用哪个 ISO,我都会得到相同的结果,并且我已经验证了 ISO 的校验和。

我在 Ubuntu 19.10 中遇到了这个问题,并且在之前的 Ubuntu 版本中没有这个问题。grub2-common我的版本是 2.04-1ubuntu12。

如何让loopbackgrub 命令工作?(例如,我是否需要在执行之前加载特定模块或输入其他命令loopback?)

(另外,如果您在 19.10 上也遇到此问题,请添加评论;我想确定这是否特定于我的安装,或者这是一个更大的问题?)

(请注意,这个问题与我发布的另一个关于在磁盘上引导到 ISO 的问题有关,但我相信它们有足够的不同,需要单独发布)。

PJ *_*ngh 6

Ubuntu Bug #1851331有一个解决方法...

通过将其添加为 grub 配置文件中的第一个命令来禁用TPM模块。rmmod tpm

例如,这是我的/etc/grub.d/40_custom文件...

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry "Install" {
    rmmod tpm
    set isofile="/ubuntu.iso"
    loopback loop (hd0,2)$isofile
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
    initrd (loop)/casper/initrd
}
Run Code Online (Sandbox Code Playgroud)

请记住在进行更改后更新 grub。

sudo update-grub
Run Code Online (Sandbox Code Playgroud)