PE安装器说明by双心
http://www.cnblogs.com/liuzhaoyzz/p/4204262.html
https://share.weiyun.com/5749g5p
基于omnifs32方案的模板文件7.6MB(不含PE.ISO)
基于CxDirX86方案的模板文件7.7MB(不含PE.ISO)
一、背景
一直以来,大家都是利用PE来维护、安装系统,而PE多用grub4dos来引导,从引导介质来讲,主要有本地硬盘hd、优盘ud、光盘cd、PXE网络pd,启动PE的方式有解开启动和整体启动。而怎样快速简单地安装各种各样的PE到不同介质,手头一直没有合适的工具包,为了方便,我写了几个批处理,快速地在BIOS及UEFI启动的情况下安装PE到不同介质,主要实现以下目的:
1、快速部署,支持快速安装PE到本地硬盘、ud,支持从局域网部署到网内的任一台电脑。
★快速地安装PE到本地硬盘hd或者优盘的任何一个盘符,快速地在boot.ini或BCD中增加grub4dos的启动项。
★支持VHD、RAMOS启动的情况在原来的C盘添加grub4dos启动项,无论原来的C盘是否被分配了盘符,只要是活动分区的就可以。
★支持多硬盘的情况下修改主引导区的boot.ini或BCD。
★支持NT5.x下主引导是NTLDR单引导或者主引导是bootmgr转NTLDR的情况,BCD优先。
★支持unc网络路径,可以直接在网上邻居上的电脑运行,安装到本地任何一个可写盘符。
2、全自动编写菜单。
★无论是ISO、WIM、IMG格式,都能够全自动编写grub4dos整体启动菜单,wim格式的PE也能够自动加入到BCD菜单,从而减少书写错误的几率。
★菜单项采用了sed进行离线行编辑,自动根据选中的ISO镜像自动插入菜单项,如果你原来有菜单,也不会删除你原来的,只会增加非重复的启动项。
★插入菜单项时,如果grub4dos菜单已存在则删除里面已有的启动项后重建菜单,删除菜单启动项搜索的关键字是title+ISO镜像名称,一直删除到该行后的6行,所以整体启动ISO菜单要参考以后的菜单启动项模板编写,保证行数。
3、grub4dos的菜单文件menu.lst只有一个,适用于hd/ud/cd/ud等不同启动方式,具有通用性,“Write once,use everywhere”,如果要支持中文字库,menu.lst编码必须为utf-8格式。
4、BIOS启动时,把一个PE的光盘镜像ISO文件放到工具包内,不用改菜单就能够引导这个PE。利用的是sratlf的RUN模块,达到免写菜单的效果,不过启动时需要手工找到那个启动项。
5、结合tftpd32和tinypxeserver软件,能够作为服务器,用PXE网络启动局域网内的另一台电脑,不用改菜单,PXE启动免配置,双击里面的批处理即可启动PXE服务器。
6、集合常用的写引导工具bootice,UEFI引导工具XorbootUEFI,ud制作工具fbinstool,sratlf的run模块。
7、在BIOS下可以制作UEFI启动盘,在UEFI下也可以制作BIOS启动盘,适用于多硬盘、优盘各种复杂模式启动,支持一键安装PE到空白硬盘,没有引导的一键添加引导。
★需要说明的是,很多新主板UEFI启动不但支持从GPT硬盘启动,还支持从MBR硬盘启动,甚至不需要FAT32分区,可以从MBR硬盘的NTFS分区启动。所以UEFI启动列举出了所有的分区,包括ESP/FAT32/NTFS分区供用户依据自己的引导分区情况自己选择,如果选择了\EFI\Microsoft\Boot\BCD不存在的分区,会自动补充UEFI所需的bootmgr、BCD、bootx64.efi引导文件。

二、软硬件适用条件
支持BIOS/UEFI启动PE,支持XP WIN7 8 10版本的PE.ISO整体启动,支持解包后的PE.WIM启动。对于PE.ISO仿真到内存整体启动,大概要求物理内存比ISO体积大1GB左右。对于bootmgr作为第一启动的方案,系统自带的bcdedit命令要求能够正常运行不出错,因为需要这个自带的命令修改BCD的启动项,而且要以管理员身份运行。

