无忧启动论坛

 找回密码
 注册
搜索
一次装机 终生领工资最纯净的「微PE装机优盘」UEPON大师作品卡瑞飞系统和装机二合一超级U盘
诚聘PE工具开发技术员QQ:1607112133系统gho:最纯净好用系统下载站广告联系 QQ:184822951 微信:wuyouceo
查看: 21222|回复: 138

[分享] 开源,基于分区助手命令行的UD三分区一键无损制作脚本,uft8,支持win10!20181225

    [复制链接]
发表于 2015-8-19 12:32:55 | 显示全部楼层 |阅读模式
本帖最后由 zds1210 于 2019-1-2 17:52 编辑


广告:UD老三,法驾中原,无损神功,威震天下。
[推荐]分区助手功能很强,支持从U盘左右端分区,支持指定偏移量分区,支持无损分区;安全写入隐藏区PE,不会误操作到数据区……总之,灵活、安全、稳定,强烈推荐用于三分区及U+B+两分区制作。
分区助手命令行传送门     默默的对应的au3程序版本传送门(默默授权独剑编译的最新版本)    王者之风改进的au3程序版本传送门
程序版无更新,win10下无损制作一定要用bootice或diskgeuis手工删除efi区盘符分配
提示:当升级制作时候,新PE体积增加比较大,原UD区和efi区空间不够时,无损全新制作一次就好了。

更新预告:强制结束常用分区软件进程,进一步解决U盘占用问题;解决分区助手命令行写入目录中不支持中文带空格的问题;解决复制bpb到UD的mbr会丢失数据的问题;解决UD区不能完全无损清空的问题;解决分区助手命令行制作的efi区兼容性稍差的问题。
[警告]分区助手命令行在无损分区操作方面很强,但仍可能丢失U盘数据,同时在无损制作时一定要保持不间断电源。
测试PE:cmd和王者的au3主程序 制作,双03和10PE   
更新说明
20181225版:设计了新的pecmd方案,win10系统中自动删除U盘efi区盘符分配,较完美的解决了win10下的无损制作问题,支持U+隐藏盘、U+高端隐藏盘和UDU深三分区无损制作成UD三分区。无弹窗,不再调整U盘盘符。
20181104版:优化了win10系统的无损制作和还原,减少可能错误;并增加bootice删除PE分区盘符,来解决win10系统下无损制作的方案,因出错会弹出bootice窗口,暂关闭,静待分区助手命令行增加类似功能。
20181014f版:增加pecmd组件,win10系统中自动删除U盘efi区盘符分配,较完美的解决了win10下的无损制作问题,支持U+隐藏盘、U+高端隐藏盘和UDU深三分区复杂在win10无损制作成UD三分区。
20181003版:优化了管理员权限获取(无忧论坛lintrainwy)。
20181002版:适配win10——修正右键以管理员权限运行时的路径错误,8 10系统默认以管理员权限运行,win10系统下强制隐藏efi区,修正先UD后UI制作时因U盘占用不能正常制作的问题;修正了win10下无法无损还原U盘的bug。
20170305版:更新fbinst plus至1.4版,强制格式化UD区为utf-8格式,支持把utf-8格式fba写入UD区 ,解决UD乱码之争。(原版的fbinst经修正,也支持命令行格式为utf-8)
20160811版:修正无损升级PE时,efi区可见,重新写入efi区数据,U盘盘符丢失不能制作的问题;无u盘时强制退出;还原U盘,不再磁盘修复以免因U盘错误,图形界面程序卡死;其它细节优化。
20160802版:增加一先U+后UD全新制作UD三分区的模块
20160306版:更新分区助手命令行至6.1.2版,解决直接向隐藏efi区写入文件卡死的问题;无损升级制作时候,直接删除efi区全部文件和目录,不再用格式化efi区。
20150903抗战胜利特别版:全新制作和全新还原时,chkdsk只查看磁盘错误,并卸载U盘以解决U盘占用。
3.1模块:更新分区助手命令行至2015826正式版,解决在xp下运行提示错误的问题;修复无损还原时候不能清空UD区的问题(暂时没有彻底删除UD区);尝试增加自定义配置的支持。
3.0模块:采用分区助手命令行20150826版测试版,解决了xp下向隐藏区写入文件的问题;新增加了两个功能,一个是,重建MBR的功能,另一个是修改分区盘符的功能。实测在xp/7下写PE文件正常。
2.8模块:解决脚本放在空格目录中制作失败的问题(主要是分区助手不支持把带空格的目录复制文件到隐藏区,iso解压到temp解决);解决磁盘编号大于8不能制作的问题;修正无损制作U+ 隐藏盘时,无激活区的问题;改进无损还原UD区占大空间的问题;其它优化改进。
2.7模块:在分区助手作者disktool亲自指导下——弃用手工选择U盘脚本;文件结构简化;制作前强制卸载并修复U盘错误,增加无损制作可靠性;智能选择并清空未分配盘符的有效分区,解决低端隐藏盘不能制作问题,解决复杂结构的U盘制作问题;并增加无损还原U盘脚本。
2.5和2.6的f模块:修正没有安装7z的机子中,不能解压iso的错误。
2.6模块:智能选择U盘磁盘编号,多个U盘选择最后一个,全自动制作
2.5模块:增加了升级制作脚本,增加了还原U盘脚本,最后一个要选择U盘编号的版本
2.4模块:智能选择U盘盘符
2.3模块:增加了全新制作脚本,以让大家明白此法的简单可行。
2.2模块:支持efi区文件整体打包成efi.iso。
2.1模块:20150820,分区助手作者发来了新版的分区助手命令行,增加了直接向隐藏efi区写文件的功能,列磁盘增加只列出移动磁盘的功能。21日,不才改进脚本,成功把fba写入UD区,用分区助手命令行把散开的efi.iso写入efi区。一切大功告成,实践证明,无损数据区制作UD和UD三分区是可行的,就等大神们编程实现了。

