无忧启动论坛

标题: ESP显示及隐藏脚本(diskpart) [打印本页]

作者: hilsonma    时间: 2019-12-18 12:52
标题: ESP显示及隐藏脚本(diskpart)
本帖最后由 hilsonma 于 2019-12-21 15:27 编辑
  1. @echo off
  2. title ESP显示及隐藏
  3. FOR /F "tokens=* delims=" %%i in ('echo lis vol^|diskpart^|find "卷"^|find /v "###"') do set "str=%%i" & call :find
  4. cls
  5. if %rm%a==a echo 全部分区已显示,无需使用本脚本,按任意键退出&&pause>nul&&exit
  6. echo.
  7. echo 已显示ESP,请不要关闭本窗口!
  8. echo.
  9. echo 现在你可以对ESP进行操作...
  10. echo.
  11. echo 完成对ESP的操作后,回本窗口按任意键即恢复ESP隐藏并自动退出。
  12. pause>nul
  13. goto:hide

  14. :find
  15. set v=%str:~8,1%
  16. set l=%str:~14,1%
  17. if "%l%"==" " goto:show
  18. goto:eof

  19. :show
  20. set rm=%v%_%rm%
  21. cmd /c "echo sel vol %v% & echo assign"|diskpart
  22. goto:eof

  23. :hide
  24. if %rm%a==a goto:eof
  25. FOR /F "tokens=1* delims=_" %%i in ('echo %rm%') do set "v=%%i" & set "rm=%%j" & call :dohide
  26. goto:hide

  27. :dohide
  28. cmd /c "echo sel vol=%v% & echo remove"|diskpart
  29. goto:eof
复制代码


一键脚本
ESP显示及隐藏.7z (602 Bytes, 下载次数: 642)

拖放脚本,可将文件夹拖放到脚本上,按提示输入分区编号,文件夹里的目录及文件会自动复制到ESP.
下载包里的文件夹是EFI启动文件示例,不是必须的,可删除
ESP显示及隐藏拖放版.7z (719.47 KB, 下载次数: 601)


作者: dmgy    时间: 2019-12-18 14:22
常用ImDisk,试试这个。谢谢楼主分享。
作者: datbik189    时间: 2019-12-18 15:31
谢谢分享, imdisk好像也可以加载ESP分区.
作者: 鲧尧    时间: 2019-12-18 16:30
谢谢分享
作者: rrscsm2000    时间: 2019-12-18 18:54
谢谢!试了一下的确能显,好!
作者: sghihor    时间: 2019-12-20 14:53
感谢大大分享~好用
作者: wdtx    时间: 2019-12-28 02:00
谢谢分享,省了不少步骤
作者: sairen139    时间: 2020-6-7 17:39
一个相当好的方法给隐藏的EFI分区建立一个链接目录在没有打开EFI分区的情况下直接访问
不显示隐藏EFI分区下直接访问的设置方法!

命令如下:

mklink /j 隐藏分区 \\?\GLOBALROOT\device\harddisk0\partition1\

其中partition后面的数字可以通过diskpart查看
生成的隐藏分区这个类似快捷方式可以随便复制到别的文件夹里并且可以随意改名!这样一来可以很方便的打开隐藏分区!

另外需要注意的是:
如果在Ramos的系统盘直接生成的类快捷方式会具有和ramos系统分区一样的特性,即无论在里面做了什么修改重启后都不会保存。鉴于这种情况,最好先转换到别的非系统盘分区,比如在cmd窗口先输入D:
然后用本文的方法在D盘根目录建立一个隐藏分区的类快捷方式,然后双击该快捷方式打开efi分区(或者直接在EFI的Boot文件夹),这样进行的修改重启后会生效。这么做的好处可以替换bootx64.efi来重启后启动D盘system volume information这个系统级文件夹下的巨型pe!
作者: hilsonma    时间: 2020-6-7 18:46
sairen139 发表于 2020-6-7 17:39
一个相当好的方法给隐藏的EFI分区建立一个链接目录在没有打开EFI分区的情况下直接访问
不显示隐藏EFI分区 ...

我的做法是尽量不动EFI区(ESP)。
只有新部署或重新部署的时候才会改动ESP,完成部署后基本就不会改动了。

我用的是grub2引导,常用的引导做到主菜单,偶尔用到的或需要测试的引导就放一个配置文件到diy文件夹,这样会自动生成子菜单。

Ramos我还没有用过,我现使用vhd系统。我的主引导第一菜单就是引导\vhd\win.vhdx ,如果不存就引导\Windows\Boot\EFI\bootmgfw.efi ,如果同文件夹下不存在BCD就再引导\EFI\Microsoft\Boot\bootmgf.efi

