스크린 샷

제목 : PE 1회부팅 cmd - PE에서 레지 하이브는 한번만 하도록 하였습니다

왕초보

 

종료하였습니다

 

오토잇으로 만든 PE 1회 부팅 프로그램의 경우 다양한 경우의 수를 생각해서 프로그램이 wim 안에 있어도 PE 1회 부팅이 되도록

구성이 되어 있습니다

 

오토잇으로 된 프로그램은 우클릭 메뉴에서만 작동을 합니다..PE 1회부팅 cmd 버전은 우클릭 메뉴와 끌어 당기기 2가지 다 작동을

하고 있어서 PE 1회부팅 cmd 버전의 경우 Wim안에 들어가 있는 경우를 고려하지 않았습니다

이렇게 Wim안에 넣고 하는것을 생각지 않게 되면서 PE 1회부팅 cmd에서 boot.sdi 파일 위치를 cmd와 같이 두는 방식으로만 진행

을 하였습니다

실제 Wim안에 cmd 파일을 넣고 사용하시는 분이 있으신데 이 부분을 빼놓고 작업을 해서 DengJang과 회원님들께 오해를 하실수

있도록 한 부분들이 있습니다

다양하게 사용할수 있는데 그런 부분들을 생각하지 못하였습니다..오해를 하신분들께 죄송합니다

 

 

PE 1회부팅 cmd 구버전에서는 PE에서 레지 하이브 할때 윈도우 파티션을 찾기 위해서 BCD에서 정보를 추출을 하였습니다

이 과정이 조금은 복잡하고 PE에서 PE로 부팅할때마다 레지 하이브하는것이 비효율적이어서 업데이트를 하였습니다

Wim안에 PE 1회부팅 cmd 파일을 넣고 사용하시는 분들도 있으셔셔 이 부분도 소스도 추가를 하였습니다

 

이번 업데이트에서 제일 중요한 부분이 C:\Windows 폴더에 필요한 파일 3개가 있는 부분입니다

DengJang님 작품에서 이렇게 활용을 하시는것에 힌트를 얻어서 윈도우 파티션 찾는것을 BCD가 아니라 C:\Windows 폴더에 있는

파일을 테그 삼아서 찾습니다... C:\Windows에 파일이 있어서 레지 하이브도 간단히 한번만 할수가 있습니다

 

DengJang님 감사합니다. 덕분에 좋은 아이디어를 얻을수 있었습니다

 

PE 1회부팅 cmd v6.0 간단한 설명입니다

 

가. 윈도우에서 사용 방법입니다

  1. C:\Windows 폴더에 boot.sdi, PEBootCmd.cmd,  PEBootCmd.exe 3개 파일이 있어야 합니다

     여기 파일들이 기준이 되기 때문에 제일 중요한 부분입니다

     여기에서 우클릭에 등록을 하시면 됩니다

  2. PE와 공용으로 사용하기위해서 PE 프로그램 폴더에 추가로 두시는 경우 이 폴더에서는 끌어 당기기로 사용을 하시면 됩니다

     이 폴더에 있는것을 우클릭에 등록을 하셔도 됩니다

     왼도우에서는 어떤것을 우클릭에 등록을 하셔도 상관이 없습니다

 

나. PE에서 사용법

   1. 저처럼 PE용 프로그램을 wim 밖에 두고 사용하시는 경우 PE 부팅시에 자동 등록을 해서 사용을 하시거나 PE에서 끌어 당기

      기로 사용을 하시면 됩니다

   2. 프로그램을 Wim안에 넣고 우클릭 메뉴를 등록하는 경우에 boot.sdi 파일 등록은 2가지로 구분이 됩니다

      - C:\Windows\PEBootCmd.exe 파일이 있는 경우 여기에 있는 boot.sdi가 램옵션에 등록이 됩니다

      - C:\Windows\PEBootCmd.exe 파일이 없는 경우에는 X:\Windows\boot.sdi (추가한 파일들중에) 파일을 wim 파일이 있는

        폴더에 복사후 램옵션에 등록을 합니다

        C:\Windows\PEBootCmd.exe 파일이 있어서 검색이 되면..boot.sdi 파일을 복사하지 않아도 되어서 깔끔합니다

 

