Alb*_*ert 46 boot iso-image grub
如何引导到 GRUB 中的 ISO 文件?ISO 文件位于 reiserfs 分区上,GRUB 可以访问它(已经测试过了)。
qua*_*ote 60
引导 ISO 文件的最大问题是设计为引导的 ISO 几乎总是设计为从 CD引导。正如Marco关于 Grub 2的博客所解释的那样(重点是我的):
GRUB 可以读取 ISO9660(“iso”)映像。例如,它可以加载前几个扇区并启动它。但大多数人没有意识到的是“然后呢?”。加载的操作系统会做什么?它很可能会寻找 CDROM,但它不会找到并失败。
因此,从某个随机 ISO 文件启动的最简单的方法是将其作为虚拟 CD 加载到虚拟机(VirtualBox、VMware 或 Virtual PC)中并在那里启动。这应该几乎总是有效,因为对于 VM,它不是 ISO 文件——它是真实 CD 硬件上的真实 CD。
从裸机上的 ISO 文件启动要困难得多。您如何执行此操作取决于您使用的 Grub 版本,结果可能会因您使用的 ISO 以及它的启动配置方式而异。这就是为什么大多数从 USB 启动 ISO 的工具(Unetbootin、WinToFlash 等)通常将 ISO 内容提取到驱动器——因为这样可以直接访问它们,而不会混淆正在启动的操作系统。
... 没有把握。如果可能,菜单条目可能看起来很像 Grub4DOS,尽管我认为“map --hook”命令是 Grub4DOS 的增强。从好的方面来说,Grub 比 Grub4DOS 具有更广泛的文件系统支持。
关于带有 reiserfs(未经证实)的Grub的注释表明您“必须安装分区notail
才能使其工作”。
Memdisk 是一种选择;见下文。
Grub4DOS提供了一些与某些 ISO 配合使用的实验性“CD 模拟”。不幸的是,Grub4DOS 只能读取 FAT32/NTFS 文件系统。 下载 Grub4DOS。
这是一个示例条目(源):
title fdfullcd.iso (0xFF)
find --set-root /fdfullcd.iso
map /fdfullcd.iso (0xFF)
map --hook
root (0xFF)
kernel /isolinux/data/memdisk
initrd /isolinux/data/fdboot.img
Run Code Online (Sandbox Code Playgroud)
据说可以使用以下条目启动 Win7 ISO :
title Windows 7
map (hd0,0)/win7.iso (hd32)
map --hook
chainloader (hd32)
Run Code Online (Sandbox Code Playgroud)
其他 ISO 可以使用 Memdisk启动:
title Boot Hardware Detection Tool from iso image (with 'iso' parameter)
kernel /memdisk iso
initrd /hdt.iso
Run Code Online (Sandbox Code Playgroud)
您还可以使用PenDriveLinux 中的 MultiBootISOs.exe等菜单配置器。将 ISO 放在闪存驱动器上,然后运行该实用程序以安装引导加载程序并配置引导菜单。
这是关于安装 Grub4DOS的 Hak5 插曲。
这里有几个示例 Grub2 条目。 chainloader目前无法启动 ISO,因此这些条目必须 (1) 使用环回来“挂载”ISO,并且 (2) 在指定 ISO 文件的linux行中添加诸如iso-scan或findiso之类的内容。
不幸的是,没有通用的方法来做到这一点。每个不同的引导条目都必须针对目标 ISO 的内容进行定制。大多数 Linux LiveCD 使用 ISOLINUX 作为引导加载程序;找到isolinux.cfg并检查该引导条目以查看它通常引导的内容。
示例条目(来源):
menuentry "Ubuntu Live 9.10 32bit" {
loopback loop /boot/iso/ubuntu-9.10-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-9.10-desktop-i386.iso noeject noprompt --
initrd (loop)/casper/initrd.lz
}
menuentry "Grml small 2009.10" {
loopback loop /boot/iso/grml-small_2009.10.iso
linux (loop)/boot/grmlsmall/linux26 findiso=/boot/iso/grml-small_2009.10.iso apm=power-off lang=us vga=791 boot=live nomce noeject noprompt --
initrd (loop)/boot/grmlsmall/initrd.gz
}
Run Code Online (Sandbox Code Playgroud)
如果您尝试引导非 Linux LiveCD,您可能不走运。同样,Memdisk 可能会有所帮助:
menuentry "Boot Hardware Detection Tool from iso" {
linux16 /memdisk iso
initrd16 /hdt.iso
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
139653 次 |
最近记录: |