在启动时从USB挂载ISO映像

时间:2011-03-21 16:43:31

标签: linux filesystems linux-kernel boot

是否可以从USB磁盘安装ISO映像并在启动时将其用作文件系统(使用grub)?我问它是因为我想将内核linux映像和ISO用作文件系统(使用fedora bootstrap)到USB磁盘(不创建新分区等),因为可以通过使用Qemu来实现,例如。

2 个答案:

答案 0 :(得分:1)

Qemu是一个虚拟化/仿真环境。 Grub是一个引导加载程序,旨在将内核加载到内存中并开始执行。这两个程序都与你的问题没有直接关系,尽管你当然可以使用Qemu来执行一个使用Grub启动Linux来做你想做的事情的虚拟机。

现代Linux发行版创建 initrd ,引导加载程序将其放入内存,以供内核用作其初始根文件系统。 initrd执行诸如加载访问真实根文件系统所在的硬盘所必需的模块之类的操作。在您的情况下,您应该看看让initrd找到您的ISO,挂载它,并将其用作root。

initrd的内容根据您正在使用的发行版而有所不同。我从某个地方获取livecd,用zcat /boot/initrd-2.6.whatever.img | cpio -id转储其initrd的内容,并查看它正在做什么。查找init文件,该文件将是内核运行的第一个用户空间进程。

答案 1 :(得分:0)

Grub的环回功能应该允许您从ISO映像中引导内核和initrd。不幸的是,没有办法让内核挂载作为根文件系统的环回设备,所以我觉得你运气不好。