다. cmd 파일이 있는 폴더 경로나  PE 이름은 빈공백이나 한글이 없이 하여 주십시요

    제일 중요한 부분일수도 있을것 같습니다..

 

 

아래는 소스는 C:\Windows\PEBootCmd.exe를 테그로 삼게 되면서 변경이 된 부분들입니다

 

if /i "%1" equ "/Del" (Del /q C:\Windows\Reg.tag&Exit)

 

PE에서 PE로 부팅시 이미 윈도우 레지이 등록이 된 경우에는 레지 하이브를 하지 않기 위해서 Reg.tag 파일을 테그로 삼고 있어서

윈도우 부팅시에 BCD흔적 삭제시에 Reg.tag 파일도 삭제를 하고 있습니다

 

 

:: ramdiskoptions 만들기

Set WinDrv=NO&Set RamDrv=%~d0&Set RamFolder=%~p0

If /i "%SystemDrive%" EQU "C:" (goto :_Next)

For %%a in (C D E F G H I J K L M N O P Q R S T U V W Y Z) do IF Exist %%a:\Windows\PEBootCmd.exe (

Set WinDrv=%%a:&Set RamDrv=%%a:&Set RamFolder=\Windows\&goto :_Next

)

IF "%~dp0" == "X:\Windows\" (Copy /y Boot.sdi %~d1%~p1Boot.sdi>nul&Set RamDrv=%~d1&Set RamFolder=%~p1)

 

:_Next

bcdedit /create %GuidDevice% /device /d "PEBoot"

bcdedit /set %GuidDevice% ramdisksdidevice partition=%RamDrv%>nul

bcdedit /set %GuidDevice% ramdisksdipath %RamFolder%boot.sdi>nul

 

PE에서 PE로 부팅시에 윈도우 파티션을 찾기 위해서 Windows\PEBootCmd.exe 검색을 합니다 한번은 검색을 해야해서 이 검색

을 램옵션에 등록할때 검색하도록 하였습니다

boot.sdi 등록 순서입니다 뒷번호 것이 실제 적용되는 boot.sdi 입니다

 

1. PEBootCmd.cmd 파일과 boot.sdi와 같이 있는 경우 이 파일 적용

2. Windows\PEBootCmd.exe 파일을 검색해서 파일이 있는 경우 여기에 있는 boot.sdi가 적용

3. cmd 파일이 X:\Windows  폴더에 있는 경우에는 여기에 있는 boot.sdi를 Wim 파일 옆에  복사후 적용

 

레지 하이브에 사용되는 Windows\PEBootCmd.exe 테그 파일이 존재한다면 PE에서 boot.sdi는 여기것이 적용이 됩니다

 

If /i "%SystemDrive%" EQU "C:" (

Reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v "PEBootDel" /t REG_SZ /d "%~dp0PEBootCmd.exe /Del" /f

echo Reg > C:\Windows\Reg.tag

) Else (

IF Exist %WinDrv%\Windows\PEBootCmd.exe (

IF Not Exist %WinDrv%\Windows\Reg.tag (

Reg.exe load HKLM\sw %WinDrv%\Windows\System32\config\SOFTWARE

Reg.exe add "HKLM\sw\Microsoft\Windows\CurrentVersion\RunOnce" /v "PEBootDel" /t REG_SZ /d "C:\Windows\PEBootCmd.exe /Del" /f

Reg.exe unload HKLM\sw

echo Reg > %WinDrv%\Windows\Reg.tag

        )

    )

)

 

PE에서 PE로 부팅시에 레지 하이브는 하는 경우는 Reg.tag 파일이 없는 경우에만 레지 하이브를 하기 때문에 윈도우에서 PE로 부팅을

한 경우에는 PE에서 PE로 부팅시에 레지 하이브를 할일이 없습니다

BCD에서 PE로 바로 부팅을 한 경우에는 PE에서 PE로 부팅시에 처음만 레지 하이브를 합니다