三、不同引导方式下的具体用法
【01-PE安装器by双心】批处理(请以管理员身份运行):
1、BIOS启动菜单:
(1)ntldr/bootmgr==>grldr==>PE.ISO,本地硬盘有操作系统推荐用该方式(需要二次选择菜单)。
该方案能够在XP或者win7 8 10的引导菜单中增加grub4dos引导项目,电脑启动后按上下键就能选择grub4dos从而启动PE。多次运行不会增加重复启动项。
(2)ntldr/bootmgr==>PE.WIM,本地硬盘有操作系统推荐用该方式(一次选择菜单)。注意要确保引导分区\boot\boot.sdi文件存在,原版大小是3MB,不存在就自行拷贝一个放进去。
(3)grldr==>PE.ISO,本地硬盘和USB设备均可用,USB设备推荐用该方式(一次选择菜单),格式化C盘也可启动其他盘的PE.ISO,会修改启动盘MBR为grub4dos。
★对于grub4dos作为第一引导器,ISO镜像存放在非系统盘的情况,可以格式化C盘,重做系统后,仍然可以进入PE,这种方案不用反复进入BIOS修改启动项设置,很方便可靠。
★该方案把grub4dos写入硬盘MBR,写入参数可以根据需要进行修改,当然也可以直接用Bootice的GUI。
★该方案同时在引导盘和ISO目标盘根目录menu.lst中以非重复方式离线插入启动项,避免启动时优先找到的是启动盘的menu.lst导致无法看到ISO目标盘里的启动项。
(4)修改启动盘MBR为windows ntldr/bootmgr
(5)建立boot启动模板(不含ISO、wim、img镜像),可以在同盘根目录下建立一个boot_moban的文件夹,里面不包括PE.ISO。
(6)切换到UEFI制作模式,用于制作UEFI启动盘,适用于多硬盘、优盘各种复杂模式启动,支持安装PE到空白硬盘。
2、UEFI启动菜单:
(1)ntldr/bootmgr==>PE.WIM,本地硬盘有操作系统推荐用该方式(一次选择菜单),注意要确保引导分区\boot\boot.sdi文件存在,原版大小是3MB,不存在就自行拷贝一个放进去。
(2)XorbootUEFI==>PE.ISO,本地硬盘和USB设备均可用,USB设备推荐用该方式(一次选择菜单),目前需要手工操作
(3)建立boot启动模板(不含ISO、wim、img镜像),可以在同盘根目录下建立一个boot_moban的文件夹,里面不包括PE.ISO。
3、PXE启动:可选用tftpd32或者TinyPXEServer方案,里面有批处理可以免配置。
(1)打开主机根目录下【\boot\grub\06tftpd32免配置网启服务器grldr.bat】或【\boot\grub\07tftpd32免配置网启服务器pxelinux.0.bat】,批处理会自动设置好起始IP,地址池大小,子网掩码,客户机BIOS设置开启PXE,根据提示,例如SHIFT+F10进入PXE启动。客户机开启网络服务,然后用penetconfig软件建立映射,例如A:→\\ip地址\共享名,或者\\计算机名\共享名,输入用户名和密码,一般是guest,也可以用administartor+密码来访问主机的程序,例如下载gho万能安装镜像。这里只提供tftpd32网启服务器的免配置批处理,改编自歌理的pxe免配批处理。
(2)或者你也可以用双击【08Tiny PXE Server免配置网启服务器ipxe.pxe.bat】【09Tiny PXE Server免配置网启服务器undionly.kpxe.bat】,自动启动Tiny PXE Server软件,它同时支持TFTP/HTTP/PrxyDHCP多个协议,免配置,启动文件分别为ipxe.pxe/undionly.kpxe(菜单文件默认ipxemenu.ipxe),默认自动开启DHCP、HTTPd服务。
(3)如果想换个PE,只需要把PE的ISO镜像文件拷贝到\boot\imgs目录下,运行【05生成ISO文件列表.bat】更新dir.txt(PXE启动需要),grub4dos菜单选择“run mem automenu by sratlf”就能从这个PE启动。
(4)切换到BIOS制作模式,用于制作BIOS启动盘,适用于多硬盘、优盘各种复杂模式启动,支持安装PE到空白硬盘。
4、USB启动方案:
(1)安装到优盘可见区,BOOTICE写入引导grub4dos或者wee,grldr==>PE.ISO,输入优盘所在盘符即可。
(2)安装到ud区:用fbinstool格式化优盘,把boot目录拖进ud根目录,再把grldr,menu.lst拷贝到ud根目录。

