本帖最后由 110654 于 2016-3-16 14:22 编辑
菜鸟个性化U盘之路第6篇(DIY) 你还在为U盘根目录乱七八糟的文件夹分不清楚而烦恼吗? 你还在为grub2该如何使用苦苦找寻教材吗? 你还在为使用那个PE更好,而无法合并到自己的U盘吗? 你还在为efi该如何应用而郁闷吗? 这篇教材适用于才接触grub2的新手,需要自定义U盘引导的,喜欢折腾的,老手飘过。。。 DIY(个性化)的宗旨: 对于原作者的作品,我们可以修改外观,修改布局,修改功能以及快捷方式,但我不赞成修改原作者的标签,这种“毁尸灭迹”的剽窃是对所有致力于IT技术研究的前辈们莫大的打击,我们无偿地使用了他人的劳动成果就应该铭记和感谢他们,那些将“转帖”称为“原创”的家伙是大家所不齿的。 其实很多懂代码的根本看不起DIY这样的工具党,那是因为有些逗比把人家的作品标签都改成自己,还说自己的原创。 下载地址: 这个压缩包包含了全部成品的文件,集合了各类大神的作品修改版,还有很多很多实用工具。 这些工具总之很实用,不要谢我,回帖鼓励一下吧,我会分享更好的东西给大家的。 已知BUG: 在这个压缩包里面缺少一个文件,就是老毛桃0911撒手不管版ISO里面的OP.WIM文件,其实就是XP-PE的外置程序打包文件,大家可以下载原本复制到boot/p/目录里面, 也可以不用添加,这样的话进PE相当于没有任何的工具使用,但你可以使用U盘里面的工具, 安装:(也可参考神雕的帖子) 把U盘格式化成FAT32格式 把压缩包解压到U盘 运行\winly文件夹grubinst文件夹里面的grubinst_gui.exe 就可以使用了 目录结构大致说明 Boot=存放了各类PE, EFI=EFI引导需要的 Winly=神雕作品引导关键文件 Winlyldr=这个文件是grub2引导文件 Winlyldr.mbr=引导文件mbr备份,用于恢复引导 看过第5篇的会发现根目录是不是少了很多文件夹,没错,DIY的目的就是要这样。把各种你喜欢的PE丢到一个文件夹里面去引导,然而还不会跟EFI引导冲突,自己也不会做PE,只能修改别人的怎么办?怎么修改别人的PE? 从下面几个实例中你会发现大多数PE都可以采用这样的办法去解决DIY无法合并的问题 第一个:XP -PE 随便下载个XP的PE,听说老毛桃0911撒手不管版很强大,驱动集成兼容超强,下载一个来DIY一下。 打开看一下发现是个ISO文件,用ULTRAISO提取全部文件出来。百度一下发现XP-PE引导文件说明 WinPE毕竟是MS的附属产品,包含文件如下(分别对应XP启动盘中的那几个文件):
1、PEBOOT.BIN,2、SETUPLDR.BIN(PELDR),3、NTDETECT.COM,4、WINNT.SIF(WINNT.XPE)必须放在根目录。另外还要附带WINPE的ISO文件WINPE.ISO,此文件被CAB压缩后仍然可以被PELDR调用。
具体启动过程是:PEBOOT.BIN在制作光盘时被写入光盘引导轨道,光盘启动后调用光盘:\I386\SETUPLDR.BIN,找到根目录下的WINNT.SIF,根据WINNT.SIF文本中的配置信息找到WINPE.ISO,并将WINPE.ISO载入一个内存虚拟盘X:,在此过程中,要求 WINNT.SIF(WINNT.XPE)必须放在根目录,SETUPLDR.BIN(PELDR)和NTDETECT.COM必须在同一个目录中,如果要将此两个文件放在wxpe目录中,必须同时修改peboot.bin和setupldr.bin的内容,通过ASCII编辑器将其中的i386改成wxpe,同样,如果需要修改 winnt.sif(winnt.xpe)文件名也要通过这个办法修改setupldr.bin的内容。 WXPE下面的NTDETECT.COM,SETUPLDR.BIN2个文件是引导关键文件 根目录下面WINNT.XPE用记事本打开看一下 [SetupData] BootDevice="ramdisk(0)" BootPath="\WXPE\SYSTEM32\" OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=MiniPE\WinPE.IS_" 发现了指引minipe下面的WINPE.IS文件,分析一下资料发现 XP PE引导过程SETUPLDR.BIN------NTDETECT.COM---WINNT.XPE-----WINPE.IS-----winpe.wim 于是我直接用他这个安装程序安装到一个空白的新U盘,发现对应的文件被改名了,现在就手动改名也行 U盘新建立BOOT目录,里面再建文件夹P,为什么是一个字母呢,后面有解释 把SETUPLDR.BIN 改文件名为LDRXPE(注意不是LDRXPE.BIN),WINNT.XPE改名成PE(不是PE.XPE),NTDETECT.COM改名成NTCOM(不是NTCOM.COM),以及winpe.ini,winpe.is_ OP.wim复制到p文件夹 编辑菜单 menuentry "启动 windowsxp-pe"{ insmod part_msdos insmod fat ntldr /boot/p/LDRXPE } 根据WINNT.XPE(改名后PE)引导会发现指引的路径是minipe文件夹里面这里要改成 [SetupData] BootDevice="ramdisk(0)" BootPath="\WXPE\SYSTEM32\" OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=boot\p\WinPE.IS_" 就差最好一步修改MBR引导了,这个PE的引导文件SETUPLDR.BIN也相当于win7pe的bootmbr引导文件,怎么修改这个文件默认指引路径呢,先把这个文件右键-属性-里面的只读不要勾选,用WinHex (16进制编辑器)打开这个文件 修改前
修改后 根据占用的字符发现刚好把位置用完,这我就可以把这些文件丢在boot目录下面了,所以才建立一个英文的文件夹,当然大神级别的高手忽略,这种DIY方式确实有点丢人,能用就行。 然后把所有的minipe都改成这样后保存 这样就成功DIY了PE默认引导路径问题了,然后给这个PE添加一些工具,更新一下版本,打开WINPE.INI, “Desktop”就是桌面,“Programs”就是程序,“LINK %Desktop%\”后面紧跟着是快捷方式的名称,这个随意,逗号后面紧跟着的是程序的绝对路径,这个必须要准确,错一个标点符号都不行。 要往里面添加程序也是一样的,将程序放进对应的文件夹。按照他的格式添加几行就好了对于的文件添加方式: 用这个软件gimagex-wim,挂载这个op.wim到一个目录 直接把对应的程序放在对应的文件夹,编辑那个winpe.ini修改添加对应的路径即可。 到这里XP PE简单的DIY差不多可以了。XP PE中有个winpe.is_这个的文件,其实这个文件可以用winrar软件打开,里面是一个iso打包的xp pe核心文件。这里面修改主要是集成一些驱动等,对于添加软件等操作可以不动它。 下面说明WIN7PE 添加到你的U盘及grub2的应用。 Win7PE差不多也是如此, 这里
注意修改背景壁纸,及路径,有的win7pe是在里面修改背景,有的是加载外部图片为背景,里面的背景存放在 修改配置的软件在windows目录system32文件夹里面 主要修改点是挂载wim文件镜像后找到Program Files文件夹下pecmd.ini记事本打开。 修改了好了,要注意勾选提交更改,这样就完成了win7pe的修改 重点是如何修改bootmgr去指引需要的文件路径,参考这个帖子 至于菜鸟级仍然找不到修改方法,可以直接下载对应的成品替换下面是实例: 比如我需要这个 下载后 这个7pe=bcd菜单文件 7pe_mgr=bootmgr引导文件 他们的路径都是存放在boot这个目录,也就是说你的引导grub菜单去指引bootmgr(也就是7pe_mgr),然后这个7pez_mgr会再指引boot目录的文件bcd菜单,后续加载wim等PE内核文件 例如: 我下载的是通用win7pe 他默认指引的路径是7777,而我要修改为boot。找不到修改的办法,就可以采用替换法。 把下载的那个7pe及7pe_mgr替换掉对应的文件,再用bootice.exe去打开这个7pe文件后编辑指引的wim文件sdi文件就可以了 如果还是找不到修改路径的办法可以参考下面链接这个帖子,直接按提示输入对应路径及文件名就可以获得成品即可使用 比喻,请输入你的boot路径:boot
请输入你的bcd名称: x86
请输入你的bootmgr名称:10pex86
则文件夹boot中自动生成:10pex86和x86两个文件。
10pex86--------bootmgr
x86 -------------bcd (可用BOOTICE.exe编辑) 这样就成功修改了别人的PE以及路径自定义的合盘。 至于win8pe的修改方式,借用别人的话: 有了win7pe的修改经验,修改win8pe就驾轻就熟了吧,所以我也不打算重复那些具体过程,只说两个重点: 1, 不管谁制作的pe系统,首先要找到它用于加载外置程序和桌面背景的配置文件。 2, 这个配置文件存放的地方各有不同,有的放在windows目录下,有的放在system32目录下,命名也各不相同,但是配置文件的扩展名一定是INI。 3, 同时还会存在多个不同作用的INI配置文件,我们需要一一打开查看里面的内容,确定哪个是用于定义外置程序快捷方式的配置文件,再进行修改。 4, 用于加载驱动和注册组件的配置文件和批处理文件,我们千万不要随意去修改,在这个阶段我们还无法将修改错误的地方改正过来。 作为菜鸟级新手,DIY折腾出自己喜欢的U盘引导,需要参考各类大神的帖子,EFI引导,我推荐采用天意PE3.2版,可直接拆分合到你自己的U盘,等于直接给你U盘添加了win8pe-32-efi版,win8pe-64-efi版,顺带还有bios引导的32及64位版如: 找到了他这个PE的菜单,就可以初步判断出他的引导过程及结构,再分析他的boot目录 发现光盘引导的引导文件,03PE核心文件,bcd菜单文件都有了,所以他是整合了03pe,win8-32,win8-64等3个PE到boot目录,bcd菜单都改好了,完全可以直接套用了, 直接复制整个boot里面的文件到自己u盘的boot目录,为了在efi引导时候不于自己采用的神雕grub2-winly引导冲突把efi引导改名 这样就分别表示天意PE的efi引导了。给grub2的菜单添加对应的引导,可根据他原来的菜单引导,他原来这个是采用grub4dos,看菜单上有title这个 就大概识别出来了,都是一个妈生,区别不大,格式不一样的而已。 添加前 title 【01】 Win2003PE迷你维护系统 echo $[1106] Loading TYPE, Please Wait ... ()/boot/grub/F6IMG || find --set-root /boot/grub/F6IMG && /boot/grub/F6IMG map --e820cycles=3 map --rehook chainloader ()/boot/SETUPLDR.BIN || find --set-root /boot/SETUPLDR.BIN && chainloader /boot/SETUPLDR.BIN title 【02】 Native03PE极速维护系统 ()/boot/grub/F6IMG || find --set-root /boot/grub/F6IMG && /boot/grub/F6IMG map --e820cycles=3 map --rehook chainloader ()/boot/NVPELDR.BIN || find --set-root /boot/NVPELDR.BIN && chainloader /boot/NVPELDR.BIN title 【03】 Win8PE精简全能版(32位) find --set-root /BOOT/bootmgr chainloader /BOOT/bootmgr title 【04】 Win8PE精简维护版(64位) find --set-root /BOOT/bcfmgr
添加后 menuentry "启动 windows2003PE迷你维护版"{ insmod part_msdos insmod fat set root='hd0,msdos1' ntldr /boot/SETUPLDR.BIN } menuentry "启动 Windows8 64位PE 维护版" { echo "正在加载 Win8 PE,请等待...." search --file /BOOT/bcfmgr --set=root ntldr /BOOT/bcfmgr } menuentry "启动 Windows8 32位PE 全能精简版" { echo "正在加载 Win8 PE,请等待...." search --file /BOOT/bootmgr --set=root ntldr /BOOT/bootmgr } menuentry "启动 windows2003PE全内置版" --class windows --class os { insmod part_msdos insmod fat set root='(hd0,msdos1)' linux16 (hd0,msdos1)/winly/memdisk iso raw initrd16 (hd0,msdos1)/winly/iso/2003_PE.ISO } EFI菜单添加 menuentry "启动windows8-PE-X32efi系统" --class windows --class os { insmod part_msdos insmod fat chainloader /efi/boot/win8pex32.efi } menuentry "启动windows8-PE-X64efi系统" --class windows --class os { insmod part_msdos insmod fat chainloader /efi/boot/win8pex64.efi } menuentry "启动EFI-shell模式" --class windows --class os { insmod part_msdos insmod fat chainloader /efi/boot/Shell.efi } menuentry "启动MEMTEST内存条测试32位版" --class windows --class os { insmod part_msdos insmod fat chainloader /efi/boot/neicun32.EFI } menuentry "启动MEMTEST内存条测试64位版" --class windows --class os { insmod part_msdos insmod fat chainloader /efi/boot/neicun64.EFI } 顺便再分享2个好东西,从上面EFI菜单中可以看到新增了EFI模式下测试内存条的东西,这个可以哦,很实用,还有shell模式,这个对于新手来说用处不大,有这个总比没有好,万一要用呢,在efi模式再引导要注意,如果你的处理器是那种平板电脑啊,32版的你引导64PE是会报错误的,但你处理器支持64位去引导32位的PE是不会报错的,还有要注意在64位PE里面个别PE无法直接运行32位版的软件,它会报错提示确实dll程序。 但天意PE3.2版就修复了这个问题,不会再出这样的错误了。成品中已包含了2个工具,你也可以复制下来添加到你的U盘 |