我想将可启动 Linux CD 的 .iso 文件放在我的计算机硬盘上。我想让它使用 grub(或 lilo)启动,并让它从 .iso 文件启动,就像 .iso 是 CDROM 驱动器中的真实 CD 一样。
这里有关于此操作的页面,但它不是 .iso 文件,而是软盘或整个硬盘安装的 .img 文件:
http://grub4dos.sourceforge.net/wiki/index.php/Grub4dos_tutorial
该页面提到“不支持 cdrom 模拟”,但我不知道它是否不受 grub 支持,或者是否完全不可能做到这一点。
显然 Epidemic Linux (也许是 Knoppix?) 有一个“bootfrom”参数:
“使用参数“bootfrom=/partition/path”,您可以从位于 HD 上任何位置的 ISO 映像启动 Epidemic,而无需创建 DVD。这对于测试系统非常方便。”
(摘自 www.epidemiclinux.org/ )
德鲁
PS 我对将 CD 安装在硬盘上不感兴趣。如果我可以在硬盘上安装十几个 .iso,我希望能够从 grub 中选择它们并启动它们中的每一个。
答案1
看起来 grub 0.95 或更高版本可以。 http://ubuntuforums.org/showthread.php?t=799253&page=2 http://forums.whirlpool.net.au/forum-replies-archive.cfm/925285.html
Grub2 可以启动 iso,但是到目前为止文档还很粗略(即使它是 Ubuntu 9.10 的默认设置)。
从某种意义上说,通过 Google 搜索,由于 CD 可以通过 BIOS 启动,所以没有什么困难的。
去谷歌上查询。
http://michael-prokop.at/blog/2009/05/25/boot-an-iso-via-grub2/ http://en.gentoo-wiki.com/wiki/Grub2
答案2
GRUB 无法完全模拟 CDROM,但可以从中加载内核。手动从 ISO 中提取内核和 ramdisk 映像(Linux 中的 initrd)并让 GRUB 启动它。有关文件名和参数,请查看 isolinux.cfg,它是 Linux 发行版的常用 iso 加载程序,所以我敢打赌它也存在于您的系统中。
稍后通过 NFS 共享已安装的 ISO 并执行安装或您想要执行的操作。一些发行版还可以通过 HTTP 或从外部硬盘加载主要部分。这仅取决于开发人员在 ramdisk 中插入的内容。
可能还可以找到一些 kernel+ramdisk 修改,可以自动从 ISO 中提取新的 kernel+ramdisk,然后启动它,但您可以非常轻松地手动完成此操作。但是,除了在虚拟机内启动此 ISO 之外,没有任何中间软件可以进行 100% 的 CDROM 模拟。您应该始终调整发行版。
答案3
如果您正在考虑将 ISO 存储在 LVM 卷上,请记住,虽然 GRUB2 本身可以访问 LVM 卷,但并非所有 live cd 都可以。例如,ubuntu livecd 就无法做到这一点。这意味着,如果 ISO 存储在 LVM 卷上,您将无法使用此方法启动此类 ISO。为了使其正常工作,LVM 本身需要内置到存储在 initrd 中的根文件系统中,以便在内核启动后它能够真正找到并访问 ISO。如果您解压缩 initrd(它是一个 CPIO 存档),您可以检查/sbin/lvm
它是否可以正常工作。