Fedora:如何从 .iso 启动到 LiveOS?

Fedora:如何从 .iso 启动到 LiveOS?

由于某种原因,我有一个定制的 USB 棒,里面可能有大约 10 个 Linux 发行版和 3 个版本的 Windows。我只是将 .iso 文件放入 /Linux,然后使用 GRUB 引导到这些 .iso。一些示例条目:

menuentry "ubuntu 20.04" --class ubuntu {
    set isofile="/Linux/ubuntu.iso"
    loopback loop ($BOOT)$isofile
    linux (loop)/casper/vmlinuz iso-scan/filename=$isofile boot=casper ro quiet splash
    initrd (loop)/casper/initrd
}
menuentry "Manjaro 18.0.4" --class manjaro {
    set isofile="/Linux/manjaro.iso"
    set imgdevpath="/dev/disk/by-uuid/$UUID"    
    loopback loop ($BOOT)$isofile
    linux (loop)/boot/vmlinuz-x86_64 img_dev=$imgdevpath img_loop=$isofile ro quiet splash
    initrd (loop)/boot/initramfs-x86_64.img
}
menuentry "Silverblue 34 (Install only)" --class silverblue {
    set isofile="/Linux/silverblue.iso"
    loopback loop ($BOOT)$isofile
    linux (loop)/isolinux/vmlinuz inst.stage2=hd:UUID=$UUID:$isofile ro quiet splash
    initrd (loop)/isolinux/initrd.img
}

现在,我可以获取该 Silverblue 条目,并将其指向 Fedora.iso 文件。它会正常启动,但它只会直接进入安装程序。虽然 Silverblue 的 .iso 中没有 LiveOS 文件夹,但 Fedora 中有。

如何调整启动项以使其启动进入 Live 环境?

答案1

这最终成为我的正确菜单项。

menuentry "Fedora 34" --class fedora {
    set isofile="/Linux/fedora.iso"
    loopback loop ($BOOT)$isofile
    linux (loop)/isolinux/vmlinuz iso-scan/filename=$isofile root=live:CDLABEL=Fedora-WS-Live-34-1-2 rd.live.image ro
    initrd (loop)/isolinux/initrd.img
}

显然,inst.stage2用于指向安装源。 (来源

所以我必须删除它,并添加这些参数以使其启动到实时环境:iso-scan/filename=$isofile root=live:CDLABEL=Fedora-WS-Live-34-1-2 rd.live.image

如果没有iso-scan/filename=$isofile,它无法找到 .iso 文件。

root=live:CDLABEL=Fedora-WS-Live-34-1-2看起来像 chroot 位置。您可以CDLABEL通过安装 .iso 文件来找到该文件。我想使用 UUID 也可以工作,但尚未测试。

不完全确定rd.live.image是什么,但它看起来确实相关,不是吗? :p 这似乎是一个 dracut 选项。可能只是让它知道使用实时环境。

相关内容