2009년 12월 10일 목요일

VHD 파일 자동교체 부팅메뉴 등록하기

제 블로그에 있는 글 몇가지를 조합하시면 구성이 가능한데 요청하신 분들이 계셔서 따로 포스팅합니다.

 

관련 글

 

 

먼저 VHD 파일을 교체하는 스크립트를 만들어보겠습니다. 우선 제가 쓰고있는 VHD 파일을 보여드리겠습니다.

 

 

 

저는 현재 SSD 드라이브에 VHD 라는 폴더를 하나 만들어놓고 그 안에 3개의 VHD 파일을 두고 있습니다.

  • win7x86.vhd - 부모 VHD
  • child.vhd - 자식 VHD
  • clean.vhd - 자식 VHD를 처음 생성하자마자 백업해두었던 87kb짜리 깨끗한 자식 VHD

 

따라서 PE로 부팅하여

 

copy /y c:\vhd\clean.vhd c:\vhd\child.vhd

 

이렇게 명령어를 입력하면 자식 VHD 파일이 깨끗한 파일로 복원됩니다.

 

그런데 위 화면에서는 현재 SSD가 D 드라이브이지만 PE로 부팅하면 C 드라이브가 되기 때문에 저렇게 입력합니다만, 문제는 이게 가끔 바뀐다는 것입니다. 무슨 말이냐면 삼성 1TB 하드의 첫번째 파티션인 E 드라이브가 갑자기 PE에서 C로 되고 SSD는 D로 되는 그런 현상이 일어나는 것입니다. 예전에 Differencing VHD 파일 활용하기 전에 통파일을 수동으로 교체할 때 이런 드라이브 문자 혼동 때문에 사용하던 VHD를 최적화 VHD에 덮어씌운 경험이 몇번이나 있었습니다. 그럴 때마다 저는 눈물을 머금고 윈도우를 새로 설치했죠.

 

따라서 PE에서 드라이브 문자가 변경되는 현상에 관계없이 알아서 파일을 찾아서 교체하도록 해주기 위해서는 FOR 구문을 이용하시는게 좋습니다. 드라이브 문자가 어떻게 뒤바뀌더라도 상관없이 찾아서 바꿔주도록 하기 위함입니다.

 

아래는 예제입니다. 제가 처한 환경에서는 이렇게 활용합니다.

 

@echo off

for %%A in (C: D: E:) do if exist %%A\vhd\clean.vhd copy /y %%A\vhd\clean.vhd %%A\vhd\child.vhd

exit

 

간단하죠?

 

위 스크립트를 CMD 파일로 저장해서 실행하면 C ~ E 드라이브 중에 VHD 라는 폴더를 가지고 있고 그 안에 clean.vhd 파일이 존재한다면 그걸 동일 폴더에 있는 child.vhd 라는 파일로 강제 복사하게 됩니다. 저는 드라이브가 총 3개라서 저렇게 입력했는데 만약 드라이브가 많으시면 F: G: H: 이렇게 첫번째 괄호 안에 더 추가해주시면 됩니다.

 

이 FOR 구문을 이용하면 활용할 수 있는 것들이 무궁무진합니다. 아무튼 위 스크립트를 메모장에서 작성한 다음 CMD로 저장해주시고 Bat To Exe Converter - 배치파일을 exe로 변환해주는 툴 을 사용하여 exe로 컴파일합니다. 파일 이름은 setup.exe로 저장합니다.

 

 

 

만약 위 경우처럼 같은 드라이브 내에 있는 깨끗한 자식 VHD로 기존 자식 VHD를 교체하는 작업이라면 저렇게 간단하게 해결이 되겠지만, 다른 드라이브에 있는 파일을 옮겨오는 경우에는, 즉 Differncing VHD 사용하지 않으시고 네이티브 사용하시는 분들은 보통 백업파일 덩치가 10GB 정도 되니까 다른 파티션에 백업파일을 보관하실텐데, 그걸 스크립트로 만드려면 약간 길어집니다.

 

아래는 예제입니다. E 드라이브 BACKUP 폴더에 있는 win7x86.vhd 파일을 D 드라이브 VHD 폴더 안에 복사하는 작업입니다.

 

@echo off
for %%A in (C: D: E:) do (
    if exist %%A\vhd\win7x86.vhd (
        for %%B in (C: D: E:) do (
            if exist %%B\backup\win7x86.vhd copy /y %%B\backup\win7x86.vhd %%A\vhd\win7x86.vhd
        )
    )
)
exit

 

저렇게 이중으로 처리하지 않고 더 간단하게 할 수 있다면 고수님들께서 방법을 알려주시기 바랍니다.

 

 

 

이제 boot.wim 파일을 편집합니다. 그동안 GImagex는 많이 다루었으니까 이번에는 윈도우 7 내장 기능인 DISM으로 해보겠습니다.

 

먼저 윈도우 7 32비트 설치 원본 SOURCES 폴더에 들어있는 boot.wim 파일을 꺼내오세요. 저는 이 파일을 E 드라이브에 복사해두겠습니다.

 

그런 다음 마운트를 위한 임시폴더 하나를 만들어줍니다. 저는 E 드라이브에 MOUNT 라는 폴더를 하나 만들겠습니다.

 

boot.wim 파일을 복사해오셨고, 마운트할 임시폴더를 생성하셨다면 이제 관리자 권한으로 명령 프롬프트를 띄우신 다음 아래와 같이 입력합니다.

 

dism /mount-wim /wimfile:e:\boot.wim /index:2 /mountdir:e:\mount

 

boot.wim 파일의 위치와 마운트할 임시폴더의 위치는 각자 환경에 맞게 입력하세요. 이렇게 입력을 하셨다면 이제 마운트한 임시폴더로 가보세요. 그럼 윈도우처럼 생긴 파일들이 있을겁니다.

 

 

 

