如何从存储在硬盘上的 .iso 映像启动?

如何从存储在硬盘上的 .iso 映像启动?

我想将可启动 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

一个关于使用 GRUB2 实现这一点的优秀教程

如果您正在考虑将 ISO 存储在 LVM 卷上,请记住,虽然 GRUB2 本身可以访问 LVM 卷,但并非所有 live cd 都可以。例如,ubuntu livecd 就无法做到这一点。这意味着,如果 ISO 存储在 LVM 卷上,您将无法使用此方法启动此类 ISO。为了使其正常工作,LVM 本身需要内置到存储在 initrd 中的根文件系统中,以便在内核启动后它能够真正找到并访问 ISO。如果您解压缩 initrd(它是一个 CPIO 存档),您可以检查/sbin/lvm它是否可以正常工作。

相关内容