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. 超全、超详的Spring Boot配置讲解笔记

    springboot默认加载配置 SpringBoot使用两种全局的配置文件,全局配置文件可以对一些默认配置进行修改. application.properties application.yml 这 ...

  2. Java之路---Day02

    2019-10-17-20:21:22 顺序结构: 概述:顺序执行,根据编写的顺序,从上到下执行语句 判断语句1-if: if语句第一种格式: if(关系表达式){ 语句体; } 执行流程: 1.首先 ...

  3. Java之路---Day01

    2019-10-17-19:36:43 标识符: 标识符:是指在程序中,自己定义的内容.如:类名.方法名.变量名等 命名规则(硬性要求): 1.有英文字母(区分大小写).数字.$(美元符)._(下划线 ...

  4. 科普帖:Linux操作系统

    使用计算机必然会接触操作系统,现代操作系统已经发展的十分成熟,一般用户都可以很轻松的使用计算机.然而,对于要利用计算机进行专业开发和应用的用户来说,需要更加深入地理解操作系统的原理和运行机制,这样才能 ...

  5. 2019-07-25 PDO

    PDO是什么? pdo是php数据对象,即php data object .使用pdo是为了让我们能够使用相同的代码连接不同的数据库.PDO扩展是以面向对象的方式来进行封装,也就是说,我们的PDO扩展 ...

  6. JS实现重载

    在js中,我们实现重载常用的方式有: 1.根据传入参数的类型执行不同的操作. 2.利用参数中特殊的参数值进行不同的操作. 3.根据参数的个数进行重载. 这里对第三种重载方式的实现进行说明. 实现第三种 ...

  7. Navicat连接腾讯云服务器上的数据库

    下面介绍Navicat连接腾讯云服务器上的数据库的两种方法: 方法一:[不需要修改相关远程客户端连接权限] 点击安装好的桌面navicat图标,进入后如下图: 连接方法:ssh中输入自己服务器的外网i ...

  8. Java 之 Session 包含验证码登录案例

    需求: 1. 访问带有验证码的登录页面login.jsp 2. 用户输入用户名,密码以及验证码.  如果用户名和密码输入有误,跳转登录页面,提示:用户名或密码错误  如果验证码输入有误,跳转登录页面, ...

  9. k8s日志收集及存档

    k8s日志收集架构图 利用阿里开源的工具log-pilot,往kafka内写日志,然后吐一份至es,另外一份用flume消费kafka数据落盘

  10. Telnet入侵WindowsXP

    上一章,采用图形界面配置.这一节,采用命令方式配置 //修复.bat(掩饰名字) @ echo off //关闭回显 regedit.exe /s start.reg ///s 不打印 net sta ...