윈도우 7 DVD로 부팅을 하시면 이 boot.wim 파일이 램디스크(?)에 탑제되고 저기 보이는 setup.exe 파일이 자동으로 실행됩니다. 그래서 윈도우 설치화면이 바로 뜨는 것입니다. 우리가 해야 할 일은 저기 보이는 setup.exe 파일 대신에 VHD 파일을 자동교체하도록 만들어둔 setup.exe 파일을 집어넣는 것입니다. 그러면 저 파일로 부팅했을 때 윈도우 설치가 자동실행되지 않고 VHD 파일이 자동교체 되겠지요. 교체가 끝나면 알아서 재부팅까지 해줍니다. 참 편리하지요.

 

파일을 교체하셨다면 이제 윈도우 탐색기를 닫아주세요. 만약 탐색기를 닫지 않고 마운트된 폴더가 열려있는 상태라면 아래 작업시에 오류가 발생할 것입니다. 따라서 반드시 마운트된 폴더가 탐색기에서 열려있다면 탐색기를 닫아주시기 바랍니다.

 

dism /unmount-wim /mountdir:e:\mount /commit

 

이렇게 만든 boot.wim 파일은 이제 나만의 VHD 파일 교체용 PE가 된 것입니다.

 

 

 

이제 이 boot.wim 파일을 멀티부팅 메뉴에 등록시킬 차례입니다. 먼저 boot.sdi 파일이 필요합니다. 이 파일은 C:\Windows\Boot\DVD\PCAT 폴더 안에 들어있으며 윈도우 7 DVD 의 BOOT 폴더 안에도 들어있습니다. 이 파일을 복사해오신 다음 위에서 만든 boot.wim 파일과 동일한 위치에 두세요. 저는 D 드라이브 BOOT 폴더 안에 넣어두었습니다. 그런데 저는 기본 PE 부팅도 멀티부팅 메뉴에 두었기 때문에 위에서 만든 VHD 교체용 파일은 구분해주기 위해서 copy.wim 이라고 이름을 변경해둔 상태입니다.

 

 

 

 

이 파일을 멀티부팅 메뉴에 등록시키기 위해서는 우선 명령 프롬프트를 관리자 권한으로 띄우신 다음

 

bcdedit /create {ramdiskoptions}
bcdedit /set {ramdiskoptions} ramdisksdidevice partition=D:
bcdedit /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi
bcdedit /create /d "VHD 파일 교체하기" /application OSLOADER


두번째 줄 끝에는 boot.sdi 파일을 복사해두신 드라이브명을 입력해주시고

세번째 줄 끝에는 boot.sdi 파일의 위치를 적어주시면 됩니다.

네번째 줄 중간에는 멀티부팅 메뉴에 등록시킬 이름을 적어주시면 됩니다.

 

만약 예전에 램디스크 옵션 메뉴를 제가 첨부해드렸던 스크립트로 등록시켰다면 이름을 뭘로 지정하더라도 무조건 램디스크 옵션이라고 나올겁니다. 그 문제를 수정하시려면 아래와 같이 입력해주세요.

 

bcdedit /deletevalue {ramdiskoptions} description

 

그러면 이제 램디스크 옵션이 아닌 네번째 줄에서 지정해주셨던 진짜 이름이 멀티부팅 메뉴에 나올 것입니다.

 

또한 기존에 이미 PE를 멀티부팅 메뉴에 등록해서 사용하고 계신 분들이라면 처음 세줄은 필요가 없습니다. 처음 세줄은 이미 만들어져 있는 것이니까 마지막 네번째 줄만 입력하셔서 OSLOADER 항목만 새로 한개 만들어주시면 됩니다.

 

아무튼 위 명령어들을 통해 새로운 VHD 파일 교체하기 항목을 만드셨다면 식별자 GUID가 반환되는데 저는 아래와 같이 나왔습니다.

 

{ae48570b-e279-11de-97e7-a1cf7efb0803}

 

위 문자열은 각자 다르게 나올 것입니다. 따라서 위 문자열을 잘 복사해두신 다음 이어서 계속 진행합니다.

(아래 두번째 줄과 세번째 줄은 같은 한 줄입니다. 블로그 가로 길이 때문에 두줄로 표시되었습니다.)

 

bcdedit /set {ae48570b-e279-11de-97e7-a1cf7efb0803} device ramdisk=[D:]\boot\copy.wim,{ramdiskoptions}
bcdedit /set {ae48570b-e279-11de-97e7-a1cf7efb0803} osdevice ramdisk=[D:]\boot\copy.wim,{ramdiskoptions}
bcdedit /set {ae48570b-e279-11de-97e7-a1cf7efb0803} path \windows\system32\winload.exe
bcdedit /set {ae48570b-e279-11de-97e7-a1cf7efb0803} systemroot \windows
bcdedit /set {ae48570b-e279-11de-97e7-a1cf7efb0803} winpe yes
bcdedit /set {ae48570b-e279-11de-97e7-a1cf7efb0803} detecthal yes
bcdedit /set {ae48570b-e279-11de-97e7-a1cf7efb0803} ems yes
bcdedit /displayorder {ae48570b-e279-11de-97e7-a1cf7efb0803} /addlast
bcdedit /timeout 3

 

좀 어려우신가요? 아니면 어렵지는 않지만 타이핑이 귀찮으신 것일 수도...

첫번째 두줄에서는 뒷부분에 VHD 파일 교체용 PE의 위치를 지정해주시면 됩니다. 저는 D 드라이브 BOOT 폴더에 copy.wim 이라는 이름으로 넣어두었기 때문에 저렇게 입력했습니다.

 