PE에서 PE로 부팅마다 무조건 레지 하이브를 해서 체크하던 비효율적인것이 없어졌습니다

 

PE 1회 관련해서는 좋은 작품들이 많고 위에서 소스도 공개를 하였습니다...

 

사용기는 다양한 상황에 대한 예를 캡처를 한것입니다

 

1. C:\Windows 폴더에 boot.sdi, PEBootCmd.cmd,  PEBootCmd.exe 3개 파일을 추가하였습니다

   여기 파일들이 기준이 되기 때문에 필수입니다...여기에서 우클릭에 등록을 하였습니다

1.jpg

 

2. PE가 실행될때 자동 등록을 하거나..끌어 댕기기에 사용하기 위해서 벌도의 폴더에 boot.sdi, PEBootCmd.cmd, PEBootCmd.exe

  3개 파일을 두고 사용하실수 있습니다..여기에서 우클릭에 등록을 해도 됩니다..윈도우에서는 어느것을 하거나 상관이 없습니다

2.jpg

 

3. 본문에 설명을 드린 것이죠...윈도우 부팅시 BCD 삭제후 Reg.tag 파일도 삭제를 합니다

3.jpg

 

4. PE에서는 다양한 경우가 있어서 상황에 따라서 램옵선에 등록하는 boot.sdi 경로가 3가지가 있습니다

4.jpg

 

5. 윈도우 레지에 등록시에 Reg.tag 파일을 만들어 등록을 표시하고 있어서 Reg.tag 파일이 없는 경우에만 윈도우 파티션의 레지

   파일을 하이브후 레지를 등록을 합니다.

5.jpg

 

6. C:\Windows에서 우클릭에 등록을 하였습니다..우클릭에서 1회 부팅을 하여 보겠습니다

6.jpg

 

7. 확인 메세지가 설정이 된경우 메세지가 나옵니다

7.jpg

 

8. PE로 부팅을 하였습니다.. 윈도우에서 PE 1회 부팅시에는 cmd 파일과 같은 폴더에 있는 boot.sdi가 램옵션에 등록이 됩니다

8.jpg

 

9. 윈도우 레지에 등록이 되어서 Reg.tag 파일이 있습니다. 이미 레지에 등록된것이 있는데 레지 하이브 할 필요가 없죠

   이 파일을 체크해서 있으면 레지하이브 자체를 하지 않습니다

9.jpg

 

10. 윈도우 레지에 등록이 된것을 확인하였습니다

10.jpg

 

11. 윈도우로 부팅하였습니다..BCD 흔적이 삭제되었습니다

11.jpg

 

12. Reg.tag 테그 파일도 삭제가 되었습니다

12.jpg

 

13. 아래 폴더에서 끌어 당기기를 하여 보겠습니다

13.jpg

 

14. 윈도우에서는 cmd 파일과 같이 있는 boot.sdi가 등록이 됩니다..

14.jpg

 

15. PE에서 현재 우클릭에 등록이 되어 있지 않은 상태입니다

15.jpg

 

16. cmd 파일과 boot.sdi 파일이 같이 있습니다.  우클릭 메뉴로 1회 부팅을 하여 보겠습니다..끌어 당기기도 같은 결과가 나오기는

   합니다

16.jpg

 

17. PE에서 PE로 부팅을 하였습니다.. PE에서는 윈도우에서 처럼 cmd 파일과 boot.sdi 파일이 같이 있어도 이 파일이 바로 적용이

  되지 않습니다... 윈도우 파티션을 찾는 소스가 실행이 되기 때문에 C:\Windows\PEBootCmd.exe 파일이 있는 경우 여기에 있는

  boot.sdi가 적용이 됩니다..

17.jpg

 

18. C:\Windows 폴더에 PEBootCmd.exe 파일이 없는 경우에는 cmd와 같이 있는 boot.sdi가 작용이 됩니다

18.jpg

 

19. C:\Windows\PEBootCmd.exe 파일이 없어서 cmd과 같이 있는 boot.sdi가 램옵션에 등록이 되어 있습니다

