• U盘 grub4dos / GRUB2 引导 Deepin 2015 ISO进入 LiveCD 安装

    GRUB2的commandline:

    set isofile="/deepin-15-alpha2-amd64.iso"
    search --file $isofile --set=root
    loopback loop $isofile
    linux (loop)/live/vmlinuz.efi boot=live union=overlay username=user quiet live-config findiso=$isofile locales=zh_CN.UTF-8
    initrd (loop)/live/initrd.lz
    boot

     

    grub4dos的 menu.lst 写法,需要先在iso的live目录下提取 vmlinuz 和 inirtd.lz :

    title Deepin 2015 Live CD
    find --set-root /deepin-15-alpha2-amd64.iso
    kernel /vmlinuz boot=live union=overlay username=user quiet live-config findiso=/deepin-15-alpha2-amd64.iso locales=zh_CN.UTF-8
    initrd /initrd.lz
    boot

     

    相关参考:

    http://bbs.deepin.org/forum.php?mod=viewthread&tid=33602

    http://bbs.deepin.org/forum.php?mod=viewthread&tid=33785

  • U盘用Grub4dos加载PE的ISO镜像无外置程序的解决方法

    grub4dos是个好东西,可以直接加载镜像,但是在加载PE的iso镜像的时候就容易出问题:能进入系统但外置程序都失踪了。

    对于这个问题,今天我看到了这个帖:http://bbs.wuyou.com/viewthread.php?tid=137751,对我解决这个问题有很大帮助,此帖介绍了出现这个问题的原因,引用刚才给的链接的内容粗略地讲就是 :

    “Grub能仿真CDROM加载WINPE.ISO,并引导WinPe,问题是 WinPE引导了之后(就是开始解压并运行WINPE.IS_ ),WINPE.ISO 的根目录的下文件就不能再被系统找到了”

     

    这个问题我的解决方法是这样的:

    • 不加载iso镜像,直接把文件从iso里提取出来,需要提取的文件有:NTDETECT.COM、WINNT.XPE(以上两个文件似乎都要放在U盘的根目录),其他文件可以放在U盘的其他文件夹:NTLDR(SETUPLDR.BIN)、.wim文件(外置程序)、WINPE.IM_、WINPE.INI,之后就是修改各个文件。

     

    • 保证WINNT.XPE中 “/rdpath=” 后面的.IM_文件路径的正确。

     

    • WINPE.INI中,一些跟加载.wim文件的目录有关的都要留意。下面给出两个范例:
    1. MOUN %CurDrv%\MINIPE\OP.WIM,B:,1
    2. TEAM ENVI SOFT=%Curdrv%\minipe|ENVI PF=Pagefile.sys
      FORX %SOFT%\PE.WIM,swim,0,MOUN %swim%,%MountPath%,1
    • 按照上述两种情况,假如你的.wim文件不是放在U盘的minipe目录下的话,那就要修改WINPE.INI了。

     

    • 最后一个要改的文件是PECMD.INI,它在WINPE.IM_里面,为什么要改这个文件呢?根据我的理解,因为PE并不知道你的WINPE.INI的路径,WINPE.INI的载入是基于对PECMD.INI的读取的,也就是说,PE是先读取PECMD.INI,然后再根据这个文件里给的路径载入WINPE.INI,因为我们启动的方式不同,WINPE.INI的路径自然也不同了,所以就要修改PECMD.INI。(又pecmd又winpe好像有点乱啊……)

     

    • 如何修改PECMD.INI呢?那就要对WINPE.IM_这个文件下手了。

     

    1. WINPE.IM_其实是一个CAB压缩文件,把它的后缀名改成.cab之后用WinRAR等软件就可以解压出WINPE.IMG(好像也有的不是.img而是.iso)
    2. WINPE.IMG是个镜像文件,可以用Virtual Drive Manager来载入,(相应的,如果是.iso就用UltraISO之类的吧)(经测试用CHKEN Virtual Disk也可以载入),载入了之后你就可以在我的电脑看到mount出了一个盘。
    3. 进入\WXPE\SYSTEM32 目录,找到PECMD.INI,打开。
    4. 找到加载WINPE.INI的有关内容,如:

     

    • 范例一:FORX !\MiniPE\WINPE.INI,MyIni,1,LOAD %MyIni%
    • 范例二:FIND $MinMode=Yes,LINK %Desktop%\加载外部配置,PECMD.EXE,LOAD \MiniPE\WinPE.INI,Shell32.dll,26!TEXT|LOAD \MiniPE\WinPE.INI

     

    如果你的WINPE.INI不是在minipe目录下,那就要相应地修改了。修改完后就是打包。刚才WINPE.INI保存后,把之前mount的WINPE.IMG unmount就可以保存了(真方便啊),保存了WINPE.IMG还没行,我们还要把它压缩成cab格式的。cab格式是微软的,所以windows都自带制作.cab格式的程序,它就是makecab。在cmd内用makecab就可以把WINPE.IMG压缩成cab格式了(命令具体用法请自行查询),最后把它改名为WINPE.IM_就大功告成了。

    经过这3个文件的修改,在grub4dos下用chainloader SETUPLDR.BIN 来启动应该就是一个带外置程序的PE了。我的方法相比刚开始给出的链接的方法虽然有点麻烦(貌似他只要一个.iso来map,winpe.ini放在 .IM_文件里,.wim文件分开放),但是原理上是基本相同的,完全可以按照这个方法来修改winpe.ini和pecmd.ini来实现。

  • 使用grub4dos 0.4.4引导iso文件

    这个功能挺方便的,使用也很简单

    下面内容节选自原版menu.lst:

    title find and boot MicroPE.ISO
    fallback 6
    find –set-root /boot/MicroPE.ISO
    map /boot/MicroPE.ISO (0xff) || map –mem /boot/MicroPE.ISO (0xff)
    map –hook
    chainloader (0xff)
    savedefault –wait=2

    剩下的就知道怎么改了吧~

    下载地址请前往grub4dos官网