无忧启动论坛

标题: 现有ESP太小无法安装PE怎么办 [打印本页]

作者: hhh333    时间: 2020-2-15 16:13
标题: 现有ESP太小无法安装PE怎么办
本帖最后由 hhh333 于 2020-2-17 11:53 编辑

如题,想把PE安装到硬盘,没找到好办法,只能扩容调整分区大小。哪个有更好的办法?
这个是有限制的:现有机器EFI启动ESP+GPT磁盘,ESP为100M大小FAT16,要求不改变EFI启动,不损伤GPT分区中的系统。EFI方式从ESP启动,也没办法启动其他分区的PE,SecureBoot打开情况下也不能换其他启动器。

我目前想到的办法是:
1、进PE后把ESP分区文件备份,
2、无损调整分区大小,把ESP分区调到约5G,改用FAT32格式化
3、恢复ESP中文件,将PE安装到这个区。

==确实是我弄错了===
是可以从ESP启动,PE放系统分区的,但要编辑ESP中的BCD指定文件在哪个分区,而且也必须在指定boot.sdi放在哪个分区,前面说不行,可能是忘记定义这个文件放哪个区了,默认是启动区,如果启动区没有这个文件就不能启动。
但总之放ESP还是显得干净和安全些吧。


==哈哈,辛苦大家进来看,既然来了就共享一个批处理给大家,编了半个下午==
  1. @Echo Off
  2. REM RP为PE安装的目标盘
  3. IF "%1" NEQ "" GOTO BEGIN

  4. :HELP
  5. ECHO.
  6. ECHO 参数格式:
  7. ECHO     本程序 <内核完整路径及名称> [PE名称即在菜单中出现的条目如:我的Win1064_efi_PE,可以省略]
  8. ECHO.
  9. GOTO END

  10. :BEGIN
  11. if not exist %1 ECHO 内核文件%1不存在&GOTO HELP
  12. if not exist %~dp1\boot.sdi ECHO 内核文件%~dp1\boot.sdi不存在&GOTO HELP
  13. set RP=%~d1
  14. SET PECORE=%~pnx1
  15. SET sdipath=%~p1boot.sdi
  16. SET LDRITEM=%2
  17. if "%LDRITEM%"=="" SET LDRITEM=%~n1 EFI

  18. SET EFIBCDIR=EFI\Microsoft\Boot
  19. SET sdidevice=partition=%RP%
  20. SET pedevice=[%RP%]
  21. SET bcddir=C:\%EFIBCDIR%

  22. Echo.
  23. Echo ----------→开始处理NT6 EFI(C:\%EFIBCDIR%\bcd)启动菜单.....
  24. Echo.
  25. set EDBCD=bcdedit /store %bcddir%\BCD
  26. copy %bcddir%\bcd %bcddir%\BCD.BAK /y
  27. if errorlevel 1 set EDBCD=bcdedit
  28. if not exist %bcddir%\BCD.BAK %EDBCD% /export "%bcddir%\BCD.BAK" >nul
  29. %EDBCD% /create {ramdiskoptions} >nul
  30. %EDBCD% /set {ramdiskoptions} ramdisksdidevice %sdidevice% >nul
  31. %EDBCD% /set {ramdiskoptions} ramdisksdipath %sdipath% >nul

  32. rem 建立启动项
  33. set vid=
  34. %EDBCD% >%RP%\bcdtemp.txt
  35. type %RP%\bcdtemp.txt|find /I "%PECORE%" >nul &&Goto END
  36. %EDBCD% /create /d "%LDRITEM%" /application osloader >%RP%\bcdtemp.txt
  37. for,/f,"tokens=2 delims={",%%i,In (%RP%\bcdtemp.txt) Do set vida=%%i
  38. for,/f,"tokens=1 delims=}",%%i,In ("%vida%") Do set vid={%%i}
  39. echo %vid%>>%RP%\h3_vid.ini
  40. %EDBCD% /set %vid% device ramdisk=%pedevice%\BOOT\%PECORE%,{ramdiskoptions}
  41. %EDBCD% /set %vid% osdevice ramdisk=%pedevice%\BOOT\%PECORE%,{ramdiskoptions}
  42. %EDBCD% /set %vid% path \Windows\System32\boot\winload.efi
  43. %EDBCD% /set %vid% systemroot \Windows
  44. %EDBCD% /set %vid% locale zh-CN
  45. %EDBCD% /set %vid% testsigning Yes
  46. %EDBCD% /set %vid% detecthal Yes
  47. %EDBCD% /set %vid% winpe Yes
  48. %EDBCD% /displayorder %vid% /addlast >nul
  49. del /Q %RP%\bcdtemp.txt

  50. :END
