Advertisement
slyfox1186

repair-missing-efi-boot-partition.bat

Nov 21st, 2022 (edited)
1,180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 3.50 KB | None | 0 0
  1. @ECHO OFF
  2. SETLOCAL ENABLEEXTENSIONS
  3. COLOR 0A
  4. TITLE CREATE AN EFI PARTITION
  5.  
  6. :----------------------------------------------------------------------------------------------
  7.  
  8. REM THIS SCRIPT WILL WALK YOU THROUGH CREATING A NEW EFI
  9. REM PARTITION BY SHRINKING THE DISK SIZE (RECOMMENDED IS 300)
  10. REM AND CREATING A NEW EFI BOOT PARTITION. AFTER CREATING
  11. REM THE SCRIPT WILL RUN BCDBOOT.EXE TO TRANSFER THE WINDOWS
  12. REM FILES NEEDED TO THE NEW EFI PARTITION.
  13.  
  14. REM IMPORTANT!
  15. USE THIS AT YOUR OWN RISK AS I ASSUME NO LIABILITY BEYOND MY OWN EXPERIENCES.
  16.  
  17. :----------------------------------------------------------------------------------------------
  18.  
  19. REM OPEN CMD WINDOW MAXIMIZED
  20. IF NOT "%1"=="MAX" START /MAX CMD /D /C %0 MAX & GOTO :EOF
  21.  
  22. :---------------------------------------------------------------------------------------------------------
  23.  
  24. REM DELETE ANY LEFTOVER FILES FROM PREVIOUS RUNS
  25. IF EXIST "%TMP%\diskpart.txt" DEL /Q "%TMP%\diskpart.txt"
  26.  
  27. :---------------------------------------------------------------------------------------------------------
  28.  
  29. :START_OVER1
  30. REM CREATE FILE WITH DISK NUMBERED IN A LIST
  31. ECHO >"%TMP%\diskpart.txt" lis dis
  32. CLS
  33. REM ECHO THE NEWLY CREATED FILES CONTENTS INTO TERMINAL
  34. "%WINDIR%\System32\diskpart.exe" /S "%TMP%\diskpart.txt"
  35. ECHO=
  36. SET /P DISK="Enter the disk number: "
  37. CLS
  38. IF "%DISK%" NEQ "%DISK%" GOTO START_OVER1
  39.  
  40. :---------------------------------------------------------------------------------------------------------
  41.  
  42. REM CREATES A TEMPORARY FILE THAT DISKPART CAN READ
  43. SET /P "PTYPE=Please enter either GPT or MBR: "
  44. ECHO=
  45. SET /P "FSTYPE=Enter FS type (example: FAT32, NTFS, EXFAT): "
  46. ECHO=
  47. SET /P "LABEL=Enter label: "
  48. ECHO=
  49. SET /P "LETTER=Enter Letter: "
  50. CLS
  51.  
  52. :---------------------------------------------------------------------------------------------------------
  53.  
  54. ECHO Please review your choices: & ECHO=
  55. ECHO Partition    = %PTYPE%
  56. ECHO Drive Label  = %LABEL%
  57. ECHO Drive Letter = %LETTER% & ECHO=
  58.  
  59. :---------------------------------------------------------------------------------------------------------
  60.  
  61. :START_OVER2
  62. REM ADD PARTITION INFO TO DISKPART SCRIPT
  63. CLS
  64. (
  65. ECHO SELECT DISK %DISK%
  66. ECHO LIST PARTITION
  67. )>>"%TMP%\diskpart.txt"
  68.  
  69. REM RUN DISKPART AGAIN TO READ THE NEW FILE CONTENTS
  70. "%WINDIR%\System32\diskpart.exe" /S "%TMP%\diskpart.txt"
  71. ECHO=
  72. SET /P "PART=Enter the partition number: "
  73. IF "%PART%" NEQ "%PART%" GOTO START_OVER2
  74. ECHO=
  75. REM ENTER THE EFI PARTITION SIZE
  76. SET /P "FSIZE=Enter the EFI partition size: "
  77. IF "%FSIZE%" NEQ "%FSIZE%" GOTO START_OVER2
  78. CLS
  79.  
  80. REM ADD THE FINAL INFO TO THE DISKPART SCRIPT TO SHRINK AND FORMAT THE NEW EFI PARTITION
  81. (
  82. ECHO SELECT PARTITION "%PART%"
  83. ECHO SHRINK DESIRED="%FSIZE%"
  84. ECHO CREATE PARTITION EFI SIZE="%FSIZE%"
  85. ECHO FORMAT FS="FAT32" LABEL="%LABEL%" QUICK
  86. ECHO ASSIGN LETTER="%LETTER%"
  87. ECHO EXIT
  88. )>>"%TMP%\diskpart.txt"
  89.  
  90. :---------------------------------------------------------------------------------------------------------
  91.  
  92. REM EXECUTE DISKPART SCRIPT TO MAKE THE CHANGES
  93. "%WINDIR%\System32\diskpart.exe" /S "%TMP%\diskpart.txt"
  94.  
  95. :---------------------------------------------------------------------------------------------------------
  96.  
  97. REM RUN BCDBOOT TO ASSIGN THE WINDOWS FILES TO THE NEWLY CREATED EFI PARTITION
  98. "C:\Windows\System32\bcdboot.exe" C:\Windows /s %LETTER%:
  99.  
  100. :---------------------------------------------------------------------------------------------------------
  101.  
  102. REM OPEN WITH NOTEPAD
  103. REM START "" /MAX "%WINDIR%\notepad.exe" "%TMP%\diskpart.txt"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement