기 타 지후빠님 Wimtools의 Add-Wim파일 수정
2025.06.08 05:37
기존에 잘 쓰시던 분들은 참고 안하셔도 될 것 같습니다.
제 경우는 Wim파일을 부팅 등록하고 Bootice로 보면 SDI의 경로가 \boot\boot.sdi로 지정되어서
경로에 sdi파일이 없어서 경로를 수정을 해줘야만 부팅이 됩니다.
C드라이브에 boot폴더가 없고 폴더가 없으니 파일도 없습니다.
SDI파일만 불러오면 되어서 보통 Windows\System32폴더 안에 boot.sdi가
있으니 이 경로를 등록하도록 한줄을 추가했습니다.
한 줄 추가해서 SDI의 경로를 지정한 위치로 설정되게 수정했습니다.
제 환경에서는 VMWare와 사용중인 컴퓨터는 따로 수정안해도 제대로 Wim부팅이 됩니다.
이 코드로 제대로 동작안하시면 저 SDI의 경로만 잘 조정해 주시면 될 듯 하네요.
아래는 코드와 파일 입니다.
----------------------------------------------------------------------------------------------------------
@prompt $h& color 1f& title WIM 부팅 추가& setlocal& set $b=bcdedit.exe
@%$b% >nul 2>&1 || (powershell start -verb runas '%0' '%1' & exit)
@(if {%1}=={} exit)& if {%2}=={} (set $w=%~1) else (set $w=%*)
@for %%a in ("%$w%") do set $d=%%~da& set "$n=%%~na"& set $x=%%~xa
@set $x=%$x:~1,3%& pushd %~dp0
@if /i "%$x%"=="wim" set $y1=ramdisk& set "$y2=,{ramdiskoptions}"& set $y3=winpe Yes
@if not defined $y1 echo.&echo WIM 파일이 아닙니다.&echo.&pause&exit/b
:: 코드 페이지 확인 (949 = EUC-KR)
for /f "tokens=2 delims=:" %%a in ('chcp') do if "%%a"==" 949" (set $t=1) else (set $t=3)
:: WIM 부팅 항목 생성
for /f "tokens=%$t%" %%a in ('%$b% /create /d "%$n%" /application osloader') do set $g=%%a
:: 현재 default 항목의 설정 읽기
for /f "skip=3 tokens=1*" %%a in ('%$b% /enum {default}') do set $%%a=%%b
:: WIM 내부 파일 나열 (선택적)
if /i %$x%==wim wimlib-imagex dir "%$w%" --path=%$path:2=2\boot%
:: WIM 부팅 항목 설정
%$b% /set %$g% device %$y1%=[%$d%]"%$w:~2%%$y2%
%$b% /set %$g% path %$path:2=2\boot%
%$b% /set %$g% locale %$locale%
%$b% /set %$g% inherit {bootloadersettings}
%$b% /set %$g% osdevice %$y1%=[%$d%]"%$w:~2%%$y2%
%$b% /set %$g% systemroot \Windows
%$b% /set %$g% detecthal Yes
%$b% /set %$g% %$y3%
:: ramdiskoptions에 boot.sdi 경로 설정 (중복되지 않도록)
%$b% /set {ramdiskoptions} ramdisksdipath \Windows\System32\boot.sdi
:: 부팅 항목 순서에 추가
%$b% /displayorder %$g% /addlast
@endlocal&echo.&pause&echo.
----------------------------------------------------------------------------------------------------------
저 빨간 줄이 추가한 코드이고 \Windows\System32\boot.sdi로 지정해서 sdi파일의 경로를 지정해 주었습니다.
이미 드라이브는 파악을 하는 듯 하니 C드라이브의 sdi의 경로만 지정해주면 될 듯 해서 이렇게 지정했습니다.
자동 C드라이브에서 sdi파일을 찾아서 경로를 지정해 주는 것도 추가가 가능하긴 하지만
현재 제 상황에선 잘 되므로 저 경로에 대부분 파일이 존재하니까 굳이 무겁게 수정할 필요가 없을 것 같아서
이 코드로 고정하게 되었습니다.
아마 부팅 파티션이 따로 있는 경우에 이 방법으로 해결이 되실 듯 합니다.
기존의 Add-Wim.cmd파일을 백업해 두신 후 교체해서 사용하시면 될 듯 합니다.
댓글 [6]
-
상발이 2025.06.08 06:32
-
cungice 2025.06.08 09:13
수고 많으셨습니다. 감사합니다.
-
수리수리 2025.06.08 10:40
감사합니다^^
-
머털 2025.06.08 12:33
수고하셨습니다
-
좋은데이 2025.06.08 16:56
좋은정보 감사합니다,
-
와로 2025.06.08 18:23
스크립트 경로에 wimlib-imagex.exe와 libwim-15.dll을 땡겨와야 온전하게 실행됩니다
PE가 있는 위치에 복사해놓고 PE를 마우스로 끌어 열어도되고
우클릭에 붙여서 그때그때 원하는 PE를 등록하거나 빼면 좀 더 편하겠죠.
부팅 등록후 BOOTICE의 쉬운 모드 BCD 편집창이 뜨게끔 수정하신 스크립트 끄트머리에 추가했습니다
여기에서 부팅 메뉴와 boot.sdi경로를 수정하거나 추가하면됩니다
- 시스템에 BCD구성이 안되어 있거나 PE상에선 BCD를 불러오지못해 오류가 나면서 BOOTICE가 뜨지 않습니다
혹,boot.sdi파일을 읽지못해 부팅시 에러가 나는분들은 boot.sdi파일을 특정 드라이브 루트에 집어넣고
BOOTICE에서 아래처럼 조정해보세요 (스샷은 g드라이브)
PE를 여러게 등록했을시 특정 PE의 sdi경로를 수정하면 ramdiskoptions이 모두 일괄적으로 적용이되니 참고하세요
- 정상적으로 부팅이 되면 ramdiskoptions의 boot.sdi경로 부분을
%$b% /set {ramdiskoptions} ramdisksdipath \boot.sdi로 수정.
추가로 바탕 화면에서 멀티부팅 메뉴를 이용해 즉시 해당 PE로 부팅할수 있습니다
모두 지*빠님 작품입니다!
실행하면 등록과 제거를 반복합니다
WinPE부팅등록_우클릭.7z그나저나 지*빠님이 먼일이 있으신건지 장기간 통 등장하시질 않아 웬지 공허하고 씁쓸하네요...ㅜ.ㅜ
수고하셨습니다.