19.jpg

 

20. BCD에서 바로 PE로 부팅을 하여 보겠습니다. 이경우 윈도우 레지에 BCD 흔적 삭제가 등록이 되지 못합니다

20.jpg

 

21. 바로 PE로 부팅을 해서 C:\Windows 폴더에 Reg.tag도 없고 BCD에 흔적도 없습니다

21.jpg

 

22. 다른 PE로 부팅을 하여 보겠습니다

23.jpg

 

23. PE로 부팅이 되었습니다.. 윈도우 파티션 레지가 하이브후 BCD 흔적 삭제가 등록이 되어서 Reg.tag 파일이 생겼습니다

   램옵션은 C:\Windows 폴더에 있는것이 등록이 되었습니다

24.jpg

 

24. 윈도우 레지에서 잘 등록이 되었습니다

25.jpg

 

25. 윈도우로 부팅을 하였습니다..BCD 흔적이 삭제되었습니다

26.jpg

 

26. PE에서 우클릭에 등록하는 경우에도 아래처럼 X: 드라이브가 아닌 다른 파티션에 cmd 파일 boot.sdi가같이 있는 경우에는

  다른 PE로 부팅시 아무런 문제가 없습니다.

27.jpg

 

27. 아래 wim 파일에는 boot.sdi가 없습니다..X: 드라이브에 cmd 파일이 있지 않아서 윈도우에서 처럼 잘 부팅이 됩니다

28.jpg

 

28. 다른 PE로 부팅이 잘되었습니다...아래 사진처럼 wim 폴더안의 Windows 폴더안에 boot.sdi, PEBootCmd.cmd,  PEBootCmd.exe

 3개 파일이 있는 경우가 문제가 될수 있습니다..PE 부팅시에 우클릭에 자동 등록이 되도록 하였습니다

29.jpg

 

29. X:\Windows 폴더에 boot.sdi, PEBootCmd.cmd,  PEBootCmd.exe 3개가 있는 PE로 부팅을 하였습니다

  자동 등록이 되면서 BCD 흔적이 삭제가 되었습니다

30.jpg

 

30. 여기에 있는 wim 파일에는 boot.sdi 파일이 없습니다 여기에서 우클릭을 진행을 하여 보겠습니다

 

:: ramdiskoptions 만들기

Set WinDrv=NO&Set RamDrv=%~d0&Set RamFolder=%~p0

If /i "%SystemDrive%" EQU "C:" (goto :_Next)

For %%a in (C D E F G H I J K L M N O P Q R S T U V W Y Z) do IF Exist %%a:\Windows\PEBootCmd.exe (

Set WinDrv=%%a:&Set RamDrv=%%a:&Set RamFolder=\Windows\&goto :_Next

)

IF "%~dp0" == "X:\Windows\" (Copy /y Boot.sdi %~d1%~p1Boot.sdi>nul&Set RamDrv=%~d1&Set RamFolder=%~p1)

 

Windows\PEBootCmd.exe 파일이 있다면 굵은 부분에서 바로 램옵션 등록을 하기 때문에 boot.sdi 복사없이 Windows 폴더에

있는 boot.sdi가 등록이 됩니다

 

31.jpg

 

31. PE로 부팅이 되었습니다 C:Windows 폴더에 있는 boot.sdi가 등록이 되어서 wim 파일옆에 boot.sdi 파일이 없습니다

32.jpg

 

32. X:에 파일들이 있고 C:\Windows\PEBootCmd.exe 파일이 없는 경우에는 등록할 boot.sdi가 없습니다

 

:: ramdiskoptions 만들기

Set WinDrv=NO&Set RamDrv=%~d0&Set RamFolder=%~p0

If /i "%SystemDrive%" EQU "C:" (goto :_Next)

For %%a in (C D E F G H I J K L M N O P Q R S T U V W Y Z) do IF Exist %%a:\Windows\PEBootCmd.exe (

Set WinDrv=%%a:&Set RamDrv=%%a:&Set RamFolder=\Windows\&goto :_Next

)