第二菜单是引导\pe.wim ,第三菜单是diy自动菜单,这样基本覆盖了我用到的引导。

如果想进上面没有包含的系统,只要在diy文件夹中放一个配置文件,就可以当成子菜单进入了,这样就避免了ESP的临时改动
作者: sairen139    时间: 2020-6-7 19:00
本帖最后由 sairen139 于 2020-6-7 19:09 编辑
hilsonma 发表于 2020-6-7 18:46
我的做法是尽量不动EFI区(ESP)。
只有新部署或重新部署的时候才会改动ESP,完成部署后基本就不会改动 ...

明白了,我的需求稍稍有点不同。我不喜欢在开机的时候选择进pe还是进ramos内存系统。因为我觉得最好是一门心思进系统而不用被选择菜单耽搁时间。由于我本身使用ramos系统基本的维护也都在ramos的当前完成,pe对我的作用只有安装系统和手工制作ramos内存系统时才会重启进入pe使用次数相对很少很少!比如说我在手工制作系统时需要把某个wim格式的文件以一个files.txt为标准提取到某个系统盘里(等同于安装系统),这样重启后就是一个马上进入桌面可以直接使用的新的精简系统!这个过程用到了wimlib.exe的一句命令行如下:


极限精简的LTSB2016X64位系统的文件列表files.txt————前后折腾一个月的极限精简成果
本列表清单基于LTSB2016的64位系统进行手工精简,我在苹果macbook电脑上搞了一个月左右,终于精简出了一个自用的最精简的正常可以使用的系统的文件列表file.txt如下:
附上我使用的几张截图,32位绿色Office2010办公软件和firefox等浏览器及qq等软件都能用,适合家用!原本数字权利激活过的该系统格式化后重整也能自动激活!特别适合安装PrimoRamdisk后制作超级小的Ramos系统!

Ps:我个人最简便的使用该files.txt的方法【使用方法请看最后一张图】
直接在其它系统里或者pe里使用wimlib.exe这个很小的第三方工具配合一个bat文件以上面的Files.txt为抽取条件直接从WiM包里解压文件(适用于LTSB2016X64的wim包)就是极限精简的系统了!!!!!!
%~dp0\wimlib extract Win10LTSB2016x64Wzzok(1216)Jihuo.wim 1  @files.txt --dest-dir=g:\ --nullglob
pause



作者: sairen139    时间: 2020-6-7 19:03
sairen139 发表于 2020-6-7 19:00
明白了,我的需求稍稍有点不同。我不喜欢在开机的时候选择进pe还是进ramos内存系统。因为我觉得最好是一 ...

wimlib.exe运行这句命令行以files文本文件为标准抽取文件形成全新的精简系统的运行截图如下:

D95237D2-6FBF-4317-85CE-12A03D9C9820.jpeg (857.66 KB, 下载次数: 233)

D95237D2-6FBF-4317-85CE-12A03D9C9820.jpeg

作者: myzcomeon    时间: 2020-6-9 14:45

谢谢了
作者: macowen    时间: 2020-8-20 11:41
谢谢分享!!
作者: dddlywb3    时间: 2020-10-25 21:03
楼主 很厉害, 值得我等学习
作者: dddlywb3    时间: 2020-10-25 21:03
楼主 很厉害,值得我等学习
作者: lusir401    时间: 2021-3-26 23:13
这个批处理确实可以在WIN7中显示ESP分区(其它分区也会显示),关闭窗口就自动隐藏,但在WIN10下无效;我现在的需求是只要显示ESP分区,其它分区不要显示,有没有办法做到,如有,怎么做?
作者: nttwqz    时间: 2021-3-26 23:40
lusir401 发表于 2021-3-26 23:13
这个批处理确实可以在WIN7中显示ESP分区(其它分区也会显示),关闭窗口就自动隐藏,但在WIN10下无效;我现 ...

mountvol z: /s

作者: 2013mqqdg    时间: 2021-3-27 11:26
这个脚本方便
作者: Eiry1000    时间: 2022-1-28 22:48
支持支持~~
作者: anythingsky    时间: 2022-2-9 10:03
这是干什么 干什么 的 在PE下 运行能直接 显示ESP分区 吗
作者: 创新科技2015    时间: 2022-2-14 11:47

谢谢分享
作者: wlqwoai    时间: 2022-3-23 22:18
感谢分享