复制代码
在PE下用,不用再编辑ESP区的BCD了,把内核文件拖到这上面就可以了,boot.sdi要与内核放一个地方。



作者: maghreb    时间: 2020-2-15 16:22
同意
作者: lilin1986    时间: 2020-2-15 16:23
可以啊,我的esp分区就300兆,正好塞下一个微pe进去,剩下十几还是二十几兆空间
作者: sairen139    时间: 2020-2-15 16:25
pe可以放到别的分区里一样使用
作者: 2012qnmd    时间: 2020-2-15 16:30
没有必要放ESP分区,只要编辑bcd 添加WIM到系统分区就可以了。
平板电脑就是这样弄的
作者: 我是小青蛙    时间: 2020-2-15 16:30
我的重新划分一个分区来放用微软那种方法划个winre分区
作者: 我是小青蛙    时间: 2020-2-15 16:35
如果电脑里本身有那种隐藏的分区可以取代里面的winre.wim注册成自己的PE
作者: 2011cwj6958    时间: 2020-2-15 17:02
本帖最后由 2011cwj6958 于 2020-2-15 17:17 编辑

pe放到非系统分区是最方便的,PE解压到任意非系统分区,BCD添加WIM启动项.
作者: 2011cwj6958    时间: 2020-2-15 17:14
本帖最后由 2011cwj6958 于 2020-2-15 17:16 编辑

EFI方式从ESP启动,可以启动其他分区的PE,ESP分区boot目录下需要一个boot.sdi文件
作者: yaojy    时间: 2020-2-15 17:22
有这样的讲法?那么,微软自己的WinRE为什么不在ESP分区?
作者: 2010sya    时间: 2020-2-15 17:37
调整分区倒是可以,有一定风险!
还是放到别的分区吧
作者: 青青草    时间: 2020-2-15 17:49
调整ESP分区大小也可以,重新划分一个分区也可以,随心所欲。
作者: 朱玛12345678    时间: 2020-2-15 18:43
其实只要把ESP的容量调大点就可以了,我就直接分了2G空间都能装进好几个PE了。

作者: liuzhaoyzz    时间: 2020-2-15 18:43
本帖最后由 liuzhaoyzz 于 2020-2-15 18:46 编辑
2012qnmd 发表于 2020-2-15 16:30
没有必要放ESP分区,只要编辑bcd 添加WIM到系统分区就可以了。
平板电脑就是这样弄的


  PE确实没必要放在ESP分区,放在任何一个分区即可,只要BCD中选择正确的盘符路径即可啊!当然boot.sdi也要指明盘符路径。
调整分区不太方便,自己的电脑可以折腾,别人的电脑没必要啊。
你的PE有配套的安装器吧?不是能够安装到非ESP分区的?     

作者: dmgy    时间: 2020-2-15 18:45
PE放ESP分区或任何一个FAT分区均可。
作者: fuldho    时间: 2020-2-15 19:34
EFI方式启动,系统盘也会有BOOT目录(无用),可以把wim,sdi放在里面,非系统盘容易误删不建议。
作者: liujun2000    时间: 2020-2-15 19:43
2011cwj6958 发表于 2020-2-15 17:14
EFI方式从ESP启动,可以启动其他分区的PE,ESP分区boot目录下需要一个boot.sdi文件