IF "%~dp0" == "X:\Windows\" (Copy /y Boot.sdi %~d1%~p1Boot.sdi>nul&Set RamDrv=%~d1&Set RamFolder=%~p1)

 
C:\Windows\PEBootCmd.exe 파일이 없어서 boot.sdi를 찾을수 없으면 할수 없죠...X:\Windows 폴더에 있는 boot.sdi를 wim 파일
 옆에 복사후 램옵션에 등록을 합니다..  C:\Windows\PEBootCmd.exe 파일이 있다면 boot.sdi를 복사하지 않아도 되어서 깔끔하
  게 됩니다..

 

33.jpg

 

33. 이것도 캡처를 했네요...1번에서 검색이 되지 않았은 상태에서 cmd 파일이 X:\Windows 폴더에 있어서 2번에 적용이 되었습니다

34.jpg

 

34. wim 파일 있는 위치에 boot.sdi 파일이 없습니다.. 1회 부팅을 하겠습니다

35.jpg

 

35. PE로 부팅을 하였습니다... C:\Windows 폴더에 테그가 없어서 boot.sdi 파일을 복사후 부팅이 되었습니다

36.jpg

 

36. 윈도우 파티션이 포멧이 된 경우 입니다..C:\Windows\PEBootCmd.exe 파일이 없습니다.

   X:가 아닌 다른 폴더에서 cmd과 boot.sdi가 같이 있는 경우 우클릭 등록을 하였습니다..

37.jpg

 

37. cmd가 X: 드라이브에 있지 않아서 boot.sdi 복사없이 PE 부팅이 되었습니다

38.jpg

 

38. 윈도우 포멧 상태에서 cmd 파일이 X: 드라이브에 있습니다..우클릭 메뉴에서 PE 부팅을 하여 보겠습니다

39.jpg

 

39. X:에 있는 boot.sdi 파일 복사후..PE로 부팅이 되었습니다..X:\Windows 폴더에 있는 boot.sdi는 이렇게 비상용으로 사용이 됩니다

40.jpg

 

40. 아니..테스트 한다고 윈도우 파티션을 포멧을 했는데..Backup 폴더에 Backup.tbi 파일이 없네요..

41.jpg

 

41. 메세지용 파일을 지난번에 배포한 파일입니다..오토잇으로 만들었습니다..5개가 검출이 되었습니다

   이런 부분을 감안을 하고 요청을 하여 주십시요

42.jpg

 

42. 마무리

지난 번에 소개를 하여 드렸던 PE 1회부팅 cmd 버전의 경우 저 나름대로는..이 정도면 된것 같아서 소개를 하여 드렸었습니다

하지만..부족한것이 많이 있었습니다

 

DengJang님 작품에서 C:\Windows 폴더에 파일을 두는것에서 아이디어를 얻어서 레지하이브도 간단해지고 레지 하이브도

한번만 할수 있게 되었습니다..

cmd 파일을 X:\에 두고 사용하는것도 DengJang님이 활용하시는것을 보고 소스를 추가를 하게 되었습니다

 

PE 1회부팅 cmd 관련 업데이트에서는 DengJang님과 관련된 부분들이네요.

DengJang님 제가 실수를 하여서 불편을 드린 부분에 대해서는 죄송합니다

업데이트 관련해서 저에게는 여러가지로 많은 도움이 되었습니다...감사합니다...

 

저 나름대로는 다양한 상황에 대해서 고려를 했지만 부족한 부분들이 있을수 있습니다

양해를 하여 주십시요

 

새로운 8월이 시작되었습니다.

8월에도 웃음이 가득한 일들만 있으시길 바랍니다

 

 

댓글 [53]

속박

2023.08.02
21:15:53

고생하셨습니다~

무더위에 몸 조심하세요~

쭈니당

2023.08.03
07:39:45
수고하셨습니다.

kwi

2023.08.03
13:25:29

감사합니다

List of Articles
[공지] 스크린샷 업로드 유의사항 3
XE1.11.6 Layout1.4.8