四、其他相关说明
1、注意:拷贝ISO过程中会挂载所有的隐藏分区,以保证能够正常拷贝grldr和menu.lst到启动分区,拷贝完成之后会自动卸载隐藏分区。因此拷贝文件时不要强行关闭批处理,否则隐藏分区不会被自动卸载。如果原目录已经有同名的ISO文件,则自动跳过,不会覆盖,节约时间。
2、关于启动盘的确定,提示用户选择,因为在PE下多硬盘的情况下无法准确判断启动分区,因此只能提示用户选择。
3、grub4dos启动的方案中,menu.lst菜单中有一项map --e820cycles=-1是参数默认值,如果整体仿真启动遇到蓝屏,在grub4dos启动主菜单按e键编辑,尝试改成1~4中的某个数值。
4、文件及目录结构
我个人比较喜欢uepon的通用PE和微PE,菜单以微PE整体启动为例。这里以实用为主,没有考虑背景图片。
软件包的目录结构:
X:\
│ grldr
│ menu.lst
├─BOOT\(Legacy BIOS启动用)
│ ├─BOOTICE\(存放bootice工具)
│ ├─FbinstTool\(存放FbinstTool工具)
│ ├─imgs\(存放PE的ISO镜像文件,各种软件img镜像文件)
│ ├─grub\(内有grldr.*、menu.lst的备份,批处理会自动把备份拷贝到根目录,还存放font字库、sratlf的run模块和网启服务器tftpd32.*)
│ └─pxelinux.cfg\(存放pxelinux默认菜单default)
│ └─XorbootUEFI\(存放XorbootUEFI)
个人觉得,安装系统最最稳妥的方式是从硬盘启动PE来安装,优盘、PXE启动毕竟没有本地硬盘启动方便,还要进BIOS改启动顺序,只要硬盘能够进入Windows,就在Windows下运行那个批处理,把PE安装到除C盘之外的任何一个盘符,直接用批处理一键把硬盘MBR修改为grub4dos,这样随心所欲地安装系统,格式化C盘也没事,PE仍然能从非系统盘启动,安装完毕如果喜欢ntldr或者bootmgr的引导方式,也可以改回来。如果手头没有优盘,没有第二台电脑,网上下载这个工具包,安装到非系统盘是最稳妥的办法了。你甚至可以保存在手机中,在半死的Windows中部署到硬盘。