就是这样的
作者: 2012andyle113    时间: 2020-2-15 19:43
还以为真的有不行的了
扩容,或者放boot.sdi直接指定应该都没有问题
作者: 2012andyle113    时间: 2020-2-15 19:43
本帖最后由 2012andyle113 于 2020-2-15 19:46 编辑

不过,一般喜欢传统模式启动
作者: 易广白    时间: 2020-2-15 20:28
俺的ESP分区十几g、几十g,都是正常的。
pe放在ESP分区也是有一些好处的,不易被误删,bcd菜单也直接方便,更简单稳定。

作者: ynkylwj    时间: 2020-2-15 20:59
我的PE就放在ESP,这应该是最好的位置,放在其他分区有其他数据不方便磁盘维护和资料管理,ESP只有一个EFI文件夹,很方便管理,容量不足可以用很多工具无损调整大小,即使把ESP格了,也很容易用bcdboot或其他工具秒恢复。
作者: 2010wxky6688    时间: 2020-2-15 23:32
PE确实没必要放在ESP分区,放在任何一个分区即可。不过自己有时喜欢瞎折腾, 为了防止PE文件受病毒影响或者被不慎删除,还真就调整分区大小,把论坛大神的PE放进ESP分区了。
作者: 9001    时间: 2020-2-16 01:10
ESP确实可以重新分区调整的,我就形成了大约4G,足够装3-4个像样的PE了
作者: 窄口牛    时间: 2020-2-16 08:52
本帖最后由 窄口牛 于 2020-2-16 08:53 编辑

这么多人说话,今天才发现是大师提问的,好奇怪的问题(对于提问者)。那我也得凑个热闹了。
作者: yigeren    时间: 2020-2-16 11:58
简单明了,PE系统就一个boot文件夹

UEFI-BCD.png (43.41 KB, 下载次数: 49)

ESP-PE

ESP-PE

作者: 窄口牛    时间: 2020-2-16 12:24
他还用你教,只是一下蒙住忘了而已,反正我不相信。
作者: hhh333    时间: 2020-2-16 12:27
yigeren 发表于 2020-2-16 11:58
简单明了,PE系统就一个boot文件夹

你这个不放ESP就会找不到。
作者: hhh333    时间: 2020-2-16 12:32
窄口牛 发表于 2020-2-16 12:24
他还用你教,只是一下蒙住忘了而已,反正我不相信。

新冠把人都搞瞢了。不过还可深挖一下:在PE下部署PE到非启动分区,如何写启动分区BCD的批处理脚本?
作者: yigeren    时间: 2020-2-16 13:54
本帖最后由 yigeren 于 2020-2-16 13:58 编辑
hhh333 发表于 2020-2-16 12:27
你这个不放ESP就会找不到。

目的就是要存放ESP里面,你标题不也是要安装到ESP

作者: 窄口牛    时间: 2020-2-16 14:22
不要写winload.efi,就可以不管是efi还是legacy启动,只需要给bcd知道wim的位置和sdi的位置就可以了,你用pecmd写写应该很容易吧,pe玩那么遛。
作者: 西门庆歌    时间: 2020-2-16 16:15
这个。。。
给别人用,,,网上的硬盘版PE,一般放在非ESP分区,空间敞亮,不必担心用户原有ESP分区容量大小。

自己用的话,调节分区大小,结合bootice,, 放哪里都可以~自行折腾。

作者: hhh333    时间: 2020-2-16 21:24
窄口牛 发表于 2020-2-16 14:22
不要写winload.efi,就可以不管是efi还是legacy启动,只需要给bcd知道wim的位置和sdi的位置就可以了,你用p ...

写好了,放在首页,把我累的。
作者: wsan5420    时间: 2020-4-22 12:34
辛苦了!感谢分享!有空试试看
作者: 进士小站    时间: 2021-7-4 09:21
把PE放到ESP分区应该更安全吧
作者: 2012fengxi    时间: 2021-7-4 09:35
为啥要放到esp分区?esp分区设16M都够用了




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