PE安装器说明by双心
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双心的更多相关文章
- 支持TV远程控制的WIN10PEX64_17763网络版by双心
支持TV远程控制的WIN10PEX64_17763网络版by双心 用slore大神的wimbuilder2,基于cn_windows_10_enterprise_ltsc_2019_x64_dvd_9 ...
- 双心一键获取winsxs的写入权限,解决VC运行库安装error1935错误
@Echo offtitle 双心一键获取winsxs的写入权限,解决VC运行库安装error1935等错误set path=%path%;%~dp0setlocal EnableDelayedExp ...
- WIN7X64SP1极限精简版by双心
WIN7X64SP1极限精简版by双心 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=405044&page=1&ext ...
- WIN10X64_LTSB2016极限精简版by双心
WIN10X64LTSB2016极限精简版by双心http://www.cnblogs.com/liuzhaoyzz/p/9162113.html 一.前言:关于极限精简版的说明 本系统为极限精简版, ...
- Tablacus Explorer双心封装版
Tablacus Explorer双心封装版 http://cloud.189.cn/t/mYj67j7r2Afq (TablacusExplorer17.3.27双心封装版.exe) http:// ...
- MDIEMDIE双心封装版0.3.0.0RC6V2
MDIEMDIE双心封装版0.3.0.0 RC6V2官方主页:http://cres.s28.xrea.com/MDIE(多文档界面资源管理器)是一个MDI类型的文件管理软件,是代替资源管理器的一个无 ...
- WIN10X64LTSC2019中度精简版by双心
WIN10X64LTSC2019中度精简版by双心https://www.cnblogs.com/liuzhaoyzz/p/11295032.html 一.前言:关于LTSC中度精简版的说明 一个MM ...
- UEFI模式安装Win10和Linux双系统
最近心血来潮,想装一个Linux.Windows双系统,吸取上次安装的经验,这次一定都要使用UEFI模式启动,需要注意的是必须是支持此种启动模式的系统(一般解压之后都有efi文件夹不需要刻录),这次遇 ...
- 在UEFI下安装windows和Ubuntu双系统目前不可行
UEFI是BIOS的升级,未来将取代BIOS,说白了,就是跟BISO差不多的作用.但是目前比较新的主板兼容两种设置就比较坑了,默认是UEFI,UEFI下只能安装win8以上的版本,和linux64位系 ...
随机推荐
- angularJs指令的Scope(作用域)
每当一个指令被创建的时候,都会有这样一个选择,是继承自己的父作用域(一般是外部的Controller提供的作用域或者根作用域($rootScope)),还是创建一个新的自己的作用域,当然Angular ...
- jq对象才能使用jq方法,$(".a").eq(0) 和 $(”.a“)[0]
<a class="a"></a> <a class="a"></a> <a class="a& ...
- JavaWeb 之 BeanUtils 工具类
在上一个用户登录案例中,当从浏览器接收参数后,还需要创建 JavaBean 类,对其的属性每一项赋值,如果属性少,可以手动完成,但是当属性非常多,这时就发现非常不方便,在这里提供一个可以封装 Java ...
- pip笔记(译)
从PyPI中安装包 >>> pip install SomePackage [...] Successfully installed SomePackage 从PyPI或其他地方安装 ...
- C++ primer学习笔记_6_函数---函数定义、参数传递
1. 习题参考: 6.14 举一个形参应该是引用类型的例子,再举一个形参不能是引用类型的例子. 答: 形参使用引用类型的情况:(1)避免拷贝传递大对象的时候,这里的string对象s:(2)当需要从函 ...
- 复盘一篇浅谈KNN的文章
认识-什么是KNN KNN 即 K-nearest neighbors, 是一个hello world级别, 但被广泛使用的机器学习算法, 中文叫K近邻算法, 是一种基本的分类和回归方法. KNN既可 ...
- django引用模板报错Template file 'index.html' not found
产生报错的原因在于index.html未被引用到,处理办法是在setting.py中加入app的name. 我这里app的名字叫sign,所以加入sign就好了 再次访问就好啦
- SHELL脚本编程-普通数组(列表)和关联数组(字典)
SHELL脚本编程-普通数组(列表)和关联数组(字典) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组相关概述 变量: 存储单个元素的内存空间 数组: 存储多个元素的连续的 ...
- MySQL/MariaDB数据库的各种日志管理
MySQL/MariaDB数据库的各种日志管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.事务日志 (transaction log) 1>.Innodb事务日志相 ...
- 利用mysql的inet_aton()和inet_ntoa()函数存储IP地址的方法
原文:https://www.jb51.net/article/29962.htm 当前很多应用都适用字符串char(15)来存储IP地址(占用16个字节),利用inet_aton()和inet_nt ...