이렇게 한번 자세히 설명드려야 스스로 응용하실 수 있을 것 같아서 스크립트로 만들지 않고 수동으로 알려드렸습니다.

 

이렇게 해주시면 이제 멀티부팅 화면에 우리가 만들었던 VHD 파일 자동교체 하는 메뉴가 등장할 것입니다. 메뉴 고르는 시간은 3초로 해두었는데 너무 짧다 싶으시면 수정해주세요.

 

혹시 이해가 잘 안 되시거나 궁금하신 내용이 있다면 질문 남겨주시기 바랍니다.

댓글 78개:

  1. 1등의 영광..

    항상 좋은 정보 감사합니다.^^

    답글삭제
  2. 오오오오~~!!!

    올려 주신다고 해서 좋았는데 이렇게나 빨리 올려 주실줄이야... 정말 감사합니다.~~~ 지금 당장 해봐야겠네요~~

    답글삭제
  3. 자동교체 메뉴도 만들수있군요.



    한번 시도해봐야겠군요!



    좋은정보감사합니다

    답글삭제
  4. 2등의 아쉬움

    오전엔 약한걸루 오후반은 쎈걸루 올려주시는센스

    헉 글올리는중 3등으루밀림 그래두 매달권

    답글삭제
  5. @용달아저씨 - 2009/12/10 18:08
    저 아침 8시랑 저녁 6시 고정으로 예약발행 하고 있습니다. 시간은 정해져있으니 등수놀이는 무의미하다고 생각해요 ㅋㅋ

    답글삭제
  6. 오홍 이런 거였군요... 드뎌 직접 올리셨네요 ㅎ

    어제 저는 setup.exe에는 메뉴 echo랑 cmd만 넣어두고 부팅되는 디렉토리에다가 1.cmd 2.cmd 3.cmd를 만들어서 넣어뒀다는... ㅋㅋ 그리고 배치파일로 diskpart 안에서 입력하는 내용을 넣을 수가 없어서 찾아봤더니 diskpart도 txt파일 이용해서 스크립트로 실행시키는 것이 있더라구요 ㅎㅎ 부팅해서 연결시키기...

    어쨌든 멀티부팅에 등록하면 더욱더 간지나는 복구가 되겠군요 해봐야지 ㅋㅋ

    답글삭제
  7. 혹시나 이런 끝판 대장식의 요약을 올려주시지 않을까 기대했는데 역시나 기대를 저버리지 않으시네요. 감사합니다. 건강 또 건강하세요~

    답글삭제
  8. 안녕하세요 스누피님 궁금한게 있어서 그런대요 이번에 윈도우7 새로 다시 설치하고 깔금하게

    VHD로 떠놀려고하는대 여기서 궁금한게 제가 하드를 파티션을 2개로 나눠서 프로그램을 세컨트파티션에 설치를할려고하는대요 그럼 첫번째파티션에 설치한 윈도우를 vhd로 다시 복구를 시키면 그 두번째 파티션에 설치되있는 프로그램들은 다시 설치해야하나여?아님 자동으로 연동이되나요?..그리고 파티션 나눠서 다른파티션에 프로그램 설치하면 프로그램 불러오는 속도가좀 느린가요?

    답글삭제
  9. 스누피님 안녕하세요.



    제가 이미 윈도우7을 설치해서 쓰고 있는데...



    이걸 지금 vhd 로 만들수 있나요?



    다시 설치하면서 vhd 를 만들자니, 깔아놓은 프로그램및, 저에게 맞춰놓은 셋팅들이...너무 아까워서요..



    지금 쓰고 있는 그대로를 vhd로 만들어서 보관하고 싶어요..



    답글 기다리고 있습니다.





    플루 조심하세요~

    답글삭제
  10. 안녕하세요^^ 좋은 정보 감사합니다 ^^



    어제 스누피님 멀티부팅메뉴 스샷을 보고 필받아서 저도 위 작업을 했었는데요~



    저는 바로 복사하는것도 하는거지만 가끔 다시 자식vhd를 생성하기도해서 메뉴형식으로 만들었거든요^^

    ※ 복사용 스크립트는 참고해서 다시 만들어야겠네요 ^^



    그런데 boot.wim 관련 작업시 setup.exe 만 제작한 cmd 를 컨버팅해서 복사하고 부팅하니까 pe 기본화면만 뜨더라구요. startnet.cmd 까지 변경해서 어떻게 성공하긴 했는데..

    제가 적용을 잘못해서 그런건지.. startnet 까지 손봐야만 원래 가능한건지... 궁금해서요 ㅠㅠ



    http://liverex.tistory.com/99 에 작업한 내용 적어뒀는데 수정사항 좀 알려주시면 감사하겠습니다 ^^

    답글삭제
  11. 비밀 댓글 입니다.

    답글삭제
  12. 휴 거의 다 하긴 했는데 전 이상하게 첨에 멀티 부팅 메뉴 보면 ramdisk option이 2개 뜨더라구여 하는 정상적인 pe부팅으로 실행되고 하나는 자동으로 업데이트 하는 것으로 제대로 작동이 되긴하네여.. 이름 바꾸려고 포스팅 에서 bcdedit에 대한것을 보고 바꾸었는데 bcdedit상에서는 바뀐걸로 나오는데 부팅메뉴에는 그대로이네여..

    답글삭제
  13. @처크 - 2009/12/10 19:48
    백업할 시점에 설치되어 있던 프로그램은 작동을 하고 그 이후에 설치한 프로그램들은 새로 설치해야지요.

    답글삭제
  14. 항상 좋은 정보에 감사드립니다.

    그동안은 백업 및 복원 메뉴에서 윈도우 이미지를 만들어서 관리했는데 한번 시도해 봐야겠습니다.

    그런데 궁금한 것이 있습니다.



    제가 관리하는 PC가 10대 정도 있는데요...

    그동안은 XP를 사용하면서 고스트 이미지로 3~4개월에 한번씩 복원을 했습니다.



    PC마다 사양이 달라서 그동안은 10대의 PC를 각각 셋팅해서 외장하드와 파티션을 두개로 나누어 D부분에 보관하다가 복원을 시켰는데요....



    스누피님이 올려놓으신 글을 보니... 그냥 이미지 한개로 다른 PC에 적용시켜도 상관 없다고 하시는 것 같은데...



    그동안은 메인보드 칩셋이나 각종 드라이버들... 그런거 달라도 윈도우에서 알아서 잡기야 하겠지만 웬지 깔끔하게 보관하려고 모든 PC의 이미지를 따로 관리했거든요...



    이번에 모든 PC를 윈7로 바꾸게 되어 일일히 셋팅하려니 참 구찮은데...



    그냥 한개 가지고 모든 PC에 적용해도 상관 없을까요>?

    답글삭제
  15. @Nostalgia KY - 2009/12/10 22:19
    윈도우 7 자체 복구기능 사용하시면 VHD로 만들어집니다.



    http://snoopybox.co.kr/1139



    그렇게 만든 VHD를 부모 VHD로 지정하고 새로 자식 VHD 하나 만들어서 활용하시면 되겠네요.

    답글삭제
  16. @Anonymous - 2009/12/10 23:04
    네 코드락 해제가 시디키입니다. 주소는 디지털리버에 직접 요청하시면 다운로드 주소 알려줄겁니다.

    답글삭제
  17. @LiveREX - 2009/12/10 22:35
    제 생각에 컴파일할 때 bat to exe 를 쓰시면 문제가 발생하는 것 같습니다. QBFC는 괜찮을겁니다. 경험상 그렇더군요. 상용이 무료보다 아무래도 좋은가봅니다.

    답글삭제
  18. @WooWoo - 2009/12/10 23:15
    이상하네요. 혹시 메뉴가 영어라서 한글이 안나오는 상황은 아닌거죠?

    답글삭제
  19. @신동석 - 2009/12/10 23:34
    아뇨 그렇게 하시려면 먼저 Sysprep 일반화 봉인작업을 걸어주셔야 합니다. 일반화를 하지 않으면 인텔 보드끼리는 되는 경우도 많기는 한데, 아무튼 메인보드 칩셋이 다르면 부팅 실패할 확률이 매우 높습니다.

    답글삭제
  20. 비밀 댓글 입니다.

    답글삭제
  21. @snoopy - 2009/12/10 23:52
    한글이 안나오는 건 아닌듯해요~ ㅜㅜ 그냥 이대로 쓸까봐요....................ㅋㅋ

    답글삭제
  22. @Anonymous - 2009/12/11 00:08
    https://windows7.digitalriver.com/DRHM/servlet/ControllerServlet?Action=DisplayContactFormPage&SiteID=mswpkr



    저기에 주문번호랑 다 넣고 64비트 ISO가 필요하다고 말하세요.

    답글삭제
  23. 스누피님 감사합니다! 덕분에 큰 도움이 되었어요~!!

    답글삭제
  24. @snoopy - 2009/12/10 23:49
    말씀하신 QBFC 해서 테스트해봤습니다

    setup 만 교체하면 역시나 안되더군요 ㅠㅠ

    startnet 에 내용을 넣어야지만 작동하네요 ^^;;;

    그냥 머 무거워지는것도 아니고 이렇게 써야겠어요 ㅠㅠ



    알려드려야할듯하여^^

    답글삭제
  25. @LiveREX - 2009/12/10 22:35
    음... 저는 setup.exe만 교체해서 쓰고 있습니다. LiveREX님은 이상한 증상이군요.

    답글삭제
  26. @snoopy - 2009/12/10 23:54
    답글 감사합니다. 제가 좀 무식해서 한가지만 더 질문을...



    그러면... sysprep로 일반화 봉인을 하면...



    칩셋이 인텔이든 아니든 상관없이 깔끔하게 된다는 말씀이신 거지요?

    답글삭제
  27. @WooWoo - 2009/12/10 23:15
    "만약 예전에 램디스크 옵션 메뉴를 제가 첨부해드렸던 스크립트로 등록시켰다면 이름을 뭘로 지정하더라도 무조건 램디스크 옵션이라고 나올겁니다. 그 문제를 수정하시려면 아래와 같이 입력해주세요."



    bcdedit /deletevalue {ramdiskoptions} description

    답글삭제
  28. @snoopy - 2009/12/11 01:06
    조금 더 테스트해보고 답을 달걸 그랬네요 ㅎㅎ



    이것저것 시도해봤는데 왜 인지는 잘 모르겠지만...



    32비트 윈7에서 boot.wim 을 추출했을 때는 setup 만 교체해도 되고, 64비트에서 추출한거는 끝까지 2개다 교체해야 가능하더군요 ^^



    32비트로해서 처리했는데 20mb 용량절감에 더 기쁘다는 ㅎㅎ

    답글삭제
  29. 스눞님이 쓰시는 메뉴도 자세히 올려주셈~

    이내용을 응용하면 될거 같긴한데...

    만들기가 무섭네요..잘못될까바ㅋ

    스눞님 메뉴가 탐나네요...내놓으세요ㅋ

    이번 주말은 처음으로 VHD에 도전하려고 스눞님 블로그 전부 프린팅중..웅컁컁~

    항상 눈팅만 하는데 죄송스럽고 감사드립니다~

    구글 입사 하셔야죠~

    답글삭제
  30. @ExLudo - 2009/12/11 02:39
    아 본문에 있었군요~~

    해결하였습니다.~ 감사합니다~~~

    답글삭제
  31. @신동석 - 2009/12/10 23:34
    비스타 이상은 그렇습니다. 비스타나 윈도우 7 설치원본 자체가 Sysprep 일반화 봉인된 상태입니다.

    답글삭제
  32. @LiveREX - 2009/12/10 22:35
    그게 아니고 64비트 PE에서는 32비트 프로그램이 실행되지 않습니다. 아마 sysWOW64랑 관련이 있겠지요. 패키지가 없을테니... 그래서 setup.exe에 실패했기 때문에 그 다음으로 startnet.cmd에 권한이 넘어간 것입니다.

    답글삭제
  33. @슬픈사내 - 2009/12/11 09:58
    음... 이 글을 정확하게 이해하시면 제가 쓰는 메뉴도 구성이 가능해요 ;;; 직접 시도해보시면서 궁금하면 질문하시고, 그러다 날려버리시면 새로 설치하시고 원래 그렇게 하면서 실력이 늘어가는겁니다. ^^

    답글삭제
  34. @WooWoo - 2009/12/10 23:15
    헉... 저는 저걸로 했는데 안됐다는 말인줄 알았는데 ;;;

    답글삭제
  35. 찾아봤는데 어떤거 적용해야하는지 몰라서 글 남깁니다.



    자식VHD를 멀티부팅 메뉴에 등록후 부모VHD 부팅메뉴를 삭제했습니다.



    이글을 읽고나서 부모VHD 부팅메뉴를 다시 생성하고 싶은데요..



    그럴려면..DISKPART 실행후 마운트해서 BCD를 다시 생성해줘야 하는지요..



    아니면 BCDEDIT로 추가할수 있는지 추가할수 있다면 어떤글 참조해야 하나요?.

    답글삭제
  36. @nayo81 - 2009/12/11 15:12
    http://snoopybox.co.kr/840

    답글삭제
  37. 스누피님~ㅠ 흠.. pe로부팅한다고 하셨는데..

    pe도 역시 부트로더에 올리신거죠?

    pe이미지는 뭘 쓰셨는지요..?



    vhd로 백업 복원하시는거같은데.. 그냥 c에 windows 7 설치한 사람을 위해 pe 세팅이라던가 기본적인 강좌 부탁드려요..ㅠ

    답글삭제
  38. @ArkX - 2009/12/11 17:44
    아 저기서 제가 말한 pe는 boot.wim 파일을 말한겁니다. 그 아마 XP PE같은걸 생각하시는 것 같은데 그런건 아니고 기본 골격만 가지고 있는 PE라 할 수 있죠.

    답글삭제
  39. @snoopy - 2009/12/11 13:03
    ㅎㅎ 죄송합니다. .글을 잘 읽어보지도 못하고 ;;정말 감사합니다 덕분에 컴터 편하게 쓸수 있겠네요

    답글삭제
  40. @snoopy - 2009/12/11 12:45
    ㅎㅎ 별 생각없이 했다고 또 좋은 정보 하나 배웠네요^^

    감사합니다~~

    수시로 여기서 잘 배우고 가고 있어요 ^^

    답글삭제
  41. 아...스누피님때문에 또 뽐뿌받아서..VHD환경으로 물갈이 해버렸습니다..네이티브환경은 스냅샷으로 백업해놓고..;;

    저번에도 이러다가 결국은 네이티브로 돌아갔는데요...저에게는 몇가지의 단점이 있었습니다..

    느려터진 HDD를 사용하다보니 부팅에 있어서의 반응이 느리고(지렁이나 드래곤볼 깜빡이는 숫자가 문제가 아니라 바탕화면 진입후 시작 프로그램 뜨는 시간과 윈도우 시작음 들리고나서 IE실행시켰을때의 반응속도) 왜 그런지는 모르겠지만 USB를 레디부스트로 활용못하고;;(네이티브에서는 잘됩니다ㅜㅜ)

    마지막으로 거대한 용량손실입니다.

    실제 15G 정도 사용중인 파티션을 부팅하기 위해선 38G(엄마VHD 15G + 자식확장된상태20G + 페이지파일등등3G) 정도가 필요한 상황입니다...그렇다고 자식기능을 빼면 사요의 매력이 없고..;; 왜 엄마와 자식은 같은 파티션에 존재해야만 할까요 ㅜㅜ 분가좀 시켜주면 안되는건가..-_-;;



    2주만 써보고 결정해야겠습니다. 매력만점의 VHD를...

    답글삭제
  42. 스누피님 그럼 64비트는 자동교체 setup파일은 어떤걸로 만들어야 하나요? 아직 지원하는 프로그램이 없는건지 궁금합니다.



    저도 64비트 사용중이라서요..

    답글삭제
  43. 대박입니다.



    10시간만에 드디어 성공했습니다.



    복구모드도 부팅로더에 넣고요



    1. 자식VHD

    2. 예전에 깔았던 WIN7부팅

    3. PE로 부팅

    4. VHD파일 교체

    5. VHD MERGE

    6. 윈7 복구모드 (Winre.wim)



    이렇게 쓰니 정말 최고네요



    예전에 있던 pe 계열 딜레이도 하나도 없네요



    최고!!

    답글삭제
  44. @nayo81 - 2009/12/11 23:59
    32비트 boot.wim 이 없으시다면

    64비트도 작동하는데 문제는 없어요~

    자동 교체되게 스크립트 짠 cmd 파일을

    번거롭지만 두번 작업하시면 됩니다.



    1. setup.exe 로 컨버팅해서 setup 에 덮어쓰시고

    2. 만들어둔 cmd는 startnet.cmd 로 이름 변경해서

    덮어쓰시고 언마운트 하시면 제대로 작동합니다 ^^



    홍보하는 것 같아 좀 그렇지만...

    http://liverex.tistory.com/99

    보시면 이해되실거예요

    답글삭제
  45. @Lajen - 2009/12/11 20:03
    아... 진짜 제가 SSD 쓰기 때문에 대부분의 하드 사용자들 생각을 못했네요 ;;;

    답글삭제
  46. @nayo81 - 2009/12/11 23:59
    CMD를 EXE로 변환하는 툴 중에 64비트로 만들어주는 툴은 아마 없겠지요. 그냥 32비트 boot.wim 사용하시면 될텐데 굳이 64비트 PE를 쓰시려는 이유가 있으신가요?

    답글삭제
  47. @우성군 - 2009/12/12 03:21
    암튼 만족하신다니 축하드립니다. ^^

    답글삭제
  48. @snoopy - 2009/12/12 04:31
    vhd자동교체하기위한 부팅은 32비트 boot.wim 써도 되는거군요.. 몰랐어요 ㅠ



    32비트는 32비트, 64비트는 64꺼 써야되는줄 알았어요^^



    그럼 짐 등록되어있는 boot.wim 지우고 32비트꺼 가져다가 덮어써도 상관없죠? 다시 등록안해도 되는거죠? ㅋ

    답글삭제
  49. @nayo81 - 2009/12/11 23:59
    네 32비트 boot.wim 파일 수정한 다음 원래 쓰던 자리에 교체만 하시면 됩니다. BCD에 새로 등록할 필요는 없습니다.

    답글삭제
  50. 아주 좋은 강좌네요.

    반응이 넘 좋아요. ㅎㅎㅎ

    그런데 한가지 묻고 싶어요.

    disk 에 오로지 vhd 파일만 있을때 부팅할수 없을런지요?

    빈 하드에 vhd 파일만 넣고 부팅할수 있는 방법이 있는지 궁금하네요. snoopy 님이라면 해결 방법이 있을법 하기도 하구요. ㅎㅎㅎㅎ

    답글삭제
  51. @snoopy - 2009/12/12 12:45
    작업해봤습니다..잘 동작하네요..



    많이 배웁니다.^^

    답글삭제
  52. @pino - 2009/12/12 13:18
    이론상 될거 같습니다.

    어떤분 그렇게 쓰시는거 같았는데..기억이 ㅋ



    스누피님 다음 강좌가 되려나..ㅋㅋ

    답글삭제
  53. 오늘까지만해도

    http://snoopybox.co.kr/1176(윈도우 7의 Differencing VHD 기능을 활용해보자) 방법 그대로 사용하고 있던 사용자 입니다.



    지금 이 강좌보고서 자동으로 교체해주기는 성공했습니다.



    얼마전 '요즘 제가 사용하는 ... ' 이라는 글에서 기존에 '최신상태를 유지하기 위한 작업'을 하기 위해서 하던 '자식과 부모를 병합하는 작업'말고

    이제는 부모로 부팅해서 부모를 직접 업데이트 하신다고 하셨는데,



    그 작업은 부모모드로 부팅할 멀티부팅메뉴만 추가하고. 그전에, attrib c:\win7.vhd -r 을 해줘야 하는거 맞는지요?



    부모모드 부팅하기 메뉴를 만들려고 하는데, 어디서부터 봐야할지 모르겟네요; 힌트좀 부탁합니다.

    답글삭제
  54. @여성현 - 2009/12/12 14:09
    맞습니다. 읽기 전용을 풀어주시고 멀티부팅 메뉴나오게만 등록해주시면 됩니다.



    윗쪽 답글 찾아보시면 제 아이디로 된 글중에 스누피님이 답글단 강좌보시면 하실수있습니다..



    윈도우7에서 vhd 부팅하기 글 보시면 하실수 있어요..



    저도 그렇게 부모vhd도 멀티부팅메뉴에 추가했습니다.ㅋ

    답글삭제
  55. @pino - 2009/12/12 13:18
    제가 그렇게 쓰고 있는데...



    VHD 파일만 달랑 하나 넣어둔 다음 BCD를 생성해서 부팅시켜주시면 됩니다. VHD 자체적으로는 부팅되는게 아니구요 윈도우 7의 BCD가 VHD를 불러오는 기능이 있습니다.

    답글삭제
  56. @여성현 - 2009/12/12 14:09
    네 맞습니다. 부모에 읽기전용 안 걸어줘도 되더라구요 ;;; 그래서 기본 베이스 업데이트가 필요할 경우 부모로 한번 부팅해서 프로그램 설치해준 다음 다시 자식 교체를 한번 해주고 사용하고 있습니다.

    답글삭제
  57. 일단 자동 복구 메뉴는 만들었고,

    이제 업데이트 모드도 하나 만들려고 합니다.

    부모모드 부팅하기로 하려 했으나, 아무래도 부모는 잘못 건드렸다가 포맷하는 경우가 생길것 같아

    그냥 병합하는(업데이트) 메뉴를 만들려고 합니다.



    그냥 메모장 열고

    diskpart

    sel vdisk file=c:\win7-diff.vhd

    merge vdisk depth=1

    exit

    copy /y c:\clean.vhd c:\win7-diff.vhd

    exit

    이렇게 입력한후.. (중간과정설명 생략)

    여튼 부팅했떠니 diskpart만 실행되고 마는군요;;



    아마도 diskpart 실행시 딜레이 때문에 그런거겠죠?

    그 외에도 병합할때도 딜레이가 있을것이고..

    이거 완벽하게 자동으로 하는 방법은 없는지요?



    (추가)

    diskpart /s sel vdisk file=c:\win7-diff.vhd

    diskpart /s merge vdisk depth=1

    copy /y c:\clean.vhd c:\win7-diff.vhd

    exit

    라는 명령어로 만들면 cmd 파일이 exe 파일로 변환되지가 않습니다. bat to exe 프로그램 문제일까요 -_-;;;

    답글삭제
  58. 좋은 정보 감사합니다.

    혹시나 가르쳐주실까 했는데 알려주시네요.

    이로써 조금 더 편해지겠네요.

    답글삭제
  59. @여성현 - 2009/12/12 23:37
    /s 다음에는 스크립트를 지정해야 합니다.



    sel vdisk file=c:\win7-diff.vhd

    merge vdisk depth=1

    exit



    까지를 텍스트파일로 저장한다음 그 파일을 diskpart /s 다음에 적어줘야겠지요.



    exe 변환은 QBFC 사용하세요. 그게 더 좋더군요. 역시 상용 프로그램이 상용인 이유가 있는 듯 ;;

    답글삭제
  60. @snoopy - 2009/12/12 14:21
    BCD 생성은 어떻게 하는건지요? 아무것도 모르는 초자라 그럽니다. ㅎㅎㅎ

    답글삭제
  61. @pino - 2009/12/12 13:18
    http://snoopybox.co.kr/851



    위 글과 관계된 내용입니다. PE로 부팅시킨 다음 C를 포맷하고 VHD 파일을 C에 넣어준 다음 위 내용대로 등록시켜주시면 C에 부팅파일과 VHD 파일만 들어있게 됩니다.

    답글삭제
  62. @snoopy - 2009/12/13 17:44
    잘 되네요. 님 덕분에 해결되서 기분이 매우 좋습니다.

    아주 좋은일 많이 하십니다.

    좋은 공부도 많이 하고 정말 좋습니다.ㅎㅎㅎㅎ

    답글삭제
  63. @pino - 2009/12/12 13:18
    축하드립니다. ^^

    답글삭제
  64. 안녕하세요^^ 매일 눈팅만하다가 난관에 봉착해서 이렇게 글을 쓰게되었네요~ㅎㅎ



    그동안 VHD관련 포스팅 정말 감사합니다. 열심히 보고 따라해서 저한테 맞게 좀 써보려고 하는데.. 쉽지 않네요 ㅡㅡ;;;



    우선 궁금한게 로컬(물리)디스크에 설치한 윈7을 복원메뉴에서 시스템이미지만든후 vhd파일만 복사하여 등록해서 부팅까지 성공했습니다. snoopy님은 안되셨다고 했지만 댓글중 성공하신분이 있어서 용기내서 했습니다. 그래서 저도 부팅은 성공 했는데... 이상한 점이 생겼습니다.



    vhd로 부팅하여 바탕화면에 압축파일을 카피한후 다시 로컬(물리)디스크에 설치된 윈7로 부팅하니까 vhd로 부팅해서 카피했던 압축파일이 바탕화면에 나타났어요...제 생각에는 vhd로 부팅할때 압축파일이 보이고 로컬(물리)디스크로 부팅하면 압축파일이 안보여야 할꺼 같은데... 페이징파일이나 vhd하드(파일)가 아닌 기타 물리하드에 저장하는 파일이 공유되는건가요?



    흠..횡설수설해서 이해가 되시려는지 걱정이네요 ㅡㅡ;;;



    제가 하려고 한거를 정리하면 물리하드에 윈7 설치후 복구이미지로 vhd로 생성하여,

    (참고로, 하드웨어장치를 연결하는게 있는데 vhd를 만들어서 윈7설치후 장치를 연결 및 드라이버설치하면 인식이 안되길래 물리하드에 설치후 복구이미지로 vhd를 만들어서 부팅이 가능하도록 했습니다. 이렇게 vhd를 만들어서 부팅하면 장치가 잘 연결되더군요.)

    snoopy님 처럼 vhd파일만 교체하여 쓰고 싶었습니다. 근데... 바탕화면에 압축파일이 로컬(물리)디스크 와 vhd파일 모두 동일하게 나타났습니다. 저는 vhd파일로 부팅해서만 바탕화면에 압축파일이 보이게 했는데요.(압축파일은 인터넷에서 다운받았습니다.)



    꼭 좀 알려주세요~ ㅎㅎ (vhd쓴다고 5일째 이러고 있네요ㅋ 공부를 더해야겠죠?? snoopy님은 정말대단하세요~^^)

    답글삭제
  65. @아이따 - 2009/12/14 20:10
    음... 제가 그 문제 때문에 더더욱 그 방법을 권장하지 않습니다.



    현재 그 증상은 VHD 윈도우가 C로 잡혀있지 않아서 발생합니다. C에는 물리 윈도우 7이 있겠지요. VHD로 부팅하면 자기가 C로 되어야 하는데 기존 물리윈도우가 있어서 VHD는 E나 F처럼 다른 드라이브로 밀리더군요.



    이게 왜 문제가 되냐면 윈도우 설치시 스스로 C로 인식된 상태를 백업해두었기 때문에 바탕화면같은게 C에 있는 파일을 사용하게 됩니다. 즉 VHD의 윈도우 몸뚱이는 E에 있지만 바탕화면은 C에 있는 User 폴더를 사용하는거죠. 원래 C에있던 윈도우를 백업했기 때문에 절대경로를 C로 인식하는 것입니다.



    제 생각에 이 문제를 해결하려면 기존 물리윈도우7은 포맷을 해버리셔야 할겁니다. 그래야 VHD 윈도우7이 C로 자리잡게 될겁니다.

    답글삭제
  66. 감사합니다..VHD윈도우가 G로 잡히네요..여태그걸 모르고ㅠㅠ 역시 snoopy님은 천재세요 ^^



    근데 기존물리윈도7이 C에 있는데 포맷하면 부팅메뉴가 사라지게 질텐데..다시 등록해주면 되는건가요? 등록할때 VHD 윈도7이 C로 되게는 어떻게 하면 되나여?



    정말 VHD의 길은 멀고도 험하군요 ㅎㅎ

    답글삭제
  67. 안녕하세요 완전컴맹이라 질문하기조차 창피스럽네요..

    님의 블로그 보고 따라해서 얼추 비슷하게는 만들었는데

    자동교체에서(exe파일교체해서)

    1.copy /y e:\clean7.vhd e:\win7-diff.vhd(참고로 저는e디스크로잡히네요)

    이케해서 멀티부팅 만들어서 하면안되는데-몇번을시도해봤지만

    2.copy /y d:\win7-diff.vhd e:\win7-diff.vhd (d디스트에 copy본)

    이렇게하면 자동교체부팅까지 되는데 왜그런가요..



    지금 (C.D.E)로파티션있고요-E.디스트에

    부모(win7.vhd<6.8기가> ,win7-diff.vhd<700메가정도> ,clean7.vhd<107kb)

    다있고요 D.디스크에 win7-diff.vhd<107kb> 카피한거있습니다.



    현재부팅메뉴

    1.윈도우7 -일반윈도7설치

    2.자식(VHD)

    3.부모(VHD)

    4.PE

    5.VHS자동교체

    부팅메뉴 이렇게나오거든요



    너무 무치라서 염치없지만 하도궁금해서 질문 해봅니다. 몇번을해도 똑같네요

    님의 블로그보면서 술도 많이줄이고 재미도느껴봅니다^^

    -@컴한지 이제한달정도된 노땅입니다.ㅠㅠ

    답글삭제
  68. @아이따 - 2009/12/14 21:57
    http://snoopybox.co.kr/851



    위 글을 참조하세요. VHD 부팅파일 생성해주기 전에 먼저 C를 포맷해주시면 됩니다.

    답글삭제
  69. @왕초보입문기 - 2009/12/14 23:51
    정말 신기한 증상이네요. 1은 안되고 2는 된다니...



    제 생각에 1 방식을 제가 소개해드린 FOR 구문으로 한번 변경해보시겠어요? 그럼 혹시 될지도 ^^;;



    그런데 컴퓨터 한달 하신것 치고는 매우 수준높으시네요. 보통 한달정도 하신 분들은 이런거 해볼 엄두도 못 내거든요 ㅎㅎ

    답글삭제
  70. 1.@echo off



    for %%A in (E:) do if exist %%A\clean7.vhd copy /y %%A\clean7.vhd %%A\win7-diff.vhd



    exit



    2.copy /y e:\clean7.vhd e:\win7-diff.vhd



    님께서 하신말씀데로 1번으로 setup교체해서하니까 간단히 자동교체되네요.

    아직2번으로는 안되는것이 좀궁금하긴하지만 1.2번이 서로다른 명령어인거 같네요^^



    (ㅎㅎ 시작표시줄에 메모장갖다놓고 복사.붙여놓기 내공으로 작업했어요)

    컴맹인데두 그렇게 어렵지않게 설명해주신데로만하니까 되던데요.토욜 일욜심심해서^^



    출근전 두서없는글 띄워봅니다.즐건 하루되세요. 두루두루 감사합니다^^

    답글삭제
  71. @왕초보입문기 - 2009/12/15 06:59
    참 신기한 현상이네요 ^^

    답글삭제
  72. 메뉴에서 vhd 파일 교체하기를 누르면

    윈도우 부팅이 안된다고 나옵니다.

    "필요한 장치를 찾을수 없다".....

    답글삭제
  73. @들국화 - 2009/12/15 17:50
    boot.wim 파일 (또는 이름을 변경하셨다면 copy.wim 파일이겠죠) 을 부팅메뉴에 등록하시는 과정에서 잘못하신 것 같습니다. 제가 빨간색으로 표시한 부분은 각자 환경에 맞게 적어주셔야 합니다.

    답글삭제
  74. @snoopy - 2009/12/15 20:14
    감사합니다. 환경설정에 문제가 있었네요

    한가지 더 궁금한점은 위 댓글중



    /s 다음에는 스크립트를 지정해야 합니다.



    sel vdisk file=c:\win7-diff.vhd

    merge vdisk depth=1

    exit



    까지를 텍스트파일로 저장한다음 그 파일을 diskpart /s 다음에 적어줘야겠지요.



    이 부분이 이해가 잘 안되네요...

    diskpart /s *****.txt 이런식으로 하는건가요



    떠 먹여줘도 잘 못먹네요.. 죄송합니다

    답글삭제
  75. @들국화 - 2009/12/15 17:50
    네 그렇게 하시면 됩니다.



    대부분의 명령어는 /? 붙이시면 사용 가능한 옵션이 나옵니다.

    답글삭제
  76. 헐헐 클낫다 저번에 differting VHD적용시키는걸 잊어버린ㄷㄷ;

    답글삭제
  77. 스누피님의 강좌를보면서 윈도우7에 적응중인 초보입니다..^^..

    궁금한게 있어서 질문하나 드립니다..^^~

    부모 vhd 와 자식 vhd 생성시 자식 vhd의 용량제한은 어떻게 되나요..?

    부모vhd 생성시 설정한 최대용량에 자식 vhd 용량이 포함이 되는걸까요..^^?

    아니면 따로 따로 만들어진 vhd 라 자식vhd용량은 부모vhd랑 따로 늘어나는건지 궁금해서요..^^

    답글삭제
  78. 참고하세요 ㅜㅜ

    이거 할때 전 왜 자꾸 복사가 않되나 고생했는데

    이상하게도 파일이 있다고 않되더라구요 ㅜㅜ

    그래서 삭제하는 스크립트 넣구 했습니다.

    그리고 또하나

    원본 파일들을 숨김파일로 지정하니까 못찾네요. 괜히 깔끔하게 한다고 하다가 개고생 했습니다. ㅋㅋㅋ

    답글삭제