网服PE的修改制作


网服PE的修改制作


网服PE的文件目录结构

网服的PE封装形式采用了多文件夹多模块的树形模式,基本目录结构如下所示:

--网服PE/
  ├-Boot/                  // PE的Legacy BIOS传统引导文件
  ├-efi/                   // PE的UEFI引导相关文件
  ├-PETools/               // PE中集成的常用工具软件
  ├-sources/               // PE内核wim包的存放文件夹
  ├-ubuntu/                // ubuntu 的Legacy BIOS引导的LiveCD启动
  ├-WXPE/                  // 老式2003内核PE,is_封装
  ├-bootm32.efi            // UEFI引导文件
  ├-bootmgr.efi            // UEFI引导文件
  └-grldr                  // Legacy BIOS引导的GRUB4DOS主引导记录文件

PE内核的修改

首先说说PE内核的修改。网服PE除了最老版本的2003内核采用了is_文件封装外,现有的Win7 x86Win8 x64以及正在制作的Win10 x86&x64内核PE都采用了现在比较通用的.wim文件封装。所以修改PE第一步就是针对这些wim镜像进行修改。基本流程如下:

  1. 使用WimTool工具选择一个PE内核包比如WIN8PEx64.wim打开进行挂载,然后把vim镜像文件解开到某个目录下,操作类似解压缩文件,之后就可以对wim镜像中的文件进行修改了。wim镜像解开后的目录类似windows系统盘的文件目录结构,毕竟PE也就相当于一个微型的windows系统了,解开后的文件目录结构如下所示:
 --WIN8PEx64.wim
    ├-NET/                   // PE中的.net相关文件以及部分驱动文件
    ├-program files/         // PE中常用的工具软件
    ├-program files(x86)/    // PE中系统默认自带的软件
    ├-program data/          // PE系统数据文件夹
    ├-users/                 // PE中用户文件夹
    └-windows/               // PE系统内核的文件夹
  1. 一般修改PE需要修改编辑的主要是program fileswindows两个文件夹,program files中存放的都是PE中常用的的工具软件,比如Bootice引导工具、DiskGenius分区工具、WinNTSetup安装器等,在这里把文件或文件夹添加进来,比如我更新了DiskGenius4.7.2,替换了原本的DiskGenius4.7,添加替换完之后,在program files文件夹进行的操作就结束了。基本上增加修改工具软件都要先在这里对文件进行增加修改,之后需要到windows文件夹进行下一步修改;
  2. 跳转到windows文件夹后,需要进行下一步修改。之前我替换更新了DiskGenius工具,但是文件名或者文件路径已经改变了。现在需要找到windows/system32/下的pecmd.ini文件,用文本编辑器打开,我一般都习惯使用Sublime Text,记事本也可以。这就是关于PE的配置文件,包括PE的引导、初始化、创建桌面图标开始菜单、加载常用软件工具等,都需要在这里进行配置。pecmd.ini采用PECMD命令的语法,通过多条命令语句组合完成PE的配置。比如我上文中说修改替换了DiskGenius的文件,还需要在配置文件中修改关于它的配置命令,命令如下:
//创建桌面快捷方式
LINK %Desktop%\DiskGenius4.7,%ProgramFiles%\tools\DiskGenius4.7.exe
//创建开始菜单快捷方式
LINK %Programs%\磁盘工具\DiskGenius4.7,%ProgramFiles%\tools\DiskGenius4.7.exe

需要修改为:

//创建桌面快捷方式
LINK %Desktop%\DiskGenius4.7.2,%ProgramFiles%\tools\DiskGenius4.7.2.exe
//创建开始菜单快捷方式
LINK %Programs%\磁盘工具\DiskGenius4.7.2,%ProgramFiles%\tools\DiskGenius4.7.2.exe

以上只是一个非常简单的例子,改动的也只是一两条命令语句,pecmd.ini中的配置信息还是比较多的,也有很多种命令语句,一般也不需要完全记住,用的时候去查PECMD的帮助程序就好,里面有详细的命令说明文档。

  1. windows文件夹中pecmd.ini只是一个配置文件之一,其他还有很多的系统组件还有一些配置项都在这里进行修改。比如我之前为PE添加过DISM服务,就是在这里部署的,也是需要添加文件,然后完成相关配置文件的改动。另外还有桌面背景之类的小东西也是在这里修改的,修改过程和修改工具差不多。
  2. 还有其他比如为PE添加声卡网卡驱动的操作,需要在program files(x86)文件夹中完成配置,驱动文件需要找兼容性适配性比较好的驱动,目前我只添加了网卡驱动,可以在PE中测试机器的网卡是否正常。实际上文件夹的分类都是可以自己修改的,只需要在配置文件中修改对应的路径就好,不过一般为了普适性和通用性考虑,保持windows本身的文件目录结构比较好。
  3. 完成了想修改的所有操作后,就需要再次使用WimTool工具对修改后的PE文件进行打包。同样选择好文件路径填好文件名后,WimTool就会帮你打包出一个.wim镜像文件,这样就完成了一个PE的主体.wim镜像的修改。

