VirtualBox에서 vhd 하드 드라이브의 크기를 조정 한 후 부팅 할 수 없음


15

Windows 7에서는 VirtualBox에 다른 Windows 7 VM을 설정했습니다. 잘 작동했습니다. 그런 다음 vhd HD 크기를 늘려야했습니다. 그래서 VBoxManage 유틸리티를 사용하여 다음과 같은 주석을 사용했습니다.

VBoxManage modifyhd "c:\VMs\Win7.vhd" --resize 30000

그런 다음 VM을 다시 실행하려고 시도했지만 부팅 할 수 없으며 다음 오류가 발생합니다.

치명적 : 부팅 가능한 매체를 찾을 수 없습니다! 시스템이 정지되었습니다.

그런 다음 VHD에서 무슨 일이 일어나고 있는지 확인하고 장치 관리에 첨부하려고 시도했는데 파일이나 디렉토리가 손상되어 읽을 수 없기 때문에 연결할 수 없습니다 .

여기에 무엇이 잘못 되었습니까? 어떻게 VHD 파일에 내 VM을 저장할 수 있습니까?


방금 똑같은 문제가 있었고 온라인에서 유용한 솔루션을 찾을 수 없으므로 Microsoft의 설명서에 따라 VHD를 직접 분석하기 시작했습니다. 현재 modifyhd의 구현에 블록 할당 테이블을 확장 한 후 데이터 블록에 대한 오프셋을 조정하지 않은 버그가있는 것 같습니다. 이것을 확인하기 위해 더 많은 경험을해야합니다.
billc.cn

VirtualBox 4.3.10에서 .vhd 파일의 크기를 조정했습니다. 블록 할당 테이블 포인터를 조정하지 않았을뿐만 아니라 블록 할당 테이블을 첫 번째 데이터 블록으로 확장하여 내 MBR 및 파티션 테이블을 덮어 썼습니다. VirtualBox를 사용하여 .vhd 파일의 크기를 조정하지 마십시오!
Aaron

답변:


12

불행히도 VBoxManage --resize 옵션에 대한 VirtualBox 설명서가 잘못되었습니다. 디스크 이미지의 크기 만 늘리면 모든 것이 제대로 작동하지 않습니다. 게스트 운영 체제가 디스크 이미지가 시뮬레이션하는 "드라이브"의 레이아웃을 알 수 있도록 이미지 내의 디스크 파티션 정보를 조정해야합니다. 파티션 편집기가있는 부팅 가능한 CD 이미지를 다운로드하고 해당 CD로 VM을 부팅하여이 조정을 수행합니다. 그런 다음 파티션 편집기를 사용하여 추가 된 공간을 사용하도록 디스크 이미지의 파티션을 조정하십시오.

여기에 좋은 절차가 있습니다 ; 4 단계로 건너 뛰십시오.


글쎄. 이것은 내가 방금 3 시간의 작업을 버렸다는 의미입니다. 정보 주셔서 감사합니다.
tugberk

4
나는 멋진 글쓰기를 따랐다. (내 vhd의 크기를 조정하고 부팅 할 수 없었지만) GParted는 하드 드라이브의 파티션을 표시하지 않았으며 할당되지 않은 공간은 50 기가였습니다. 그것은 modifyhd수리를 넘어서 드라이브를 망쳐 놓은 것을 의미합니까 ?
GSerg


1

