윈 도 우 자식 VHDX 부팅, 해결 방법입니다
2012.11.05 08:00
win7에서 vhd만 자식으로 연결하여 몇달 사용해봤는데요
win8에서 vhdx는 어쩐지 부모vhdx는 잘 부팅이 되는데
자식 vhdx로 부팅을 하면 시작도 하지 못 하네요.
웃기는 점은 처음에는 부팅이 됩니다.
부모vhdx로 부팅 후에 다시 자식으로 부팅하면 영영 부팅이 안 됩니다
이 이상한 현상을 겪는 분들이 많아서 이 글을 씁니다.
이유는 vhdx는 부모파일이 바뀌면 다시 자식vhdx를 만들어줘야 합니다 orz (부팅만 해도 여러 파일들이 수정됩니다.)
자식vhdx로만 부팅하시면 (교대로 하는 부팅 포함) 괜찮습니다.
오늘 테스트를 해보니까 확실하더군요. . .
이제 본격적으로 C드라이브에 win8 vhdx를 사용하시는 분들 중에 자식vhdx까지 사용하시려는 분들은...
모든 작업은 PE의 cmd창에서 진행합니다.(아차,vhdx 부팅하시려면 4.0PE가 필요합니다)
* 좋은 것은 밑에 있습니다 ㅎㅎ
format /q c:
:일단 C를 빠른 포맷합니다
diskpart
rem 여기부터 전부 다 붙여넣기 합니다.
create vdisk file=c:\Win8_Pro_K.vhdx maximum=30720 type=expandable
rem vhdx이름과 용량을 변경하세요. 용량은 MB입니다(30G). 고정으로 하시려면 fixed
sel vdi file=c:\Win8_Pro_K.vhdx
rem 역시 vhdx 이름 변경해주세요
attach vdi
rem vhdx 연결,마운트 하는 겁니다
cre par pri
rem vhdx에 파티션을 만들어주는 겁니다
format fs=ntfs quick label=vhdx
rem vhdx를 포맷을 하는겁니다. 빠른 포맷. vhdx 볼륨 라벨(이름)은 변경하셔도 됩니다.
ass letter=j
rem vhdx 드라이브 문자할당 합니다.
exit
:diskpart를 종료합니다
d:\imagex.exe /apply "d:\sources\install.wim" 1 j:\
:마운트한 vhdx에 install.wim파일을 압축해제 합니다
bcdboot j:\windows /s c:
:vhdx를 c드라이브에 부팅파일 만드는 겁니다. 이대로 사용하시면 됩니다.
bcdedit /store c:\boot\bcd /set {default} bootmenupolicy legacy
:win7형식 부팅메뉴..win8형식으로 부팅하면 자꾸 처음으로 돌아가서 부팅을 합니다;; 그래서..
:여기까지 한꺼번에 붙여넣기 하세요(설명 포함해도 됩니다) 주루룩 되는 걸 보시고 놀라실 겁니다 ㅎㅎ
2번째로 vhdx 상태로 다운 받으신 분들은...
역시 PE에서 작업을 합니다.
format /q c:
:일단 C를 빠른 포맷합니다
diskpart
rem 여기부터 붙여넣기 합니다.
sel vdi file=c:\Win8_Pro_K.vhdx
rem 역시 vhdx 이름 변경해주세요
attach vdi
rem vhdx 연결,마운트 하는 겁니다
lis vol
rem 볼륨확인 합니다. 드라이브 문자 확인
exit
:diskpart 종료합니다
: 일단 여기까지 붙여넣기 하시면 됩니다.
bcdboot j:\windows /s c:
: c드라이브에 부팅파일 만드는 겁니다. j:은 방금 확인한 걸로 변경해주세요.
bcdedit /store c:\boot\bcd /set {default} bootmenupolicy legacy
:win7형식 부팅메뉴..win8형식으로 부팅하면 자꾸 처음으로 돌아가서 부팅을 합니다;; 그래서..
위 방법보다는 좀 더 단순하죠. 이미 설치가 되어 있으니까요.
3번째로 기존 윈도는 그대로 두시고 다운 받으신 vhdx만 멀티부팅으로 하시려는 분들도 계시더군요.
이건 그냥 윈도상에서 해결됩니다
diskmgmt.msc 디스크관리 ->동작 ->vhd열기
bcdboot j:\windows
: j:은 방금 확인한 걸로 변경해주세요.
bcdedit /set {default} bootmenupolicy legacy
: 역시 멀티부팅이라서 7형식으로 해야 빠릅니다.
일단 이렇게 하신 다음에 재부팅하셔서 부모파일을 설치를 해주세요
이것 저것 다 설치하시고 다시 PE로 오십니다. 여기서 제 나름대로 방금 작품?을 하나 만들었습니다
부모파일 업데이트 할때마다 자식vhdx를 만드는 것이 귀찮은 작업이죠.
그래서 클릭만 하면 자동으로 모든게 다 되는 bat파일을 만들었습니다.
개인적으로는 vhdx 사용도 안 하는데 이게 무슨...
주의할 것은 2번째부터 자식vhdx를 만드실 때는
먼저, 부모파일로 부팅하셨을 때는 잊지 말고 msconfig ->부팅에서 자식vhdx를 다 삭제해주세요.
계속 부팅 메뉴가 쌓여가기 때문이죠.(나중에 자식vhdx에서 해주셔도 됩니다. 부팅파일은 vhdx와 별도로 있기 때문이죠)
bat파일 내용입니다.
바꾸실 것은 부모vhdx 3개만 하시면 되겠네요(이름을 위와 같이 하셨으면 그대로 사용가능합니다)
이 밑은 그냥 혹시나 해서 참고용이고요. 해당 안 되는 경우는 신경 안 써셔도 됩니다.
ace.vhdx는 교체용 파일이고요 son, son2가 교대로 부팅하는 자식vhdx입니다.
그냥 이대로 사용하시는 것이 편하죠. 여기서 또 한번 주루룩 자동으로 다 되는 것에 놀라실 듯?;;
*가장 주의할 점: 밑의 파일은 클릭만 하면 다 끝나서야 멈춥니다;;
그러니까 미리 변경하실 것은 변경하고 클릭하세요.
혹시나해서..C드라이브를 기준으로 만든 겁니다. C가 아니면 c:을 전부 바꿔주셔야 합니다
vhdx파일 경로만 아니라 bcdedit /store c:\boot\bcd /set %%a osdevice vhd="%vhdaddpathbcd%"
이런 것 엄청 많죠. 전부 다 바꾸셔야 합니다. 한꺼번에 바꾸기를 이용하세요 ctrl+h c:\boot를 d:\boot 이런 식으로요.
기존 윈도 사용하시는 분들은 vhdx파일 경로만 바꾸시면 됩니다. c:\boot 이건 윈도만 C드라이브에 설치되어 있으면 됩니다.
vhdx는 어디에 있건 관계없죠.
@echo off
title VHDX 자식2개 부팅등록하기
mode con cols=70 lines=200
cd /d %~dp0
:============== 기존 자식 VHDX 삭제하기 =================
del c:\ace.vhdx
del c:\son.vhdx
del c:\son2.vhdx
:처음 자식vhdx 만드실때 실행해도 상관없습니다. 삭제할게 없다고 에러가 나봐야 ..
:=============== 3가지 자식 VHDX 만들기, 경로와 파일 이름에 주의해주세요.================
:ace.vhdx는 교체파일입니다. 부팅등록은 하지마세요.
echo cre vdi file=c:\ace.vhdx parent=c:\Win8_Pro_K.vhdx >temp.txt
echo cre vdi file=c:\son.vhdx parent=c:\Win8_Pro_K.vhdx >>temp.txt
echo cre vdi file=c:\son2.vhdx parent=c:\Win8_Pro_K.vhdx >>temp.txt
diskpart /s temp.txt
del temp.txt
:======================= 첫번째 자식 VHDX 부팅등록 ========================
:경로를 입력해주세요 c:\son.vhdx 이런 것이 다르면 변경 입력해주세요.
set vhdaddpath=c:\son.vhdx
:부팅 이름을 정해주세요
set vhdaddmenu=Son.vhdx
:밑에 2번째 vhdx파일도 입력해주시고 실행하세요.
:이런 건 복잡해도 신경 안 쓰셔도 됩니다. 부팅 등록하는 것이죠. c드라이브만 맞는지 확인하시면 됩니다.
for /f "tokens=1 delims=\" %%a in ("%vhdaddpath%") do set vhdaddpath1=%%a
for /f "tokens=2 delims=:" %%a in ("%vhdaddpath%") do set vhdaddpath2=%%a
set vhdaddpathbcd=[%vhdaddpath1%]%vhdaddpath2%
bcdedit /store c:\boot\bcd /create /application OSLOADER /d "%vhdaddmenu%" > %temp%\guid.txt
for /f "tokens=1 usebackq" %%a in (%temp%\guid.txt) do (
bcdedit /store c:\boot\bcd /set %%a device vhd="%vhdaddpathbcd%"
if errorlevel 1 goto _vhdaddnotkor
bcdedit /store c:\boot\bcd /set %%a osdevice vhd="%vhdaddpathbcd%"
bcdedit /store c:\boot\bcd /set %%a path \Windows\system32\winload.exe
bcdedit /store c:\boot\bcd /set %%a locale ko-KR
bcdedit /store c:\boot\bcd /set %%a inherit {bootloadersettings}
bcdedit /store c:\boot\bcd /set %%a systemroot \Windows
bcdedit /store c:\boot\bcd /set %%a nx OptIn
bcdedit /store c:\boot\bcd /set %%a detecthal Yes
bcdedit /store c:\boot\bcd /displayorder %%a /addlast
bcdedit /store c:\boot\bcd /timeout 30
goto _vhdaddsuccess
)
:_vhdaddnotkor
for /f "tokens=2 usebackq delims={" %%a in (%temp%\guid.txt) do (
for /f "tokens=1 usebackq delims=}" %%b in ('%%a') do (
bcdedit /store c:\boot\bcd /set {%%b} device vhd="%vhdaddpathbcd%"
bcdedit /store c:\boot\bcd /set {%%b} osdevice vhd="%vhdaddpathbcd%"
bcdedit /store c:\boot\bcd /set {%%b} path \Windows\system32\winload.exe
bcdedit /store c:\boot\bcd /set {%%b} locale ko-KR
bcdedit /store c:\boot\bcd /set {%%b} inherit {bootloadersettings}
bcdedit /store c:\boot\bcd /set {%%b} systemroot \Windows
bcdedit /store c:\boot\bcd /set {%%b} nx OptIn
bcdedit /store c:\boot\bcd /set {%%b} detecthal Yes
bcdedit /store c:\boot\bcd /displayorder {%%b} /addlast
bcdedit /store c:\boot\bcd /timeout 30
goto _vhdaddsuccess
)
:_vhdaddsuccess
:============================ 2번재 VHDX 파일 등록 ====================================
:경로를 입력해주세요
set vhdaddpath=c:\son2.vhdx
:부팅 이름을 정해주세요
set vhdaddmenu=Son2.vhdx
for /f "tokens=1 delims=\" %%a in ("%vhdaddpath%") do set vhdaddpath1=%%a
for /f "tokens=2 delims=:" %%a in ("%vhdaddpath%") do set vhdaddpath2=%%a
set vhdaddpathbcd=[%vhdaddpath1%]%vhdaddpath2%
bcdedit /store c:\boot\bcd /create /application OSLOADER /d "%vhdaddmenu%" > %temp%\guid.txt
for /f "tokens=1 usebackq" %%a in (%temp%\guid.txt) do (
bcdedit /store c:\boot\bcd /set %%a device vhd="%vhdaddpathbcd%"
if errorlevel 1 goto _vhdaddnotkor
bcdedit /store c:\boot\bcd /set %%a osdevice vhd="%vhdaddpathbcd%"
bcdedit /store c:\boot\bcd /set %%a path \Windows\system32\winload.exe
bcdedit /store c:\boot\bcd /set %%a locale ko-KR
bcdedit /store c:\boot\bcd /set %%a inherit {bootloadersettings}
bcdedit /store c:\boot\bcd /set %%a systemroot \Windows
bcdedit /store c:\boot\bcd /set %%a nx OptIn
bcdedit /store c:\boot\bcd /set %%a detecthal Yes
bcdedit /store c:\boot\bcd /displayorder %%a /addlast
bcdedit /store c:\boot\bcd /timeout 30
goto _vhdaddsuccess
)
:_vhdaddnotkor
for /f "tokens=2 usebackq delims={" %%a in (%temp%\guid.txt) do (
for /f "tokens=1 usebackq delims=}" %%b in ('%%a') do (
bcdedit /store c:\boot\bcd /set {%%b} device vhd="%vhdaddpathbcd%"
bcdedit /store c:\boot\bcd /set {%%b} osdevice vhd="%vhdaddpathbcd%"
bcdedit /store c:\boot\bcd /set {%%b} path \Windows\system32\winload.exe
bcdedit /store c:\boot\bcd /set {%%b} locale ko-KR
bcdedit /store c:\boot\bcd /set {%%b} inherit {bootloadersettings}
bcdedit /store c:\boot\bcd /set {%%b} systemroot \Windows
bcdedit /store c:\boot\bcd /set {%%b} nx OptIn
bcdedit /store c:\boot\bcd /set {%%b} detecthal Yes
bcdedit /store c:\boot\bcd /displayorder {%%b} /addlast
bcdedit /store c:\boot\bcd /timeout 30
goto _vhdaddsuccess
)
:_vhdaddsuccess
bcdedit /store c:\boot\bcd /set {default} bootmenupolicy legacy
:win7형식으로 부팅하는 겁니다. win8 형식으로 하면 다시 처음부터 부팅해서 느립니다
bcdedit /store c:\boot\bcd
echo.
pause
exit
방금 테스트 완료했습니다.
이건 윈도상에서 한 겁니다. PE에서 한 거는 미처 캡처를 못 했군요.
마지막으로 부팅할때마다 자식vhdx 자동교체하는 건 vhdx가 부모파일 변하면 안 된다고 해서 난감하더군요
이것도 어느정도 자동화가 가능하군요. 반자동화.
@echo off
copy c:\ace.vhdx c:\son.vhdx && bcdedit /bootsequence {65953bd6-5cd7-11e0-b01e-00016c61a9ba}
if errorlevel 1 copy c:\ace.vhdx c:\son2.vhdx && bcdedit /bootsequence {65953bd7-5cd7-11e0-b01e-00016c61a9ba}
shutdown /r /t 0
exit
{ } 이런 것은 방금 자식vhdx 등록하실 때 나오는 화면에서 위 창 제목에서 우클릭으로 '편집'->'표시'로 하여
복사,붙여넣기 하시면 됩니다. 실행하시면 다른 자식vhdx 초기화 한 후에 바로 재부팅됩니다.
부팅 선택조차 안 되니까 다른 자식vhdx로 부팅하실 때만 이용하세요. 지금 부팅메뉴를 선택하는 것과 같습니다.
근데 if errorlevel 1 은 없어도 되겠는데요 ;; 괜히 한 듯..중간에 && 이 비슷한 역할이죠.
또 조금 전에는 win8이 있는 상태에서 vhdx를 만들어서 테스트해봤는데요
편하기는 제일 편하네요. 윈도 상에서 모든 작업을 다 할 수 있기 때문입니다. 맛보기로는 이게 나을 듯..
댓글 [10]
-
wopd 2012.11.05 08:54
-
l운l 2012.11.05 10:31
정말 찾고 있던 정보내요 저도 애먹었었는대 . 임시로 VHD ONEKEY로 하니까 자식 부팅이 되더군요 그래서 그걸로 쓰고 있었는대
이걸로 하면 되겠내요 감사합니다~@!
-
라파엘(4WIN8) 2012.11.05 11:14
상세하고 친절한 설명 감사합니다.
잘 따라서 해보겠습니다.
-
김성재 2012.11.06 01:33
멋진 강좌 감사드립니다.
궁금한게 하나 있는데 REM 일케 쓰신건 뭔지 모르겠네요.
-
ITcraft 2012.11.06 02:10
주석입니다. 사람들이 이해하기 편하라고 써주신 거죠.
-
김성재 2012.11.06 03:19
감사합니다...이해가 가는군요.
-
김성재 2012.11.06 03:19
일 끝내구 오자마자 이글만 몇번을 정독하네요.
자식VHDX부팅등록하기.bat <- 이건 부모VHDX를 업데이트나 프로그램 설치 등이 필요할때 부모VHDX로 부팅시에만 실행시켜주면
되는 파일인거죠?
그리고 반자동화 라고 해주신 구문은 자식VHDX에서 다음부팅시 깨끗한 자식VHDX로 하고 싶을때만 실행시켜주면 되는거죠?
저는 이미 윈7과 윈8을 VHD로 자식들이 부팅시마다 자동교체 되게끔 해놨는데...
굳이 윈8을 VHDX로 바꿔줄 필요는 없겠죠?
VHDX가 VHD와 비교해서 디스크지원하는 크기외엔 딱히 더 장점은 없죠?
왕초보라서 몇번을 읽어야 조금씩 이해가 되는군요...역시 매우 어렵습니다...ㅜㅜ
-
suk 2012.11.06 06:16
네, 맞습니다. 부모파일 부팅 했을 때만 필요합니다.
부팅만 해도 여러 부팅관련 파일들이 수정이 됩니다. 부모파일이 변경되는 것이죠.
자식으로만 부팅하면 안 하셔도 됩니다.
반자동화 역시 다른 자식으로 초기화하여 부팅할 때 하는 것이 맞고요
저도 딱히 vhdx가 vhd보다 더 좋은 점은 모르지만요
아무래도 vhd에서 진화한 것이 vhdx라서 더 좋겠죠
제가 알기로는 정전이 되어도 복구하는 기능이 있다고 하네요.
또 동적 확장이 기본으로 되어 있죠. (vhd는 고정이 기본이죠)
그만큼 동적 확장에 최적화가 되어 있다는 의미겠죠.
그렇지만 딱히 불편하신 것 없으시면 그냥 쓰던대로 하시는게 더 편하죠 ㅎ
p.s. rem은 diskpart에서는 :해도 입력이 되어 에러 메시지가 나와서 할 수 없이 rem으로 했지요.
설명 포함하여 전부 다 복사, 붙여넣기 하기 편하도록 하기 위한 장치죠.
-
아칠로고스 2012.11.07 05:02 이 문제로 고민하고 있는 중입니다. 좀더 배워야 할 것 같네요.
-
만쓰 2012.11.07 18:08
좋은 강좌 감사합니다.
번호 | 제목 | 글쓴이 | 조회 | 추천 | 등록일 |
---|---|---|---|---|---|
[공지] | 강좌 작성간 참고해주세요 | gooddew | - | - | - |
1643 | 윈 도 우| 윈8 팁 [5] | 지그재그 | 16862 | 9 | 11-12 |
1642 | 윈 도 우| 윈8 구입 설치후 재설치 [9] | camaver | 10872 | 1 | 11-11 |
1641 | 윈 도 우| 윈도우8 다국어 언어팩 설치 방법(영문 기준) [7] | chkid | 51230 | 5 | 11-11 |
1640 | 윈 도 우| 자신의 운영체제 제품키 보기를 원하시는분들... [8] | LastID | 13394 | 1 | 11-11 |
1639 | 윈 도 우| 윈도우 8 메트로 UI 기본 앱 바로가기 [4] | 머스빅 | 12234 | 2 | 11-10 |
1638 | 윈 도 우| IE10 으로 윈도우포럼 왔을때... [11] | LastID | 11390 | 3 | 11-10 |
1637 | 윈 도 우| UEFI 설치의 모든것 [13] | LazyFlow | 20798 | 4 | 11-09 |
1636 | 윈 도 우| UEFI로 설치한 윈8에서 vhdx 부팅메뉴 추가 [12] | 바람의언덕 | 11044 | 4 | 11-09 |
1635 | 윈 도 우| 삼실 13 볼륨 사용기한 조정하기 [5] | 라임바바 | 9817 | 2 | 11-09 |
1634 | 윈 도 우| USB UEFI 설치 팁 [29] | 보[boram]람 | 18784 | 3 | 11-09 |
1633 | 윈 도 우| 볼륨 믹서 프로그램별 설정 초기화 [1] |
|
11153 | 3 | 11-08 |
1632 | 윈 도 우| 윈도우 8 레지스트리 파일 몇개올립니다. [14] | 머스빅 | 16607 | 10 | 11-08 |
1631 | 소프트웨어| 오피스 2013 설치시 Windows Font Cache Service 메세지가 ... [3] | 해병대애인 | 17026 | 1 | 11-07 |
1630 | 윈 도 우| 윈도우8 오버스캔 문제 [3] | emd | 11916 | 1 | 11-06 |
1629 | 소프트웨어| 파이어폭스, 페일문에서 글자가 부분적으로 깨질 때 | 페이지 | 7768 | 1 | 11-05 |
» | 윈 도 우| 자식 VHDX 부팅, 해결 방법입니다 [10] | suk | 12511 | 7 | 11-05 |
1627 | 소프트웨어| [ 동영상 ] 미국 마이크로소프트 오피스 2013 전화인증 [13] | gooddew | 23633 | 5 | 11-04 |
1626 | 윈 도 우| 인터넷 익스플로러 10 제거하기 [12] | chkid | 24821 | 2 | 11-04 |
1625 | 윈 도 우| 윈도우8의 새로운 "초기화", 외부미디어 없이 사... [7] | chkid | 14538 | 5 | 11-04 |
1624 | 윈 도 우| 윈도우8의 새로운 기능 "PC복구" 사용하기 [4] | chkid | 13256 | 3 | 11-04 |
좋은 정보 감사합니다.