作者: Myptour    时间: 2022-5-14 21:14
ESP显示及隐藏
作者: zxwei    时间: 2022-5-16 09:15
不错 感谢分享。 。
作者: 2013Varg    时间: 2022-5-16 15:49
谢谢分享,我之前一直用的showdrive
作者: cxincn    时间: 2022-5-17 08:22
谢谢分享
作者: 481416322    时间: 2022-5-17 08:34
谢谢分享
作者: cuicongyuan    时间: 2022-5-17 08:46
本帖最后由 cuicongyuan 于 2022-5-17 08:52 编辑

显示隐藏的ESP分区后,可以再把显示的ESP分区隐藏吗?——测试可以啊!这个好!

谢谢老大!

作者: hilsonma    时间: 2022-5-17 08:57
cuicongyuan 发表于 2022-5-17 08:46
显示隐藏的ESP分区后,可以再把显示的ESP分区隐藏吗?——测试可以啊!这个好!

谢谢老大!

执行批处理后,保留窗口不动,去执行对ESP的操作,完成对ESP的操作后再回此批处理的窗口,按任意键即恢复隐藏并退出批处理。
作者: cuicongyuan    时间: 2022-5-17 09:32
hilsonma 发表于 2022-5-17 08:57
执行批处理后,保留窗口不动,去执行对ESP的操作,完成对ESP的操作后再回此批处理的窗口,按任意键即恢复 ...

谢谢老大热心恢复!
作者: rbwrbw    时间: 2023-10-9 17:42
good!!!
作者: rbwrbw    时间: 2023-10-9 17:43
有没有不破坏硬盘数据,将普通fat32分区变成esp分区
作者: rbwrbw    时间: 2023-10-9 17:44
一个guid格式的硬盘能有几个 esp分区??
作者: hilsonma    时间: 2023-10-10 08:53
rbwrbw 发表于 2023-10-9 17:43
有没有不破坏硬盘数据,将普通fat32分区变成esp分区

fat32分区本身就是可以作为esp分区,不需要特别改变及破坏数据
关键是能被主板uefi固件识别到就可以了

如果是要改分区识别符,也是可以的。
但要变成标准的gpt格式,应该就不可以了。这方面我没有需求没试过,所以不能提供准确建议。
我要将一个mbr盘改成gpt盘,通常都是腾出空间预留给esp/msr,然后再转换格式
作者: hilsonma    时间: 2023-10-10 09:00
rbwrbw 发表于 2023-10-9 17:44
一个guid格式的硬盘能有几个 esp分区??

标准的就一个,非标应该可以多个吧,具体有没有限制我不清楚,没有这样的需求也就没有实践过。

多个esp也就是在启动时可以按快捷键进启动设备选单进行选择吧,我通常是使用多启动软件实现,很少使用启动设备选单(临时进u盘才用或者测试多硬盘用)
作者: rbwrbw    时间: 2023-10-10 14:27
hilsonma 发表于 2023-10-10 09:00
标准的就一个,非标应该可以多个吧,具体有没有限制我不清楚,没有这样的需求也就没有实践过。

多个es ...

good!!你一般用什么多启动软件!!
作者: rbwrbw    时间: 2023-10-10 14:28
hilsonma 发表于 2023-10-10 08:53
fat32分区本身就是可以作为esp分区,不需要特别改变及破坏数据
关键是能被主板uefi固件识别到就可以了
...

谢谢了
作者: hilsonma    时间: 2023-10-10 18:31
rbwrbw 发表于 2023-10-10 14:27
good!!你一般用什么多启动软件!!

我一般用wintoflash版的grub2
grub4dos for uefi 也比较成熟了吧,也可以考虑一下,不过我本人还没有采用

传统启动下我多数用grub4dos.
作者: shinykers    时间: 2023-10-13 19:02
nttwqz 发表于 2021-3-26 23:40
mountvol z: /s

这个好用~
作者: yyz2191958    时间: 2023-10-18 10:26
谢谢楼主分享
作者: 610644034    时间: 2023-10-23 18:44
rbwrbw 发表于 2023-10-9 17:43
有没有不破坏硬盘数据,将普通fat32分区变成esp分区

对于mbr盘,更改分区标识为esp分区就可以了,其实只是更改分区表类型为0xef 。
对于gpt盘,只要创建一个esp分区就可以了!

bat 大概是这样的:(慎重使用,这里没有提供改回分区标识的代码)

call :DiskPart设置分区ID "!m_当前焦点磁盘号!" "!m_当前焦点分区号!" "set id=EF"
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:DiskPart设置分区ID
:DiskPart设置分区属性
:DiskPart设置分区活动状态
rem :DiskPart设置分区活动状态 "In" "In" "In"
(
   echo Select Disk %~1
   echo Select Part %~2
   echo %~3
)|diskpart
goto :eof






欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3