五、用到的命令或工具
1、判断当前系统是BIOS启动还是UEFI启动,分区表是MBR还是GPT(by双心)V1.3 http://wuyou.net/forum.php?mod=viewthread&tid=412368
1、DetectEFI32,50KB,adef提供,我重新编译,检测当前系统是BIOS启动还是UEFI启动。
http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=413675&pid=3792649&fromuid=298214
2、grub4dos-0.4.6a-2016-12-24,310KB,该版本与sratlf版主的RUN20141206版本兼容性较好,较新版本的grub4dos可能与sratlf的RUN模块不兼容,因此不推荐更换为最新版本的grub4dos,除非你不用RUN模块,或者当前版本的grub4dos在你的电脑上根本无法启动。
3、sratlf的RUN20141206模块,746KB,RUN 1206 更新 支持磁盘交换,文件检索,自动菜单,自动列表,全自动安装nt5x系统
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=191301
4、booticeX861.3.4,451KB,pauly的写引导工具。http://wuyou.net/forum.php?mod=viewthread&tid=57675&extra=page%3D1
5、XorbootUEFI0.2.5,3.88MB,pauly的UEFI引导工具。http://wuyou.net/forum.php?mod=viewthread&tid=157812&extra=page%3D1
6、CxDirX86,23.5KB,2012jiashanni分享,用于显示磁盘分区相关信息,例如磁盘大小、卷标、MBR/GPT、文件分区、活动分区,可能是某网友基于drvtype思想写的,来源不明,总之是大神写的。当初也曾考虑过采用diskpart方案,diskpart限制太多,涉及到windows不同版本需要做很多测试,而且需要用到很多批处理技巧,因此放弃diskpart,直接采用现成的CxDirX86。
http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=414335&pid=3789135&fromuid=298214
7、sed for windows,92.5KB,为批处理插上了飞翔的翅膀,是批处理的灵魂。
8、concmd,261KB,tmplinshi版主提供,用于gbk,utf8编码转换。http://www.bathome.net/thread-12595-1-1.html
9、find,15.5KB,windows系统自带的。不同系统命令不一定通用,因为windows的小程序都有文件签名,所以未放到文件包里。
10、mountvol,14.5KB,windows系统自带的。不同系统命令不一定通用,因为windows的小程序都有文件签名,所以未放到文件包里。
11、bcdeditX86,320KB,提取自win8X86,可以解决部分WIN7系统bcdedit无法运行的问题,要求当前系统盘必须激活。
12、PXE启动可选用tftpd32/196KB或者ljycslg分享的TinyPXEServer/928KB方案,用里面的批处理可以免配置。
Tiny PXE Server 1.0.0.20 汉化版http://bbs.wuyou.net/forum.php?mod=viewthread&tid=375813
13、FbinstTool1.701.2017.0318,1.74MB,由jianliulin编写,内置了bean编写的fbinst,是用于增强usb启动成功率的工具。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=189221

六、待完善的地方:
1、XorbootUEFI暂时不支持命令行,批处理暂时不支持一键写UEFI引导,pauly说以后会支持。
2、grub4dos启动画面没有用图片,不够精美,没有用采用中文菜单,因为一闪而过。注意如果采用中文,menu.lst必须采用utf-8编码。
3、用的批处理连接各个exe小程序,不如直接用au3、VBVC、delphi这样的工具写出来的高大上,界面不够美观。有利有弊吧,批处理的好处是开源、接地气,大家都可以根据自己的情况更改代码,以适应自己的需求。

七、特别鸣谢
不点、bean、chenall、2011yaya2007777(grub4dos开发者们)、pauly(bootice、XorbootUEFI作者)、jianliulin(FbinstTool)、adef(DetectEFI)、CxDir(2012jiashanni)、sratlf(RUN模块作者)、歌理(PXE免配菜单)、ljycslg(tinypxeserver汉化分享)、芈员外(一键RAMOS框架)、tmplinshi(concmd作者)...等等等等。

