요약:
VBoxManage.exe modifyhd --resize
디스크 이미지의 논리적 크기 (게스트 OS에서 볼 수있는 크기)를 늘릴 수는 있지만 줄일 수는 없습니다.
VBoxManage.exe modifyhd inputfile.vdi --compact
실제 디스크 이미지 크기 (호스트 OS에서 볼 수있는 디스크의 이미지 파일 크기)를 줄일 수 있습니다. 그러나 이것은 논리 디스크 크기를 변경하지 않습니다. 이 방법은 게스트 OS에서 먼저 여유 공간이 0으로 설정된 경우에만 작동합니다.
modifyhd
동적 형식 변형 ( "동적 할당 이미지")에서만 작동합니다.
modifyhd
VDI 및 VHD 이미지 형식에서만 작동합니다.
- 스냅 샷을 사용하는 경우 "Snapshots"하위 폴더에서 최신 스냅 샷 VDI를 복제해야합니다.
자세한 내용은 8.23 절을 참조하십시오 . 매뉴얼의 VBoxManage modifyhd .
VDI의 논리 디스크 크기를 줄이는 이유는 아직 구현되지 않았기 때문에 발생할 수있는 데이터 손상을 방지하고 그 결과 부팅 할 수없는 VM이 있기 때문입니다. 따라서 --resize
옵션을 사용할 때 새 디스크 크기는 현재 크기보다 커야합니다. 현재 크기보다 작거나 같을 수 없습니다. 즉, 40GB 디스크는 41GB 이상으로 크기를 조정할 수 있으며 40GB (단순한) 또는 39GB 이하로 크기를 조정할 수 없습니다.
이전 버전의 VirtualBox는 VDI 파일을 "고정"형식 가변으로 만들었습니다. 새로운 기본 설정은 이제 새로운 VDI (가상 디스크 이미지) 파일을 만들 때 "동적"형식 변형을 만드는 것입니다. (동적 형식 변형이 도입 된 이후로 어떤 버전이든 도입 된 것 같습니다.)
따라서 "이 형식에 대한 작업이 아직 구현되지 않았다"는 오류 메시지는 VDI 파일이 "고정 된"형식 변형을 사용한다는 것을 의미합니다. 이 문제를 해결하려면 clonehd
명령을 사용하여 VDI 파일을 복제해야합니다 . 현재 VDI 파일의 형식 변형을 보려면 showhdinfo
명령을 사용할 수 있습니다 .
작업 예
현재 디스크에 대한 VDI 정보를 표시합니다.
입력 명령 : vboxmanage.exe showhdinfo path\inputfile.vdi
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi"
UUID: 132e9af1-0428-49f4-bc45-4d84680e17f5
Parent UUID: base
State: created
Type: normal (base)
Location: C:\Users\Name\VirtualBox VMs\sg2_win7_x64_lab\sg2_win7_x64_lab.
vdi
Storage format: VDI
Format variant: fixed default
Capacity: 40960 MBytes
Size on disk: 40962 MBytes
In use by VMs: sg2_win7_x64_lab (UUID: dcd106b3-7ed6-4f19-ad94-820ab4dc10d3)
C:\Program Files\Oracle\VirtualBox>
"고정 기본값"이라고 표시된 부분을 참조하십시오. 따라서 크기를 조정하려고 할 때 위의 오류가 발생합니다.
이전 VDI 파일을 새 VDI 파일로 복제하십시오.
입력 명령 : vboxmanage.exe clonehd path\inputfile.vdi path\outputfile.vdi
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe clonehd "%userprofile%\virtual
box vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi" "%userprofile%\virtualbox vms\sg2
_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 34dafa68-3093-4946-926a-8237ea263
e5c
C:\Program Files\Oracle\VirtualBox>
oil! 이전 파일이 이제 새 파일로 복제되었습니다. 새 VirtualBox 버전의 기본 설정은 "동적"형식 변형을 사용하는 것이므로이를 명시 적으로 정의 할 필요는 없습니다. 그러나 이전 버전의 VirtualBox로 작업하는 경우 향후 버전의 VirtualBox와의 호환성 및 / 또는 유연성을 향상시키기 위해 옵션을 "동적"(사용 가능한 경우)으로 설정할 수 있습니다.
복제 된 디스크에 대한 VDI 정보를 표시합니다.
입력 명령 : vboxmanage.exe showhdinfo path\inputfile_clone.vdi
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
UUID: 34dafa68-3093-4946-926a-8237ea263e5c
Parent UUID: base
State: created
Type: normal (base)
Location: C:\Users\Name\virtualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_
clone.vdi
Storage format: VDI
Format variant: dynamic default
Capacity: 40960 MBytes
Size on disk: 7806 MBytes
C:\Program Files\Oracle\VirtualBox>
이제 어떻게 "동적 기본값"이라고 표시되어 있습니까? 멋지다!
(여기서 참고로 여기에 실제 크기로 7806MB라고 표시된 이유는 --compact
동적 형식 변형으로의 변환을 강제하기 위해 원본 VDI 파일 의 옵션을 사용했기 때문 입니다. VirtualBox 포럼에서 읽은 내용 일 것입니다. 이전 버전과 함께 작동했을 것이므로 시도해 볼 수도 있다고 생각했습니다.
복제 된 디스크 크기 조정
입력 명령 : vboxmanage.exe modifyhd path\inputfile.vdi --resize 51200
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd "%userprofile%\virtua
lbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi" --resize 51200
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
C:\Program Files\Oracle\VirtualBox>
성공! 더 이상 형식 불필요하지 않습니다. 원본 디스크가 아닌 새로운 복제 디스크의 크기를 조정해야합니다. 크기는 MB로 표시됩니다. 예 51200
를 들어 50G
(또는 "GB")를 사용할 수 있다고 생각합니다 . --resizebyte
크기를 바이트 단위로 표현하는 데 사용할 수있는 옵션도 있습니다.
크기 조정 된 복제 디스크에 대한 VDI 정보를 표시하십시오.
입력 명령 : vboxmanage.exe showhdinfo path\inputfile_clone.vdi
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
UUID: 34dafa68-3093-4946-926a-8237ea263e5c
Parent UUID: base
State: created
Type: normal (base)
Location: C:\Users\Name\virtualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_
clone.vdi
Storage format: VDI
Format variant: dynamic default
Capacity: 51200 MBytes
Size on disk: 7806 MBytes
C:\Program Files\Oracle\VirtualBox>
그게 다야! 여기에서이 복제 된 드라이브를 VM의 새 VDI로 추가해야합니다. 당신은 VirtualBox 안에서 그렇게합니다. 나는 그것에 들어 가지 않을 것입니다. 지금까지 이것을 읽고 이해했다면 더 이상 안내 할 필요가 없습니다. 이전의 "고정 된"파일을 삭제하거나 백업으로 남겨 둘 수 있습니다. 원본 소스 파일을 삭제하기 전에 새 VDI 파일을 테스트하십시오.
노트! 새로운 크기의 복제 된 디스크가 즉시 표시되지 않습니다. VM을 부팅 한 다음 파티션 관리 도구를 사용하여 파티션을 확장하여 가상 디스크를 채우거나 더 많은 파티션을 만들어야합니다. Windows의 경우, 그냥 실행 diskmgmt.msc
하면 파티션을 확장 할 수 있습니다.
스크린 샷
참고