|
本帖最后由 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还是显得干净和安全些吧。
==哈哈,辛苦大家进来看,既然来了就共享一个批处理给大家,编了半个下午==
- @Echo Off
- REM RP为PE安装的目标盘
- IF "%1" NEQ "" GOTO BEGIN
- :HELP
- ECHO.
- ECHO 参数格式:
- ECHO 本程序 <内核完整路径及名称> [PE名称即在菜单中出现的条目如:我的Win1064_efi_PE,可以省略]
- ECHO.
- GOTO END
- :BEGIN
- if not exist %1 ECHO 内核文件%1不存在&GOTO HELP
- if not exist %~dp1\boot.sdi ECHO 内核文件%~dp1\boot.sdi不存在&GOTO HELP
- set RP=%~d1
- SET PECORE=%~pnx1
- SET sdipath=%~p1boot.sdi
- SET LDRITEM=%2
- if "%LDRITEM%"=="" SET LDRITEM=%~n1 EFI
- SET EFIBCDIR=EFI\Microsoft\Boot
- SET sdidevice=partition=%RP%
- SET pedevice=[%RP%]
- SET bcddir=C:\%EFIBCDIR%
- Echo.
- Echo ----------→开始处理NT6 EFI(C:\%EFIBCDIR%\bcd)启动菜单.....
- Echo.
- set EDBCD=bcdedit /store %bcddir%\BCD
- copy %bcddir%\bcd %bcddir%\BCD.BAK /y
- if errorlevel 1 set EDBCD=bcdedit
- if not exist %bcddir%\BCD.BAK %EDBCD% /export "%bcddir%\BCD.BAK" >nul
- %EDBCD% /create {ramdiskoptions} >nul
- %EDBCD% /set {ramdiskoptions} ramdisksdidevice %sdidevice% >nul
- %EDBCD% /set {ramdiskoptions} ramdisksdipath %sdipath% >nul
- rem 建立启动项
- set vid=
- %EDBCD% >%RP%\bcdtemp.txt
- type %RP%\bcdtemp.txt|find /I "%PECORE%" >nul &&Goto END
- %EDBCD% /create /d "%LDRITEM%" /application osloader >%RP%\bcdtemp.txt
- for,/f,"tokens=2 delims={",%%i,In (%RP%\bcdtemp.txt) Do set vida=%%i
- for,/f,"tokens=1 delims=}",%%i,In ("%vida%") Do set vid={%%i}
- echo %vid%>>%RP%\h3_vid.ini
- %EDBCD% /set %vid% device ramdisk=%pedevice%\BOOT\%PECORE%,{ramdiskoptions}
- %EDBCD% /set %vid% osdevice ramdisk=%pedevice%\BOOT\%PECORE%,{ramdiskoptions}
- %EDBCD% /set %vid% path \Windows\System32\boot\winload.efi
- %EDBCD% /set %vid% systemroot \Windows
- %EDBCD% /set %vid% locale zh-CN
- %EDBCD% /set %vid% testsigning Yes
- %EDBCD% /set %vid% detecthal Yes
- %EDBCD% /set %vid% winpe Yes
- %EDBCD% /displayorder %vid% /addlast >nul
- del /Q %RP%\bcdtemp.txt
- :END
复制代码 在PE下用,不用再编辑ESP区的BCD了,把内核文件拖到这上面就可以了,boot.sdi要与内核放一个地方。
|
|