PE安装器说明by双心的更多相关文章

  1. 支持TV远程控制的WIN10PEX64_17763网络版by双心

    支持TV远程控制的WIN10PEX64_17763网络版by双心 用slore大神的wimbuilder2,基于cn_windows_10_enterprise_ltsc_2019_x64_dvd_9 ...

  2. 双心一键获取winsxs的写入权限,解决VC运行库安装error1935错误

    @Echo offtitle 双心一键获取winsxs的写入权限,解决VC运行库安装error1935等错误set path=%path%;%~dp0setlocal EnableDelayedExp ...

  3. WIN7X64SP1极限精简版by双心

     WIN7X64SP1极限精简版by双心 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=405044&page=1&ext ...

  4. WIN10X64_LTSB2016极限精简版by双心

    WIN10X64LTSB2016极限精简版by双心http://www.cnblogs.com/liuzhaoyzz/p/9162113.html 一.前言:关于极限精简版的说明 本系统为极限精简版, ...

  5. Tablacus Explorer双心封装版

    Tablacus Explorer双心封装版 http://cloud.189.cn/t/mYj67j7r2Afq (TablacusExplorer17.3.27双心封装版.exe) http:// ...

  6. MDIEMDIE双心封装版0.3.0.0RC6V2

    MDIEMDIE双心封装版0.3.0.0 RC6V2官方主页:http://cres.s28.xrea.com/MDIE(多文档界面资源管理器)是一个MDI类型的文件管理软件,是代替资源管理器的一个无 ...

  7. WIN10X64LTSC2019中度精简版by双心

    WIN10X64LTSC2019中度精简版by双心https://www.cnblogs.com/liuzhaoyzz/p/11295032.html 一.前言:关于LTSC中度精简版的说明 一个MM ...

  8. UEFI模式安装Win10和Linux双系统

    最近心血来潮,想装一个Linux.Windows双系统,吸取上次安装的经验,这次一定都要使用UEFI模式启动,需要注意的是必须是支持此种启动模式的系统(一般解压之后都有efi文件夹不需要刻录),这次遇 ...

  9. 在UEFI下安装windows和Ubuntu双系统目前不可行

    UEFI是BIOS的升级,未来将取代BIOS,说白了,就是跟BISO差不多的作用.但是目前比较新的主板兼容两种设置就比较坑了,默认是UEFI,UEFI下只能安装win8以上的版本,和linux64位系 ...

随机推荐

  1. oralce学习笔记(二)

    分区清理: --范围分区示例 drop table range_part_tab purge; --注意,此分区为范围分区 create table range_part_tab (id number ...

  2. kafka使用SASL_PLAINTEXT做用户认证

    使用SASL/PLAIN认证 server端1.配置brokerkafka_server_jaas.conf内容KafkaServer {org.apache.kafka.common.securit ...

  3. 易百教程人工智能python修正-人工智能无监督学习(聚类)

    无监督机器学习算法没有任何监督者提供任何指导. 这就是为什么它们与真正的人工智能紧密结合的原因. 在无人监督的学习中,没有正确的答案,也没有监督者指导. 算法需要发现用于学习的有趣数据模式. 什么是聚 ...

  4. 【转载】C#中float.TryParse方法和float.Parse方法的异同之处

    在C#编程过程中,float.TryParse方法和float.Parse方法都可以将字符串string转换为单精度浮点类型float,但两者还是有区别,最重要的区别在于float.TryParse方 ...

  5. js函数(续)

    一.全局变量和局部变量全局变量:当前js页面中均可使用的变量[声明在函数外面的变量],整个js页面中均可以使用.局部变量:声明在函数内部的变量,只能在函数内部使用.eg: var a = 1; con ...

  6. react native报错处理com.android.build.api.transform.TransformException: com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process

    背景:最近准备在使用react-native开发的app中接入友盟,来进行用户行为统计,分享,授权登录等操作. 在使用的过程中,遇到了一些错误信息,在此记录一下. 在修改android目录下的buil ...

  7. 什么影响了mysql的性能-硬件资源及系统方面优化

    随着数据量的增大,数据库的性能问题也是个值得关注的问题,很多公司对mysql性能方面没有太过重视,导致服务浪费过多资源.mysql服务性能差从而直接影响用户体验,这里我们简单的先来聊聊什么影响了mys ...

  8. uuid简述

    什么是UUID? UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符,参考RFC规范-RFC4122. UU ...

  9. FreeBSD设置开机同步时间

    没有设置开机同步时间的话,重启之后时间不对. 如果装机时没正确设置时区,先设置时区:# tzsetup 用date命令手工设置时间一方面不方便,另一方面也依赖于本地管理员的时钟的正确性,那么网络上不同 ...

  10. 「资料分享」理解uboot要看哪些书

    最开始是看的韦东山老师的视频,确实很不错,不过总感觉是不够深入扎实,还是想自己看看书,就总结搜罗下,以供参考 学习交流可以添加 微信读者交流①群 (添加微信:coderAllen) 程序员技术交流①群 ...