나는 같은 문제가 있었고 GParted LiveCD를 사용하여 데이터를 검색했습니다.

  1. 복사 된 데이터를 수신 할 새 VHD 생성 (파티션 및 형식 생성)
  2. GParted LiveCD를 다운로드하고 VirtualBox에서 부팅
  3. 장치-> 데이터 구조 시도를 선택하십시오.
  4. 확인을 클릭하고 스캔 후보기를 클릭 한 후 / tmp / gparted-roview-XXXXXX를 마운트합니다.
  5. 터미널에서 두 번째 VHD를 마운트합니다 (sudo mount / dev / sdb1 / mnt).
  6. 파일을 복사하십시오 (sudo cp -R / tmp / gparted-roview-XXXXXX / * / mnt

그런 다음 가상 시스템을 종료하고 Windows 장치 관리자에 VHD를 마운트 할 수 있습니다.


1

여기서 그들은 문제를 설명합니다 (스페인어)

요약:

ㅏ. "vboxmanage modifyhd (resize)"는 많은 시스템 (Windows NT5, 9x, Server 및 x86 버전)에서 오류를 생성합니다. 결과는 손상된 파티션으로 복구하기가 매우 어렵습니다.

비. VDI와 관련된 모든 파일과 폴더가 포함 된 경로에서 "vboxmanage modifyhd (크기 변경)"(VDI 크기를 조정하려면)을 실행해야합니다. 이미지를 봐

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

추천:

"vboxmanage modifyhd"를 "vboxmanage clonehd"로 바꾸십시오.

  1. 새 가상 디스크 VDI를 작성하십시오 (확장하려는 크기로). 예 : Old.vdi에는 50GB가 있습니다. New.vdi는 100GB로 생성

    VBoxManage createhd --filename /path/New.vdi-크기 100000

  2. 다음 명령으로 복제하십시오.

    vboxmanage clonehd /path/Old.vdi /path/New.vdi-기존

참고 : 두 VDI가 동일한 경로에 있지 않아야합니다.

  1. New.vdi를 실행하고 Windows 컴퓨터 관리로 이동하여 디스크 공간 확장 (빈 공간 할당) 수동으로 수행하지 않으려면 AOMEI Partition Assistant Standard , GParted 및 기타 여러 가지 와 같은 무료 파티셔닝 응용 프로그램을 사용할 수 있습니다 .

답변을 업데이트

0

게스트가 실행되는 동안 modifyhd 명령을 실행했기 때문에 똑같은 문제가 발생했습니다. 공식 문서에는 스냅 샷을 먼저 삭제해야하고 게스트가 중지되었다는 내용은 없습니다.

내 계획은 기계가 실행되는 동안 디스크 크기를 조정하여 동적 볼륨을 즉시 증가시킬 수 있었기 때문입니다. 그러나 손상된 이미지로 어둠 속에 남아있는 전체 디스크 크기를 얻기 위해 컴퓨터를 재부팅했을 때 이것은 나쁜 생각이었습니다. 테스트 디스크로는 복원 할 수 없었습니다. Testdisk가 파티션을 찾았지만 파일 시스템이 심하게 손상되어 복구 할 수 없습니다.

따라서 조언하십시오 :

  1. 모든 스냅 샷을 기본 이미지로 병합
  2. 게스트 OS 종료

백업 이미지와 게스트 OS의 전원을 끈 상태에서 컴퓨터에서 절차를 반복했습니다.


0

이 버그로 인해 손상된 이미지를 복구 할 수있었습니다. 에디슨과 달리 갈라진 라이브 이미지는 아무것도 찾지 못했습니다. 내가 한 일은 다음과 같습니다.

  • 먼저 VHD에 대한 VBox 지원은 버그가 많고 끔찍하기 때문에를 사용하여 VHD를 VDI로 변환합니다 VBoxManage clonehd foo.vhd --format vdi foo.vdi. 이 단계를 건너 뛰면 이미지에서 파일을 복구 할 수 있지만 몇 번의 재부팅 후에 "자체가 끊어집니다". 버그가 실제로 VHD 파일을 망쳐 서 나중에 I / O가 "다시 깨뜨리는"방식으로 추측하고 있습니다. VBox는 VDI에 이러한 문제가없는 것 같습니다.

  • Windows 사전 설치 환경 인 WinPE로 부팅하십시오. 이 작업을 수행하는 방법 자체가 기사가 될 수 있습니다. 여기에 익숙하지 않은 경우 바로 가기가 있습니다. Windows 설치 DVD (Vista 이상)에서 부팅하고 GUI가 나타나면 shift-F10을 누르십시오. 그러면 명령 프롬프트가 나타납니다.

  • testdisk를 다운로드 하여 WinPE 이미지로 가져 오는 방법을 찾거나 간단한 USB 스틱이 작동하여 WinPE 환경에서 실행하십시오. (참고 : WinPE에는 32 비트 앱을위한 32 비트 호환성 레이어 인 WOW64가 없습니다. 따라서 64 비트 WinPE 설정에는 64 비트 테스트 디스크 바이너리가 필요했습니다.)

  • Testdisk가 파티션을 찾아서 복원했습니다.

  • 이 시점에서 파일이 복구되었지만 몇 가지 문제로 인해 부트 로더가 실패했습니다. 우선 내가 사용하는 diskpart파티션을 활성으로 표시 ( list disk, sel disk <disk number>, sel par 0, active). 더 이상 부팅하지 않습니다. WinPE로 돌아가서 삭제 \boot한 다음 bcdboot C:\windows /s C:부트 로더를 다시 설치하기 위해 실행 했습니다.

  • 결국 나는 chkdisk /R이미지가 정상인지 확인하기 위해 달렸다 . 몇 시간이 걸렸는데 아무런 문제가 없었습니다.


-1

나는 같은 문제가 있었고 GParted는 파티션을 전혀 인식하지 못했으며 할당되지 않은 공간으로 표시되었습니다. 이 시점에서 데이터가 손실 될 수 있음을 이해했습니다.

그런 다음 testdisk를 사용하여 하드 드라이브에서 손실 된 파티션을 찾은 것을 기억하므로 가상 디스크에서 시도해 보지 않겠습니까? 그리고 효과가있었습니다.

  1. 이 응답을 작성할 때 GParted에서 부팅하면 GParted에 "testdisk"가 포함됩니다. 터미널을 실행하거나 "sudo testdisk / dev / sda"또는 컴퓨터에 표시되는 모든 것을 실행하십시오. "sudo fdisk -l"을 실행하여 모든 디스크를 표시하십시오.
  2. 파티션 테이블을 분석하면 여전히 첫 번째 섹터에 있으므로 파티션을 즉시 검색합니다. 다음 링크에 지시 된대로 새 파티션, 테이블을 작성한 다음 GParted로 진행하여 복구를 계속하십시오. http://www.howtogeek.com/124622/how-to-enlarge-a-virtual-machines-disk-in-virtualbox 또는 vmware /
  3. 다음에이 작업을 수행하려면 먼저 VDISK 사본을 만드십시오.
  4. 아래 링크에서 새 VHD를 만든 다음 --existing으로 복제하는 것으로 나타났습니다. http://tips.kaali.co.uk/2012/03/16/expand-or-increase-the-size-of-virtual- box-vdi-dis / 아직 시도하지 않았지만 위의 지침으로 디스크를 복구했습니다.

잘하면 그것은 누군가를 돕는다.


링크 된 페이지가 변경되면 답변이 유효하지 않을 수 있으므로 참조 링크에서 답변의 필수 부분을 인용하십시오.
DavidPostill
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.