UD三分区简介:
UD三分区=UD区+exfat或ntfs格式的激活的可见data区+fat格式的隐藏高端efi区
UD三分区,UD加U+高端强强联合,优势互补,打造史上最强的bios/uefi万能启动PE。
UD三分区因具有超强的bios/uefi双启兼容性、一键制作的超强方便性、PE全隐藏的超强安全性、方法标准通用的超强可移植性、fbinst和grub4dos全开源的超强开放性、数据区可存放大于4G文件的超大文件存储性,越来越受到电脑公司和PE爱好者的喜爱,成为后bios时代主流PE部署方法之一。
但因传统的UD三分区编程技术比较复杂,制作UD区和efi区会相应的破坏对方,所以UD三分区一键制作编程并没有普及起来。为实现无损数据区制作,主要还是为了大大简化UD三分区编程制作,让人人都能编出UD三分区制作主程序,不才特请傲梅分区助手作者disktool,开发出无损分区的相应命令行,用于简化UD三分区编程制作,实现无损数据区制作UD三分区 。现在已经开发出一个cmd脚本,自己测试是成功的。基本上是模拟手工制作教程。编程高手可以对照手工教程及分区助手命令行,来编程实现。

关于无损数据区制作UD三分区大致的流程
基于ntfs格式的U盘,很容易无损的分出左端区和右端区,而左端未分配空间区用fbinst命令行非强格式就成UD区。所以,思路如下:
1获取U盘编号和盘符,并判断U盘格式,ntfs格式磁盘不动,fat16和fat32用convert无损转换为ntfs格式;exfat强格为ntfs,这个数据丢失,不能无损。
2用分区助手清空U盘当前盘左端和右端所有分区,合并空间到ntfs数据区。这样子可以解决二次制作问题,解决复杂U盘制作失败的问题。
3用分区助手调整出右端的efi区,并格式为fat,不激活,不设置隐藏属性
4用分区助手调整出左端的区,并用fbinst非强格成UD区。(非强格,未分配空间就无损数据区变成了UD区
5用分区助手把iso数据写入efi区。
6用fbinst把fba文件写入UD区。

  1. @Echo Off
  2. rem cd /d "%~dp0"
  3. COLOR 2F
  4. echo 检查 管理员权限...
  5. %1 mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&& exit
  6. pushd "%CD%"&& CD /D "%~dp0"

  7. Set TT=独剑制作的无损UD三分区脚本
  8. TITLE %TT%

  9. CLS
  10. Echo.
  11. Echo.
  12. Echo        ╭══════════════════╮
  13. Echo        ║                  ║
  14. Echo    ╭═══┤ %TT%!        ├═══╮
  15. Echo    ║   ║                  ║   ║
  16. Echo    ║   ╰══════════════════╯   ║
  17. Echo.
  18. rem 变量说明: %uid%—U盘磁盘编号  %udri%—U盘盘符  %drid%—U盘磁盘格式
  19. rem 变量说明: %padel%—要删除的非数据分区  %padel%—显示无损制作成功
  20. rem 中间文件说明 Usee0.txt-U盘磁盘编号查看文件,用于判断U盘磁盘编号
  21. rem 中间文件说明 Usee.txt-U盘磁盘格式查看文件,用于判断U盘盘符和格式

  22. echo  列出指定电脑上所有移动磁盘
  23. .\bin\partassist.exe /list /usb
  24. .\bin\partassist.exe /list /usb /out:.\bin\Usee0.txt
  25. Set uid=
  26. Echo.
  27. echo 智能查找U盘磁盘编号,多个U盘时候选择最后一个。
  28. Set uid=
  29. for %%j in (1 2 3 4 5 6 7 8 9 10 11 12) DO (find  /i "%%j        |" .\bin\Usee0.txt>nul&&SET uid=%%j)
  30. if not defined uid echo 找不到U盘,无法制作自动退出!!!!&&pause&&del .\bin\Usee0.txt /q&&goto EX
  31. echo 你的U盘磁盘编号为%uid%
  32. del ".\bin\Usee0.txt"  /q

  33. Echo.
  34. echo  列出U盘上的所有分区
  35. .\bin\partassist.exe /list:%uid%
  36. .\bin\partassist.exe /list:%uid% /out:.\bin\Usee.txt

  37. Echo.
  38. echo 智能查找U盘所在盘符,移动硬盘自动选择最左端分区
  39. Set udri=
  40. for %%i in (Z Y X W U T S  R Q P O N M L K J I H G F E D C) DO (
  41.                 find  /i "%%i:" .\bin\Usee.txt>nul&&SET udri=%%i)
  42. if not defined udri echo 找不到U盘盘符,无法制作自动退出&&pause&&del .\bin\Usee.txt  /q&&goto EX
  43. echo 你的U盘所在盘符为%udri%盘

  44. Echo.
  45. echo 制作UD三分区启动盘,无损数据区制作,请保持不间断电源!
  46. echo  继续请按任意键,退出请关闭窗口!&&pause

  47. Echo.
  48. echo   判断磁盘格式,fat16、fat32转换为ntfs,可无损制作;exfat格式不能无损制作,只能全新制作
  49. Echo.
  50. set drid=exfat
  51. find /c /i "fat16" .\bin\Usee.txt>nul&&set drid=fat16
  52. find /c /i "fat32" .\bin\Usee.txt>nul&&set drid=fat32
  53. find /c /i "ntfs"  .\bin\Usee.txt>nul&&set drid=ntfs
  54. find /c /i "exfat" .\bin\Usee.txt>nul&&set drid=exfat
  55. rem del .\bin\Usee.txt  /q
  56. echo 你的U盘格式为%drid%
  57. rem 强制卸载并修复磁盘错误,解决U盘占用,以增强无损制作的可靠性
  58. rem if not %drid%==exfat echo.&&echo 强制卸载并修复磁盘错误,以增强无损制作的可靠性&&chkdsk %udri%: /x /f
  59. echo.&&echo 强制修复U盘磁盘错误,以增强无损制作的可靠性&&chkdsk %udri%: /x /f
  60. if %drid%==exfat echo 你的U盘格式为exfat,只能格式化为ntfs,所有数据丢失,请备份数据!&&pause&& .\bin\partassist.exe /fmt:%udri% /fs:ntfs /label:data
  61. if %drid%==fat16  echo.&&echo 你的U盘格式为fat16,先无损转换为ntfs!&&CONVERT %udri%: /FS:NTFS /V /NoSecurity
  62. if %drid%==fat32  echo.&&echo 你的U盘格式为fat32,先无损转换为ntfs!&&CONVERT %udri%: /FS:NTFS /V /NoSecurity
  63. if %drid%==ntfs   echo.&&echo 你的U盘格式为ntfs,无损制作效果刚刚的!

  64. echo.
  65. echo 下面自动清空data区左端和右端分区恢复单一分区,以免二次制作时候受影响而导致制作失败
  66. rem 带*的为PE区而非数据区,智能判断出分区ID并清空
  67. set  padel=
  68. find /c /i "0        | *:" .\bin\Usee.txt>nul&&set padel=0
  69. find /c /i "1        | *:" .\bin\Usee.txt>nul&&set padel=1
  70. if  defined padel .\bin\partassist.exe /hd:%uid% /del:%padel%
  71. rem 强制把数据区左右两端的未分配空间扩展到数据区,恢复到单一分区,4k对齐
  72. .\bin\partassist.exe /hd:%uid% /resize:%udri% /extend:auto /align
  73. rem if %padel%==0  .\bin\partassist.exe /hd:%uid% /resize:%udri% /extend:right /align
  74. rem if %padel%==1  .\bin\partassist.exe /hd:%uid% /resize:%udri% /extend:left /align
  75. del .\bin\Usee.txt  /q

  76. Echo.
  77. echo 从U盘右边无损分出300M未分配空间用于EFI区
  78. .\bin\partassist.exe /resize:%udri% /reduce-right:300

  79. Echo.
  80. echo 创建并格式化右端的efi区,fat16,4k对齐,不激活,不设置隐藏属性,设置卷标为efi
  81. rem .\bin\partassist.exe /hd:%uid% /cre /pri /size:auto  /end /fs:fat16 /act /hide /align /label:EFI
  82. .\bin\partassist.exe /hd:%uid% /cre /pri /size:auto  /end /fs:fat16  /align /label:EFI

  83. Echo.
  84. echo  从U盘左边无损分出680M未分配空间用于UD区,4k对齐
  85. .\bin\partassist.exe /resize:%udri% /reduce-left:680 /align

  86. Echo.
  87. echo 把左边分出的680M空间非强格成UD区,指定UD主分区为8M,剩下的空间全部变为UD扩展空间,故UD扩展空间不用指定
  88. rem .\bin\fbinst.exe (hd%uid%)  format  --fat32 --zip --chs --primary 8M  --align
  89. echo on
  90. .\bin\fbinst.exe %udri%: format  --fat32  --primary 8M  --align
  91. @echo off
  92. rem 写入fba文件时候,自动建立了fb主菜单,以下语句关闭;文件fb.cfg可以删除
  93. rem .\bin\fbinst.exe %udri%: add-menu "fb.cfg" "fb.cfg

  94. rem U+低端隐藏盘和高端隐藏盘制作时,会出现无激活区情况,这里强制激活data区;0为data区,1为efi区
  95. echo.&&echo 设置数据区卷标为data,并强制激活data区&&label %udri%: data&&.\bin\partassist.exe /setact:0 /hd:%uid%
  96. Echo.
  97. echo 这个时候,三分区已经形成,UD区已经格式化成功,UD主引导也形成!

  98. Echo.
  99. echo 正在把efi.iso文件写入EFI区,请稍候……
  100. if exist %temp%\uefi\ rd "%temp%\uefi" /s /q
  101. .\bin\7z.exe x .\pediy\efi.iso -y -aos -o"%temp%\uefi"
  102. if exist %temp%\uefi\[boot] rd "%temp%\uefi\[boot]" /s /q
  103. .\bin\partassist.exe /hd:%uid% /whide:1 /src:%temp%\uefi
  104. rd "%temp%\uefi" /s /q

  105. Echo.
  106. echo 正在把ud.fba写入UD区,请稍候……
  107. rem .\bin\fbinst.exe %uid%: load .\pediy\ud.fba
  108. .\bin\fbinst.exe %udri%: load .\pediy\ud.fba

  109. rem 通过移除高端区的盘符来隐藏高端efi分区
  110. Echo.
  111. echo  隐藏高端efi分区
  112. .\bin\partassist.exe /hd:%uid% /setletter:1 /letter:*

  113. set exdata=  
  114. if not %drid%==exfat set exdata=检查一下你数据区数据还在不在吧,
  115. Echo.
  116. echo 已经成功把PE写入UD区和EFI区!%exdata%用佛大的qemu虚拟机测试一下bios/uefi双启吧。
  117. pause
  118. goto EX
  119. :EX
  120. @echo on
复制代码

同时,用这个分区助手命令行,可以大大简化全新制作UD三分区技术,制作UD三分区和U深三分区不再有什么核心秘密,全新制作思路如下:
1用fbinst命令行强格出一个UD区,并把fba文件写入。(U深区用ultraiso写入)
2用分区助手命令行把数据区格式为nfs
3用分区助手命令行无损UD区在U盘右端分出一个efi区,并格式为fat格式,不激活,保持隐藏,
4用最新版 的分区助手命令行,把efi.iso文件散开后直接写入efi区。
大功告成。
可以预见,外面的商业PE都会加上UD三分区来支持efi。不才的推广三分区使命告一段落。

分区助手命令行测试中存在的主要问题:
1写入隐藏区,不支持中文源文件夹中带空格,写入文件貌似不能用相对路径如.  ..。
2对exfat格式盘不能无损操作。
建议增加:清空指定编号的分区所有文件和文件夹功能。
增加清空UD区成普通未分配空间的功能。
3制作出来的efi区的efi启动兼容性差一些。

关于efi的fat格式说明:
应根据磁盘分区大小选用fat 16 和32格式,按微软的标准来做兼容性最好。
一般分区在2G以下,用fat16格式;分区在2G以上用fat32。这个应该有定论

U盘制作失败原因:
1.没有管理员权限,特别是win 8 8.1 10系统中
2.U盘占用,制作时候不能打开磁盘管理软件类,
程序设计时可以先删除U盘盘符再分配盘符,解决U盘占用。







无损制作UD三分区查看辅件.rar

2.13 MB, 下载次数: 1045, 下载积分: 无忧币 -2

无损制作UD三分区模块20150903抗战胜利特别版f.7z

2.47 MB, 下载次数: 439, 下载积分: 无忧币 -2

老版本命令行,ansi

无损制作UD三分区cmd模块U版20181104.7z

3.77 MB, 下载次数: 123, 下载积分: 无忧币 -2

优化对win10适配

无损制作UD三分区cmd模块U版20181225.7z

3.77 MB, 下载次数: 108, 下载积分: 无忧币 -2

完美win10无损制作

点评

已经退出业界的老马前来祝贺一下  发表于 2016-3-11 18:59

评分

参与人数 7无忧币 +31 收起 理由
sd3166 + 5 赞一个!
hero8000 + 5 赞一个!
weijun189 + 5 赞一个!
LVBABA + 5 赞一个!
悟空凌云 + 5 很给力!
haiwy + 1 赞一个!
jsgh1983 + 5 不加分对不起你!支持!

查看全部评分

发表于 2015-8-20 11:30:30 | 显示全部楼层
制作很成功,感谢剑大。
怎么不能传图片了。
回复

使用道具 举报

发表于 2015-8-20 06:09:18 | 显示全部楼层
        不错不错!!!
回复

使用道具 举报

发表于 2016-9-4 08:46:20 | 显示全部楼层
哪个兼容性好点
捕获.PNG

点评

重新改后,最新版的是先ui后UD方案速度比较快,可靠性强。  详情 回复 发表于 2018-10-3 21:02
回复

使用道具 举报

发表于 2015-8-20 13:29:31 | 显示全部楼层
脚本4重新制作有问题,脚本5正常了。
回复

使用道具 举报

发表于 2015-8-20 09:58:28 | 显示全部楼层
如果能做成GUI版本的就更好了。
回复

使用道具 举报

发表于 2015-8-20 09:21:01 | 显示全部楼层
小白喜欢图形化操作
回复

使用道具 举报

发表于 2015-8-20 09:02:37 | 显示全部楼层
进来学习一个,分享了
回复

使用道具 举报

发表于 2015-8-20 07:33:25 | 显示全部楼层
谢谢,需要学习下
回复

使用道具 举报

发表于 2015-8-22 16:58:30 | 显示全部楼层
编程实现干吗?又不是做软件卖。就是那么几步,能玩的绝对做得来,不能玩的直接U+完了,老机基本都进垃圾堆了。UD也没什么市场了,再者M大不是有UDM吗,右键选ISO写入U盘玩完。

磁盘的情况是很复杂的,弄不好出错丢数据就麻烦了,手工做保险些。

点评

一键制作还是有必要,特别是新机。  详情 回复 发表于 2016-8-13 21:57
回复

使用道具 举报

发表于 2015-8-19 12:47:13 | 显示全部楼层
前排围观……
回复

使用道具 举报

发表于 2015-8-19 13:26:49 | 显示全部楼层
来学习的。
回复

使用道具 举报

发表于 2015-8-19 13:50:51 | 显示全部楼层
支持下,就是不晓得咋个制作

点评

正在制作简明教程。很简单的。  详情 回复 发表于 2015-8-19 15:12
回复

使用道具 举报

发表于 2015-8-19 14:31:34 | 显示全部楼层
赞一个,期待楼主教程。
回复

使用道具 举报

 楼主| 发表于 2015-8-19 15:12:48 | 显示全部楼层
虫子樱桃 发表于 2015-8-19 13:50
支持下,就是不晓得咋个制作

正在制作简明教程。很简单的。
回复

使用道具 举报

发表于 2015-8-19 16:39:38 | 显示全部楼层
等待中.....................
回复

使用道具 举报

 楼主| 发表于 2015-8-20 01:58:40 | 显示全部楼层
U盘制作高手进来下,可以制作了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持本站|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2019-4-26 19:55

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表