外置引导文件及引导菜单编辑

当然,PE的内核wim镜像文件只是其中一部分,下面来说说外置引导文件及菜单的编辑。
外置的引导文件需要编辑的主要是Boot/efi/目录下的部分文件,比如Boot/grub/目录下的message文件,这个文件包括了整个Legacy BIOS引导界面菜单页的详细配置信息。用message编辑器打开后可以对菜单页的详细设定进行编辑,诸如颜色,背景图片、文字字体,菜单结构等。另外还有MENU.LST这种引导菜单条目编辑,也采用命令语句进行编写,比如引导菜单首页就是这样的:

timeout 30
default 3
gfxmenu /BOOT/GRUB/MESSAGE
configfile /BOOT/GRUB/MENU.LST

title [目录] 主菜单
clear

title [0] PE 菜单
configfile (bd)/BOOT/GRUB/MENU1.LST

title [1] 工具菜单
configfile (bd)/BOOT/GRUB/MENU2.LST

title [2] 从硬盘引导系统
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
checkrange 0x80 read 0x8280 && map --hook
chainloader (hd0)+1

title [3] 启动本机系统
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /ntldr || chainloader /bootmgr

title [4] USB2.0提速
kernel (bd)/BOOT/IMGS/PLPBT.BIN
rootnoverify (bd)

title [5] GRUB 命令行
commandline

title [6] Ubuntu 14.04     
find --set-root --ignore-floppies /ubuntu/vmlinuz.efi        
kernel /ubuntu/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu/ubuntu.iso quiet splash ro locale=zh_CN.UTF-8    
initrd /ubuntu/initrd.lz  
boot      

title [7] 重启
reboot

title [8] 关机
halt --no-acpi || halt --force-sci

引导菜单是多级显示的,用多个文件分别编辑。都是采用这种命令语句编写的,基本语法也可以去查阅相关的帮助文档,不过命令接近于伪代码还是比较好懂的。这些东西在编辑完之后直接保存即可,不用做进一步的配置,也基本不用压缩打包。


外挂工具PETools的修改更替

这部分是修改过程中最简单的部分了,只需要把文件替换掉就可以,没什么好说的。因为这部分不存在挂载在PE内核的工具,只要需要使用的时候去找就可以了。


后面的话

PE的修改过程简单来说就是这样,还是比较容易的,刚开始也是很多东西都不太清楚,后来逛了很多论坛,比如无忧启动远景等,也学会了一些东西,同时也找到了很多资源,比如我用过的DISM服务组件就是在这里找到的。其中也遇到了很多问题,在论坛上还有自己折腾的过程中也都得到了解决。还是很锻炼自己的学习能力和实践能力的。


个人的创新点

之前网服的PE在U盘中是没有任何封装形式的,直接放在U盘中,和其他文件共存,这样就会出现偶尔不小心修改PE文件导致PE损坏的情况;并且由于需要Legacy BIOSUEFI双引导启动,U盘只能使用FAT32的文件系统,而众所周知FAT32是不能存储4G以上的单文件的,这样使用就很不便。在我经过探索之后,使用了一种新的封装方式,解决了以上的问题。
解决方案如下:

  1. DiskGenius中,选中U盘,右键清除保留扇区,然后删除所有分区,保存分区更改。
  2. 新建一个全盘大小的FAT32分区并格式化,右键调整分区大小,把FAT32分区调整为1.7G大小,并放到盘尾位置,注意此时FAT32分区应该为活动分区。剩余空间放为空白分区。
  3. PE所有文件拷入FAT32分区,再在DiskGenius里把FAT32分区的盘符右键删除,把剩余空白分区新建为NTFS分区并格式化,自动分配盘符,保存分区更改。
  4. BOOTICE把引导写入U盘,选择目标磁盘为U盘,选择主引导记录,选择GRUB4DOS引导,点击安装/配置,写入磁盘,确定后完成。
  5. 此时U盘在文件资源管理器中只显示NTFS分区,这样一来隐藏了PE文件,而来也解决了FAT32使用不便的问题。
    这个解决方案完全是我自己想出来并实践成功的,不知道算不算首创,不过在论坛里都没有看到类似的解决方案,完全靠自己折腾出来,也是挺高兴的。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容

  • 转载声明:本文虽然不是本人100%原创,但也是辛辛苦苦整理的,可以转载,但请注明出处 这篇文章是关于折腾Windo...
    SOMCENT阅读 7,997评论 3 37
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,138评论 9 467
  • Linux系统一般有4个主要部分: 内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本...
    偷风筝的人_阅读 3,241评论 1 17
  • 理论部分 镜像 一、镜像的百科定义 1、维基百科 ISO映像是一种光盘的存档文件(英语:archive file)...
    幻影翔阅读 1,892评论 4 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,598评论 18 139