从 GRUB2,在 LVM2 逻辑卷中引导 ISO

sna*_*hoe 8 linux iso-image arch-linux lvm grub2

tl;dr - 是否可以从位于未加密 lmv2 逻辑卷中的 .iso 文件启动?如何?

我正在尝试在 VirtualBox VM 中设置它,然后再用我的笔记本电脑真正做到这一点。我有以下设置:

  • 4个gpt分区
    • gpt1 - 2M ef02 bios 启动
    • gpt2 - 5G 未加密非 lvm,用于杂项数据、iso 等。
    • gpt3 - 5G 未加密 lvm,用于 /boot、iso 等。
    • gpt4 - 剩余,lvm,使用 dm-crypt/luks 加密,用于 root、swap、home 等。
  • 在 gpt2 中,我有当前 Arch 和 Xubuntu iso 的副本
  • 在 gpt3 中,我有一个 lvm2 lv 具有相同 iso 的相同副本

我有以下工作:

  • 在 gpt4 中,Arch 和 Xubuntu 的功能安装(并希望在某些时候在其他逻辑卷中添加其他发行版)
  • 从 Arch 安装在 /dev/sda 上的 grub2
  • 使用 grub2 的 configfile 命令,可以从两个发行版的 grub2 菜单切换和启动
  • 可以从非lvm gpt2的grub菜单启动iso

我想做的是从 gpt3 lvm 中的 iso 引导(最终,甚至根本没有非 lvm gpt2 分区)。

我的 grub 条目是:

menuentry "Xubuntu ISO" {
  set isofile="/xubuntu-12.04.1-desktop-amd64.iso"
  # from non-lvm
  loopback loop (hd0,gpt2)$isofile
  # from lvm
  #loopback loop (vgboot-iso)$isofile
  linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
  initrd (loop)/casper/initrd.lz
}
Run Code Online (Sandbox Code Playgroud)

2 条环回线指向同一 ISO 的 2 个不同副本。我已经在 grub 命令行中验证了两条环回线都可以工作。

从非 lvm 分区中的 iso 启动时,一切正常。

从lvm分区中的iso启动时,启动启动,最终得到这个错误:

(initramfs) /scripts/casper-premount/20iso_scan: line 46: can't open /dev/sr0: No medium found
Run Code Online (Sandbox Code Playgroud)

对于拱门入口:

menuentry "Arch ISO" {
  set isofile="/archlinux-2012.09.07-dual.iso"
  loopback loop (hd0,gpt2)$isofile
  #loopback loop (vgboot-iso)$isofile
  linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201209 img_dev=/dev/sda2 img_loop=$isofile earlymodules=loop
  initrd (loop)/arch/boot/x86_64/archiso.img
}
Run Code Online (Sandbox Code Playgroud)

从 gpt2 iso 启动是有效的,但我不知道将“/dev/sda2”更改为什么以进行 lvm 启动。


编辑:这能做到吗?对于任何当前的 Linux 发行版的官方 .iso 文件?软呢?Debian?打开SUSE?CentOS?

这是不可能的吗?或者是没有人想过要尝试的东西?


EDIT2:我的赏金早就过期了,9 个月后,我假设这对于任何 Linux 发行版都是不可能的。我将问题悬而未决,但我怀疑在不久的将来是否会有可行的解决方案。

小智 0

我认为大多数发行版的官方 iso 文件都是不可能的。

您收到的错误:

 (initramfs) /scripts/casper-premount/20iso_scan: line 46: can't open /dev/sr0: No medium found
Run Code Online (Sandbox Code Playgroud)

意味着在启动时,您正在启动的实时系统正在搜索 CD/DVD 驱动器,但没有找到任何驱动器。

Live CD 未配置为在 LVM 上搜索其源 iso;您也许可以修改映像的启动脚本来执行此操作,但我认为当前发行版的官方 .iso 文件都没有这样做。您可以尝试联系您最喜欢的发行版的开发人员来集成它?