my9823 发表于 2013-12-3 09:32:09

grub2下的loopback命令!

menuentry "Archlinux-2013.05.01-dual.iso" --class iso {
set isofile="/archives/archlinux-2013.05.01-dual.iso"
set partition="6"
loopback loop (hd0,$partition)/$isofile
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201305 img_dev=/dev/sda$partition img_loop=$isofile earlymodules=loop
initrd (loop)/arch/boot/x86_64/archiso.img
}

上边这段是摘自archlinux的wiki,于是尝试用量产为cdlinxu的u盘启动电脑,我的c盘根目录有个win7pe.iso,是个win7pe维护内置版!
在现实启动菜单是,按下e键,这个和grub4dos相同,进入命令行界面:
lsmod      //查看已经载入的模块,发现有ntfs模块,我的c盘为ntfs
loopback loop0 (hd0,msdos1)/winpe.iso         //当然也可以是loop1、loop2……
ls (loop0)/                     //看看虚拟设备的根目录,可以访问
insmod ntldr                  //bootmgr 和ntldr都需要这个模块
ntldr (loop0)/7777/7pe_mgr
boot
实验成功可以进入win7pe桌面,因为内置就一个wim,wim启动是载入内存的(这个没错吧,我做过实验,在C盘添加7pe的菜单启动再用ghost恢复gho文件到c盘,成功恢复并启动,足以证明是wim是载入内存运行的,从那次明白了为毛u盘上内置7pe启动那么慢)
我还试验了maxdos.img,使用loopback映射成功,能查看里边的文件,但不知道怎么启动!chainloader命令没办法启动,那位大侠告知一下,怎么办?

wuyouhou 发表于 2014-4-25 08:40:20

你上面的操作成功,是在BIOS情况下。
前些时候,在EFI下,用EFI和BIOS双启动的Win8x64PE,与你方式相同,我就不能启动,root设定毕,chainloader /efi/boot/bootx64.efi,这步就告诉我不认识的什么忘记了,还没到boot命令。考虑到某些可能,终究没有成功。

wuyouhou 发表于 2014-4-25 08:45:15

记得后来我把iso文件用diskgenius重新制作成mbr硬盘img镜像来测试,结果一样,无法启动。

2013gdh 发表于 2014-8-24 15:00:35

话说, grub2中文帮助里说GRUB 支持 El Torito1非仿真模式, 也就是iso仿真
不过那儿只是说grub2支持从仿真iso里启动, 没说支持从仿真iso里启动别的, 如果楼主你的iso启动一切正常, 那大概说明grub2支持仿真iso启动别的
帮助里说loopback和磁盘仿真不是一个东西, 所以loopback的img不能被后续引导文件识别也说得通了
所以大概要把img转iso...

110654 发表于 2016-4-5 09:35:50

我来告诉你正确答案吧

menuentry "启动 MHDD硬盘扫描" {
search --file /winly/memdisk --set=root
linux16/winly/memdisk
initrd16 /winly/img/MHDD.img
}

你需要一个memdisk 这个文件而已

kyvi 发表于 2016-6-10 19:00:01

我是来学习的,谢谢楼主分享
页: [1]
查看完整版本: grub2下的loopback命令!