无忧启动论坛

标题: grub2下的loopback命令! [打印本页]

作者: my9823    时间: 2013-12-3 09:32
标题: 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
你上面的操作成功,是在BIOS情况下。
前些时候,在EFI下,用EFI和BIOS双启动的Win8x64PE,与你方式相同,我就不能启动,root设定毕,chainloader /efi/boot/bootx64.efi,这步就告诉我不认识的什么忘记了,还没到boot命令。考虑到某些可能,终究没有成功。
作者: wuyouhou    时间: 2014-4-25 08:45
记得后来我把iso文件用diskgenius重新制作成mbr硬盘img镜像来测试,结果一样,无法启动。
作者: 2013gdh    时间: 2014-8-24 15:00
话说, grub2中文帮助里说GRUB 支持 El Torito1非仿真模式, 也就是iso仿真
不过那儿只是说grub2支持从仿真iso里启动, 没说支持从仿真iso里启动别的, 如果楼主你的iso启动一切正常, 那大概说明grub2支持仿真iso启动别的
帮助里说loopback和磁盘仿真不是一个东西, 所以loopback的img不能被后续引导文件识别也说得通了
所以大概要把img转iso...
作者: 110654    时间: 2016-4-5 09:35
我来告诉你正确答案吧

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

你需要一个memdisk 这个文件而已
作者: kyvi    时间: 2016-6-10 19:00
我是来学习的,谢谢楼主分享




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3