|
安装批处理,与grub2文件夹 grub2-latest 放同一目录下。
-------------------------------------------------------------------------------------------------
@Echo Off&Setlocal Enabledelayedexpansion
echo.
echo.
echo 下面目标磁盘上的数据将被删除,不要移动设备上的任何磁盘。
rem 获得U盘的设备ID号
for /f %%i in ('wmic diskdrive where MediaType^="Removable Media" get DeviceID') do (
set /a m+=1
if !m!==2 set driveid=%%i)
rem 获取对应的磁盘ID号,并显示出来。
echo select disk %driveid:~-1,1% >dp.cfg
echo list disk >>dp.cfg
diskpart /s dp.cfg > disk_log.txt
del dp.cfg
echo ================================================= >> disk_log.txt
echo.
for /F "tokens=1* delims=:" %%i in ('findstr /i "* " disk_log.txt') do echo %%i
echo.
echo -------------------------------------------------------------------------
echo.
pause
echo.
echo 分区格式化中,稍后...
echo.
rem 删除U盘分区,并设为GPT磁盘。
echo select disk %driveid:~-1,1% >dp.cfg
echo list disk >>dp.cfg
echo clean >>dp.cfg
echo convert gpt >>dp.cfg
diskpart /s dp.cfg >> disk_log.txt
del dp.cfg
echo ================================================= >> disk_log.txt
rem 获取磁盘大小,单位兆。
for /f %%i in ('wmic diskdrive where MediaType^="Removable Media" get TotalSectors') do (
set /a n+=1
if !n!==2 set /a drivesz=%%i/2048)
rem 第一个分区大小,单位兆。第二个分区固定2000
set /a part1_sz=%drivesz%-2000-2
rem 第二个分区结束位置的大小,单位兆。
set /a part2_end=%drivesz%-2
rem 第三个分区开始的位置,单位兆。
set /a part3_fir=%drivesz%
rem 判断系统是否支持u盘多分区。
for /f "tokens=2* delims=[]" %%i in ('ver') do set v=%%i
for /f "tokens=2* delims= " %%i in ("%v%") do set vv=%%i
for /f "tokens=1,2,3,4 delims=." %%i in ("%vv%") do set verx=%%i%%j%%k%%l
if %verx% geq 1001703 (
rem 开始分区。
echo select disk %driveid:~-1,1% >dp.cfg
echo list disk >>dp.cfg
echo create partition primary size=%part1_sz% >>dp.cfg
echo select partition 1 >>dp.cfg
echo list partition >>dp.cfg
echo format fs=ntfs label=U_Yang quick nowait noerr >>dp.cfg
diskpart /s dp.cfg >> disk_log.txt
del dp.cfg
echo select disk %driveid:~-1,1% >dp.cfg
echo list disk >>dp.cfg
echo create partition primary size=2000 >>dp.cfg
echo select partition 2 >>dp.cfg
echo list partition >>dp.cfg
echo format fs=fat label=Efi_Grub2 quick nowait noerr >>dp.cfg
diskpart /s dp.cfg >> disk_log.txt
del dp.cfg
echo select disk %driveid:~-1,1% >dp.cfg
echo list disk >>dp.cfg
echo create partition primary size=2 id=21686148-6449-6E6F-744E-656564454649 >>dp.cfg
diskpart /s dp.cfg >> disk_log.txt
del dp.cfg
echo ================================================= >> disk_log.txt
) else (
echo.
echo 系统不支持 U 盘多分区,请使用windows 10 1703以上版本。
echo.
pause
exit
)
rem 取得盘符
ping 127.0.0.1 -n 3 >nul
for /f %%i in ('wmic logicaldisk where FileSystem^="FAT" get DeviceID') do (
set /a o+=1
if !o!==2 set diskid=%%i)
echo.
echo ---------------------------------------------------------------
echo 开始安装Grub2到第二分区 驱动器ID = %driveid%
echo.
echo 磁盘容量 = %drivesz% M 磁 盘ID = %diskid%
echo -----------------------------------------------------------------
pause
cls
echo.
echo Install BIOS Boot.....
grub2-latest\grub-install.exe --themes=no --boot-directory=%diskid%\ --target=i386-pc %driveid%
echo.
echo Install EFI_X86 Boot.....
grub2-latest\grub-install.exe --themes=no --boot-directory=%diskid%\ --efi-directory=%diskid% --removable --target=i386-efi %driveid%
echo.
echo Install EFI_X64 Boot.....
grub2-latest\grub-install.exe --themes=no --boot-directory=%diskid%\ --efi-directory=%diskid% --removable --target=x86_64-efi %driveid%
echo.
echo.
chcp 936
robocopy /s /b menuen %diskid%\
echo.
echo Install Ok !
echo.
echo --------------------------------------------------------------------
echo.
echo 请复制ios文件和配置文件到 U 盘第二分区对应目录。
echo.
echo ---------------------------------------------------------------------
pause
echo.
echo select disk %driveid:~-1,1% >dp.cfg
echo list disk >>dp.cfg
echo select partition 2 >>dp.cfg
echo list partition >>dp.cfg
echo gpt attributes=0xd000000000000001 >>dp.cfg
diskpart /s dp.cfg >> disk_log.txt
del dp.cfg
echo ================================================= >> disk_log.txt
echo select disk %driveid:~-1,1% >dp.cfg
echo list disk >>dp.cfg
echo select partition 3 >>dp.cfg
echo list partition >>dp.cfg
echo gpt attributes=0xd000000000000001 >>dp.cfg
echo set id=00000000-0000-0000-0000-000000000000 >>dp.cfg
diskpart /s dp.cfg >> disk_log.txt
del dp.cfg
echo.
echo ----------------------------------------------------------------------
echo.
echo 完成创建GPT格式启动U盘,用Booticex64修改第二分区GPT属性.
echo.
echo 实现 U 盘第二分区的 可读写 禁止访问
echo.
echo OEM 不自动分配盘符 隐藏 只读
echo.
echo ----------------------------------------------------------------------
pause
|
|