hey*_*ema 4 boot grub2 iso 20.04
我正在尝试从 GRUB 启动 Ubuntu .iso 映像。在Full Circle
杂志,#157 page 61,他们描述了如何做到这一点。它不起作用。
我编辑了/etc/grub.d/40-custom
,并添加了以下内容...
# Full Circle #157, page 61
menuentry "Ubuntu 20.04 ISO" {
insmod part_gpt
insmod ext2
set root=(hd0,gpt7)
set isofile="/ubuntu-20.04-desktop-amd64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd
}
Run Code Online (Sandbox Code Playgroud)
我的 Ubuntu 根目录在 /dev/sda7 上。
我的 .iso 文件位于 /。
我尝试启动 .iso 时遇到的错误是...
disk hd0,gpt7 not found
no server is specified
can't find command noprompt
you need to load the kernel first
Run Code Online (Sandbox Code Playgroud)
关于如何使这项工作的任何想法?
用于引导 ISO 的基本 GRUB 环回菜单项是:
menuentry "isoname ISO" {
set root=(hdX,Y)
set isofile="/[path]/[name].iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile --
initrd (loop)/casper/initrd
}
Run Code Online (Sandbox Code Playgroud)
hdX
磁盘在哪里,Y
是 ISO 位置的分区号。
[path]
是 ISO 文件的路径,是 ISO 文件[name]
的名称。
允许多个 ISO 文件,每个 ISO 文件需要一个或多个菜单项。(每个 ISO 可以有多个持久性文件)。
持久性(可选)
如果我们想要一个持久的操作系统,请将这个词添加Persistent
到 GRUB 菜单项中,(通过/etc/grub.d/40-custom
)。
如果使用持久分区,请将其设为 ext4 并将其标记casper-rw
为 19.10 和以前的 ISO 文件。
对于 20.04 ISO 文件,标记为持久分区writable
。
每个驱动器只允许一个持久分区,
如果使用持久文件,每个 ISO 都可以有自己的持久性。
每个 ISO 可以有一个writable
(或casper-rw
)最大 4GB 的home-rw
文件和一个最大 4GB 的可选文件。
持久文件必须位于FAT32 分区上。
如果使用了多个持久化文件,则必须给出一个持久化路径。只需要持久文件文件夹的唯一名称。每个文件夹一个 casper-rw/可写文件和一个 home-rw 文件。
GRUB 2.04 解决方法
Ubuntu 18.04 和以前的版本使用 GRUB 2.02 进行引导。19.10 及更高版本使用 GRUB 2.04 在 UEFI 模式下启动。GRUB 2.04 在 UEFI 模式下引导 ISO 文件时出现问题。
在 GRUB 2.04 UEFI 模式下引导 ISO 文件的解决方法是添加rmmod tpm
到/boot/grub/grub.cfg
第一个菜单项之前:
export linux_gfx_mode
rmmod tpm
menuentry 'Ubuntu efi' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-79a50dba-9300-4c89-b7e8-887651e746c9' {
Run Code Online (Sandbox Code Playgroud)
如果主机系统是 19.10 之前的版本,则应使用 GRUB 2.02 并且不需要解决方法。
最终菜单可能如下所示:
menuentry "Ubuntu 20.04 ISO" {
rmmod tpm
set root=(hd0,3)
set isofile="/isos/ubuntu-20.04-desktop-amd64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile persistent persistent-path=/ub2004-1/ fsck.mode=skip quiet splash toram --
initrd (loop)/casper/initrd
}
Run Code Online (Sandbox Code Playgroud)
与rmmod tpm
显示在备用位置。
toram
选项可用于在具有大量 RAM 的计算机上以高速启动到 RAM,但启动需要更长的时间。
fsck.mode=skip
选项停止文件系统检查。
可以通过maybe-ubiquity
从 grub.cfg 中删除来消除 Language/Try/Install 屏幕
rmmod tpm
在菜单项中找到备用位置,error: no such module
在 BIOS 模式下启动时会发出警告,请参阅 post 60 错误报告https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1851311
mkusb USB-pack-EFI 替换rmmod tpm
为:
grub_platform
if test "$grub_platform" = "efi"; then
rmmod tpm
fi
Run Code Online (Sandbox Code Playgroud)
所以这rmmod tpm
只能在 UEFI 引导上运行。
归档时间: |
|
查看次数: |
6268 次 |
最近记录: |