Windows에서 modifyhd 명령으로 고정 크기 VDI를 변경하는 방법은 무엇입니까?


70

VDI 파일의 크기를 변경하는 방법을 알아 내려고합니다. 나는 VirtualBox를 처음 접했고 많은 것을 배울 수있었습니다. 그러나 나는 기초에 매달려 있다고 생각합니다. 첫 게스트로 Windows 7을 이미 설치했습니다. 호스트는 Windows 7이기도합니다. 할당 할 디스크 공간이 확실하지 않아서 40GB의 VDI 크기와 고정 된 크기로 성능을 향상 시켰습니다. 그러나 지금 마음이 바뀌었고 다른 10GB를 추가하고 싶습니다. 프로그램을 클릭하고 도움말 메뉴 내용을 읽었지만 도움이되지 않습니다. 디스크 컨트롤러, SAS, SATA, SCSI, yada, yada에 대해 설명하지만 원하는 것은 아닙니다.

전 세계 웹에서 답을 찾았습니다 .VirtualBox 포럼에서는 가장 쉬운 방법을 원한다면 Gparted를 사용해야한다고 말합니다 (일부 모드는 끈적 끈적한 게시). 일부 사용자는 dd명령 사용에 대해 설명 합니다. 그러나 이것이 전부 리눅스입니다. 또한 SU에는 VDI 파일 크기의 증가 및 감소를 다루는 많은 질문이 있지만 Linux를 호스트로 사용하고 게스트로 Windows를 사용하는 것에 관한 것입니다.

VBoxManage 명령 으로이 작업을 수행하는 방법에 대한 이 멋진 블로그 게시물을 찾았 습니다 modifyhd. 이 사람은 Linux에서 호스트 OS로도하고 있습니다. 그는 심지어 VDI 파일에 대해 동일한 크기 (50GB)를 원했습니다. 그래서 어쨌든 시도해 보거나 깨뜨릴 것이라고 생각했습니다. 무엇이 잘못 될 수 있습니까? ... 어? 글쎄, 이것은 내가 얻은 추악한 놀라움입니다.

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd "%userprofile%\virtua
lbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi" --resize 51200
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage.exe: error: Resize hard disk operation for this format is not impleme
nted yet!

C:\Program Files\Oracle\VirtualBox>

에이

지금 무엇을 말합니까?! ... VDI 형식의 가상 하드 디스크 크기를 조정할 수 없습니까? 당신은 말하지 않습니까? 자신의 형식을 지원하지 않습니까? 이제는 어떻습니까?

VirtualBox 내부에서 몇 번의 클릭만으로 VDI 파일의 크기를 변경하는 간단한 방법이 실제로 있습니까? 진행중인 일이 있습니까?


4
VirtualBox의 품질에 대한 비난을 제거했습니다.이 질문에는 유용한 것이 없습니다.
썰매 타기

1
향후 참조를 위해 modifyhd현재 알려져 modifymedium있지만 이전 버전과 호환됩니다. virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi
djule5

답변:


121

요약:

  • 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하면 파티션을 확장 할 수 있습니다.

스크린 샷

에이 비 씨 디 이자형 에프 지

참고



좋은 눈! modifyhd 매개 변수를 수정했습니다. 이 점에 주목 해 주셔서 감사합니다.
Samir

2
정말 잘 작성된 답변입니다! IMHO 이것은 많은 투표를해야합니다.
Johan Karlsson

+1 : 여러분과 같은 사람들과 자유롭게 공유하는 지식은 StackExchange 생태계를 환상적인 자원으로 만듭니다!
Homunculus Reticulli

1
스냅 샷 을 사용하기 때문에 문제가있는 경우 virtualbox.org/ticket/9103을 살펴보십시오 . 기본적으로 스냅 샷 파일 자체에 modifymedium/ modifyhd작업 을 적용해야 합니다.
djule5

11

다음은 게스트 운영 체제로 Linux (Ubuntu 14.04)가 실행되는 Mac (OS X 10.9.4)에서 VirtualBox (v. 4.3.16) 고정 크기 디스크의 크기를 60GB 동적 디스크로 조정하는 데 매우 간단한 프로세스입니다.

Mac의 터미널에서 VDI 파일이있는 디렉토리에 CD를 넣고 다음을 입력하십시오.

VBoxManage showhdinfo mydisk.vdi  
VBoxManage clonehd mydisk.vdi mydiskClone.vdi  
VBoxManage modifyhd mydiskClone.vdi --resize 61440  
VBoxManage showhdinfo mydiskClone.vdi

VirtualBox 응용 프로그램 저장소 섹션에서 mydiskClone.vdi를 두 번째 HD로 추가 한 다음 VM을 정상적으로 시작하십시오.

게스트 OS의 셸에서 다음을 입력하십시오.

sudo fdisk /dev/sdb
- delete all partitions
- create new partition on full disk

게스트를 재부팅하십시오. 다시 시작되면 쉘로 다시 가서 다음을 입력하십시오.

sudo resize2fs /dev/sdb1

게스트 OS를 종료하십시오.

VirtualBox 응용 프로그램 저장소 섹션에서 다시 mydiskClone.vdi를 부팅 디스크로 설정하십시오. 그런 다음 게스트 OS를 시작하고 파일 브라우저에서 "컴퓨터"속성을 사용하여 새 디스크 크기를 확인하십시오.


이 답변은 의미가 없습니다. 먼저 / dev / sdb에 하나의 큰 파티션을 만든 다음 크기를 조정하지만 먼저 파일 시스템을 만들지는 않습니다. 원래 파티션을 복사하는 단계를 잊었습니까?
썰매 시간

5

복제는 실제로 더 나은 솔루션이며 더 쉬운 방법이 있습니다.

파일 메뉴에서 Virtual Media Manager를 선택한 다음 복사를 클릭하십시오. 소스는 원래 고정 크기의 vdi 하드 디스크가되고 대상은 사용자가 선택한 새 항목이됩니다 (새 옵션 포함).


이것은 sammyg의 답변의 일부입니다.
Efren

4

좋아, 그래서 복제하지 않고 일어났다 .

Ubuntu가있는 100GB VDI 파일 (고정 형식)이 있습니다. 잘 작동합니다. VM을 축소하여 호스트의 일부 공간을 확보하고 싶었습니다.

단계 :

  1. 대청소

원치 않는 파일을 삭제했습니다. 45GB 무료 해제하려면 30GB 만 필요합니다.

  1. 게스트 OS 수정

파티션이 하나뿐이므로 게스트 우분투 내부에서 아무것도 할 수 없습니다. VM에 Ubuntu Live를 마운트하고 부팅했습니다.

gparted파티션을 70GB로 축소하는 데 사용 됩니다. 의 미사용 공간에 새 파티션을 만들었습니다 ext4.

  1. 여유 공간을 닦으십시오

새 파티션의 여유 공간 (30GB)

이 가이드 를 따르십시오 : zerofree를 사용하여 게스트 및 호스트 OS로 Ubuntu의 가상 하드 드라이브 축소

내 새 파티션은 /dev/sda3입니다.

$ sudo apt-get install zerofree
$ sudo init 1

...

# mkdir /tmp3
# mount -o ro -t ext4 /dev/sda3 /tmp3
# zerofree -v /dev/sda3
  1. VDI 압축

    VBoxManage modifyhd "ubuntu.vdi"컴팩트

시간이 걸렸지 만 효과가있었습니다!


1
이것이 효과가 있다고 확신합니까? VirtualBox 매뉴얼에 따르면 --compact고정 크기 이미지가 아니라 동적으로 할당 된 이미지에만 작동합니다.
썰매 시간

1
@ ATOzTOA : 디스크 이미지 파일이 커지면 "고정 형식"이미지가 아니라 "동적으로 할당 된"이미지입니다.
sleske

3
아니요, 동적으로 할당 된 이미지 입니다. 매뉴얼을 인용하려면 : "고정 크기 이미지를 생성하면 가상 디스크 용량과 거의 같은 크기의 이미지 파일이 호스트 시스템에 생성됩니다." virtualbox.org/manual/ch05.html#vdidetails
sleske

1
"고정 크기 이미지는 지정된 크기 이상으로 확장 할 수 없음을 의미합니다." 아니. "고정 크기"는 크기가 고정되어 항상 동일 함을 의미합니다. 문서를 읽으십시오.
sleske

1
누구든지 이것을 읽고 누가 옳은지 확신하지 못한다면. @sleske가 맞습니다. 고정 크기 이미지는 정확히 말 그대로입니다. 이미지를 만들 때 지정된 크기로 고정되었습니다. 벤치 마크에서는 동적으로 할당 된 이미지보다 훨씬 뛰어난 성능을 제공하므로 HD 집약적 작업에 VBox를 사용하는 사람은 제한에도 불구하고이 형식을 고려해야합니다.
Jack

2

여기 파티에 늦었지만 2 센트를 더할 것입니다. 먼저 이것이 복잡한 프로세스이며 대부분의 일반 사용자가 이해하려고 노력할 것입니다. 오라클이 VBox GUI에 이것을 포함시키지 않은 이유는 미스터리입니다.

1 단계 : Windows 명령 줄 (VBoxmanage)을 사용하여 드라이브 크기를 늘리십시오. 여기서 팁은 파일 위치를 끊임없이 입력하고 오류 메시지를 얻는 대신 vdi 드라이브의 ID를 사용하는 것입니다.

2 단계 : 그런 다음 새 공간을 사용하려면 기본 파티션을 확장해야합니다. gparted iso를 다운로드하여 IDE 소스로 사용하여 VBox에 새로운 가상 머신을 생성하십시오. 그런 다음 기존 VDI 드라이브를 sata 디스크로 사용하십시오. 이 머신에 대한 가상 드라이브를 작성하지 마십시오. 새 머신을 부팅하면 gparted Gui가 실행됩니다. 자체적으로 정리하려면 몇 번의 재부팅이 필요할 수 있습니다.

gparted가 실행되면 크기를 조정하려는 vdi 드라이브의 파티션이 표시됩니다. 중요 : 기본 파티션의 크기를 늘리려면 확장 파티션과 스왑 파일 공간을 삭제해야하므로 PP에 새 공간을 모두 할당하지 마십시오. 이 작업을 수행하면 새 확장 파티션의 남은 공간을 지정하고 그 안에 새 스왑 파일 공간을 만들어야합니다. 나는 이것이 명령 줄을 사용하는 것보다 훨씬 쉽다는 것을 알았습니다.

케이크 한 조각이 아니라 할 수 있습니다 ... 웹을 조사하는 데 반나절이 걸렸습니다. VBox에서 win8.1 / Ubuntu 실행

윌리


2

고정 VDI 이미지의 크기를 조정 / 확대 / 확장하는 방법은 다음과 같습니다 (축소하는 과정은 다른 답변입니다).

  1. 원하는 크기의 새 디스크를 만들 수 VirtualBox를 사용 (크기는 반드시 원본과 적어도 동일). 게스트 VM의 VirtualBox 설정을 열고 스토리지로 이동하여 HDD 컨트롤러 (예 : "SATA")를 클릭 한 다음 "+"를 클릭하여 하드 디스크를 추가하십시오. 그런 다음 원하는대로 새 디스크를 구성하십시오.
  2. gparted live ISO를 다운로드하고 게스트 VM이 부팅되도록 구성합니다 (다시 스토리지 설정).
  3. 게스트 VM의 현재 저장소를 백업하십시오.
  4. 게스트 VM을 부팅합니다 (분리 된 라이브 환경으로 부팅해야 함). 갈라진 환경 내부에서 :
    1. gparted 응용 프로그램을 사용하여 기존 디스크가 "/ dev / sda"이고 새 (더 큰) 디스크가 "/ dev / sdb"(오른쪽 상단 드롭 다운)인지 확인하십시오.
    2. gparted 응용 프로그램을 닫습니다.
    3. 루트 권한이있는 터미널을여십시오 (데스크톱-> 터미널-> 루트 권한이있는 터미널을 마우스 오른쪽 단추로 클릭하십시오).
    4. 다음 명령을 입력하고 dd if=/dev/sda of=/dev/sdb status=progress bs=128M완료 될 때까지 기다리십시오. 이렇게하면 MBR 등을 포함하여 원본 디스크를 바이트 단위의 새 디스크 바이트에 복사합니다 (참고 : 원본 디스크의 크기, 호스트의 디스크 속도 등에 따라 완료하는 데 시간이 걸릴 수 있음). (참고 : 게스트 VM에 1GB 이상의 RAM이 할당 된 경우 'bs'매개 변수를 "bs = 256M"으로 변경하면 복사 속도가 약간 빨라질 수 있습니다).
    5. gparted 응용 프로그램을 다시 엽니 다
    6. 오른쪽 상단 드롭 다운에서 새 (더 큰) 드라이브 (/ dev / sdb 여야 함)를 선택하십시오.
    7. 원하는대로 파티션을 확장하십시오. 끝이 아닌 파티션을 확장하려면 확장하려는 파티션 다음에있는 파티션을 이동해야 할 수도 있습니다. 파티션 구성표의 세부 사항에 따라 마지막 파티션을 끝까지 자른 다음 모든 것을 끝으로 이동하여 축소하는 등 여러 단계 로이 작업을 수행해야 할 수도 있습니다. 필자의 경우 마지막 파티션은 linux-swap이므로 간단히 삭제하고 기본 파티션을 원하는대로 확장 한 다음 마지막에 스왑 파티션을 다시 만들었습니다 (원래 파티션 구성표를 복제하는 데주의를 기울였습니다).
    8. 변경 승인.
    9. 이제 모든 원본 내용과 원본보다 더 많은 공간이있는 새로운 고정 크기 디스크가 있어야합니다. gparted live env에 새 디스크를 마운트하고 확인할 수 있습니다.
    10. 게스트 VM (gparted live)을 종료하고 VM 드라이브에서 ISO를 제거합니다.
  5. 게스트 VM의 VBox 설정으로 이동하여 스토리지로 이동 한 다음 목록에서 원본 디스크를 제거합니다 (마우스 오른쪽 버튼을 클릭하고 "첨부 파일 제거"를 선택). VM 용으로 새로 생성 된 디스크를 남겨 두어야합니다. 참고 :이 단계는 단순히 게스트 VM 구성에서 디스크를 제거하는 것입니다. 호스트 컴퓨터에서 원본 게스트 VM 디스크 (예 : 작은 디스크)를 계속 사용할 수 있습니다.
  6. VM을 부팅하고 즐기십시오!
  7. 모든 것이 예상대로 작동하는 것으로 확인되면 원본 VM 디스크를 삭제할 수 있습니다.

위의 내용은 여러 번 나에게 효과적이지만 LVM을 사용하는 경우 몇 가지 단계가 더 필요합니다. (참고 : LVM을 사용하는 경우 원하는 크기의 새 디스크를 추가 한 다음 해당 디스크를 볼륨 그룹에 추가 할 수 있습니다.) LVM이 사용되는 CentOS 6.6에서는 LVM 내 공간도 늘려야했습니다. 따라서 위에서 생성 한 새 디스크를 부팅 한 후 다음 줄을 따라 작업을 수행했습니다 (다양한 부분은 설정 이름에 따라 다름).

  1. LVM 설정에 대한 정보를 얻습니다.

    # pvs
      PV         VG          Fmt  Attr PSize  PFree
      /dev/sda2  vg_rhel6bm1 lvm2 a--  31.51g    0 
    # vgs
      VG          #PV #LV #SN Attr   VSize  VFree
      vg_rhel6bm1   1   2   0 wz--n- 31.51g    0 
    # lvs
      LV      VG          Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      lv_root vg_rhel6bm1 -wi-ao---- 28.31g
      lv_swap vg_rhel6bm1 -wi-ao----  3.20g
    
  2. 물리 볼륨 (PV) 확장 (볼륨 그룹 (VG)은 자동으로 동일한 증가를 반영합니다) :

    # pvresize /dev/sda2
      Physical volume "/dev/sda2" changed
      1 physical volume(s) resized / 0 physical volume(s) not resized
    # pvs
      PV         VG          Fmt  Attr PSize  PFree
      /dev/sda2  vg_rhel6bm1 lvm2 a--  39.51g 8.00g
    # vgs
      VG          #PV #LV #SN Attr   VSize  VFree
      vg_rhel6bm1   1   2   0 wz--n- 39.51g 8.00g
    
  3. 논리 볼륨 (LV) 확장 :

    # lvextend /dev/vg_rhel6bm1/lv_root /dev/sda2
      Size of logical volume vg_rhel6bm1/lv_root changed from 28.31 GiB (7247 extents) to 36.31 GiB (9295 extents).
      Logical volume lv_root successfully resized
    # lvs
      LV      VG          Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      lv_root vg_rhel6bm1 -wi-ao---- 36.31g
      lv_swap vg_rhel6bm1 -wi-ao----  3.20g
    
  4. 파일 시스템 확장

    전에:

    # df -h
      Filesystem            Size  Used Avail Use% Mounted on
      /dev/mapper/vg_rhel6bm1-lv_root
                             28G   24G  3.1G  89% /
      tmpfs                 939M  232K  939M   1% /dev/shm
      /dev/sda1             477M   85M  368M  19% /boot
    

    명령:

    # resize2fs /dev/mapper/vg_rhel6bm1-lv_root
      resize2fs 1.41.12 (17-May-2010)
      Filesystem at /dev/mapper/vg_rhel6bm1-lv_root is mounted on /; on-line resizing required
      old desc_blocks = 2, new_desc_blocks = 3
      Performing an on-line resize of /dev/mapper/vg_rhel6bm1-lv_root to 9518080 (4k) blocks.
      The filesystem on /dev/mapper/vg_rhel6bm1-lv_root is now 9518080 blocks long.
    

    후:

    # df -h
      Filesystem            Size  Used Avail Use% Mounted on
      /dev/mapper/vg_rhel6bm1-lv_root
                             36G   24G   11G  69% /
      tmpfs                 939M  232K  939M   1% /dev/shm
      /dev/sda1             477M   85M  368M  19% /boot
    

좋은 대답입니다! 사이트에 오신 것을 환영합니다!
djsmiley2k-CoW

1

다음은 고정 VDI 이미지의 크기를 조정 / 축소 / 축소하는 방법입니다 (확장하는 과정은 동일한 주제의 다른 답변에 있음).

먼저 왜 내가 이것을 필요로했는지에 대한 짧은 배경 (VDI를 축소하는 시나리오가 많기 때문에 일부는이 접근법으로는 가능하지 않을 수 있음) : 몇 년 전에 Windows Server 게스트 용 고정 VDI를 만들고 크기를 600GB로 조정했습니다. 이 크기를 선택한 이유는 기억 나지 않지만 오늘은 그 게스트에서 100GB 만 소비했으며 나머지 공간을 대부분 회수하고 싶습니다. 따라서 제 경우에는 게스트의 모든 데이터를 보존하고 게스트의 사용되지 않은 공간을 확보하고 싶습니다.

(다음 단계는 대부분 지난 2 시간 동안이 작업을 수행 한 기억에서 비롯된 것이므로 여기서 뭔가를 놓치면 사과드립니다.)

  1. 새 크기를 원하는 크기를 결정하십시오. 당연히 손님이 현재 소비하는 것보다 약간의 여유 공간을 남겨두고 싶을 것입니다. 크기는 최소한 원본 / 원본 디스크의 데이터와 같아야하며 가장 가까운 GB로 반올림되어야합니다.
  2. VirtualBox를 사용하여 이전 단계에서 결정한 크기의 새 고정 크기 디스크를 만듭니다. 게스트 VM의 VirtualBox 설정을 열고 스토리지로 이동하여 HDD 컨트롤러 (예 : "SATA")를 클릭 한 다음 "+"를 클릭하여 하드 디스크를 추가하십시오. 그런 다음 원하는대로 새 디스크를 구성하십시오.
  3. gparted live ISO를 다운로드하고 게스트 VM이 부팅되도록 구성합니다 (다시 스토리지 설정).
  4. 게스트 VM의 현재 저장소를 백업하십시오.
  5. 게스트 VM을 부팅합니다 (분리 된 라이브 환경으로 부팅해야 함). 갈라진 환경 내부에서 :

    1. gparted 응용 프로그램을 사용하여 "원본"디스크와 "새"디스크를 판별하십시오. 원본은 최소한 하나의 파티션을 가지고있는 반면 새로운 파티션은 완전히 공백입니다. 일반적으로 "원본"은 / dev / sda가 할당 된 첫 번째 디스크이고 "새"디스크는 / dev / sdb가 할당 된 두 번째 디스크입니다.
    2. gparted 응용 프로그램을 사용하여 원본 / 소스 파티션을 원하는 크기로 줄입니다. 모든 작업을 지정한 후에 "적용"버튼을 클릭 해야 합니다. (파티션 크기 및 디스크 속도에 따라 완료하는 데 약간의 시간이 걸릴 수 있습니다.)
    3. gparted 응용 프로그램을 사용하여 새 디스크에 파티션 테이블을 작성하십시오 (장치-> 파티션 테이블 작성 ..., 유형을 MSDOS로 두십시오).
    4. gparted 응용 프로그램을 사용하여 새 디스크에 동일한 파티션을 만듭니다. (동일한 지 확인하기 위해 Partition-> Information ... 메뉴 옵션을 사용하여 원본 디스크의 각 파티션에 대한 자세한 정보를 가져 와서 동일한 파티션을 만들 때 사용할 스크린 샷을 저장했습니다. 새 디스크 / 대상 디스크).
      • 각 대상 파티션을 (새로 조정 된) 원본과 동일한 크기로 만듭니다.
      • 파티션의 플래그를 일치하도록 설정하십시오 (파티션을 만든 후에 수행해야 할 수도 있음).
      • 파티션의 레이블을 일치하도록 설정하십시오.
      • (참고 : 데이터를 복사하면 UUID가 자동으로 설정됩니다.)
    5. "적용"버튼을 클릭하여 모든 변경 사항을 적용하십시오.
    6. 어떤 디스크가 "원본"이고 어떤 디스크가 "새"인지 기록하고 해당 파티션의 번호를 기록하십시오 (예 : / dev / sda1-> / dev / sdb1, / dev / sda2-> / dev / sdb2, ...)
    7. gparted 응용 프로그램을 닫습니다.
    8. 루트 권한이있는 터미널을여십시오 (데스크톱-> 터미널-> 루트 권한이있는 터미널을 마우스 오른쪽 단추로 클릭하십시오).
    9. "원본"디스크가 / dev / sda이고 "new"가 / dev / sdb라고 가정하면 (다음 명령을 적절하게 조정) 각 파티션을 한 번에 하나씩 복사합니다. 위 단계에서 적어 둔 각 파티션에 대해 터미널에 다음 명령을 입력하십시오.

      # dd if=/dev/sda1 of=/dev/sdb1 status=progress bs=128M
      

      완료 될 때까지 기다리십시오. 이렇게하면 파티션 1을 원본 디스크에서 바이트 단위로 새 디스크의 파티션 1로 복사합니다.
      나머지 각 파티션에 대해 명령을 반복하십시오.

      # dd if=/dev/sda2 of=/dev/sdb2 status=progress bs=128M
      # dd if=/dev/sda3 of=/dev/sdb3 status=progress bs=128M
      # ...
      

      노트:

      • 파티션 크기, 호스트 디스크 속도 등에 따라 완료하는 데 시간이 걸릴 수 있습니다.
      • 게스트 VM에 1GB 이상의 RAM이 할당 된 경우 'bs'매개 변수를 "bs = 256M"으로 변경하면 복사 속도가 약간 빨라질 수 있습니다.
    10. 이 시점에서 모든 원본 내용과 원본보다 작은 VDI 파일을 가진 새로운 고정 크기 디스크가 있어야합니다. gparted live env에 새 디스크를 마운트하고 데이터가 모두 있는지 확인할 수 있습니다.
    11. 게스트 VM (gparted live)을 종료하고 gparted ISO를 VM 드라이브에서 제거합니다.
  6. 게스트 VM의 VBox 설정으로 이동하여 스토리지로 이동 한 다음 목록에서 원본 디스크를 제거합니다 (마우스 오른쪽 버튼을 클릭하고 "첨부 파일 제거"를 선택). VM 용으로 새로 생성 된 디스크를 남겨 두어야합니다. 참고 :이 단계는 게스트 VM의 구성에서 디스크를 제거하는 것입니다. 호스트 컴퓨터에서 원본 게스트 VM 디스크 (예 : 큰 VDI)를 계속 사용할 수 있습니다.
  7. Windows 게스트를 위해 마지막으로 수행 한 단계는 MBR 및 / 또는 BCD를 설정 / 고정하는 것이 었습니다. (아직 Linux 게스트에이 작업이 필요한지 여부는 아직 모르겠습니다.) 새 VDI에서 부팅 한 경우이 내용이 포함 된 Windows Boot Mgr 오류 화면이 표시됩니다 (불행히도 ' 문제를 해결하기 전에 스크린 샷을 얻지 마십시오)

    windows failed to start
    status 0xc000000e
    information A required device isn't connected or can't be accessed.
    
  8. Windows 설치 또는 복구의 ISO (이상적으로 OS 버전과 일치하는 ISO)를 구하고 게스트 VM에서 부팅하도록 게스트 VM을 구성합니다 (다시 스토리지 설정).

  9. 게스트 VM을 시작하고 CD / DVD에서 부팅하도록 선택하십시오.

    1. 각 Windows 설치 / 복구 버전이 다르기 때문에 모든 사람에게 정확한 단계를 제시 할 수는 없습니다. 그러나 아이디어는 "복구"옵션을 선택하고 명령 프롬프트로가는 길을 찾는 것입니다. Windows Server 2012의 경우 다음을 수행해야했습니다. (a) 언어 / 로캘을 선택하십시오. (b) 왼쪽 하단에서 "컴퓨터 수리"를 선택하십시오. (c) "문제 해결"을 선택하십시오. (d) "명령 프롬프트"를 선택하십시오.
    2. 명령 프롬프트가 표시되면 다음 명령을 실행하십시오 ( 정보에 대한 http://loverofcode.blogspot.com/2013/11/fixed-0xc000000e-boot-error.html 덕분에 !) :

      > bootrec /fixmbr
      > bootrec /fixboot
      > bootrec /rebuildBcd
      

      이 마지막 명령은 Windows 설치를 찾아 BCD에 추가하라는 메시지를 표시합니다. 'Y'라고 대답하십시오.

    3. 명령 프롬프트를 종료 한 다음 게스트 VM을 끕니다.
  10. 게스트 VM의 VBox 설정으로 이동하여 저장소로 이동 한 다음 CD / DVD 드라이브에서 Windows 설치 / 복구 ISO를 제거하십시오.
  11. VM을 부팅하고 즐기십시오!
  12. 모든 것이 예상대로 작동하는 것으로 확인되면 원본 VM 디스크를 삭제할 수 있습니다.

0

호스트 운영 체제에서 실행되는 모든 호스팅 운영 체제에 대한 답변을 제공합니다. 이 답변은 크기를 늘리고 싶다고 가정합니다.

참고 : djule5 (질문 직후 주석 참조)에서 지적한 것처럼 modifyhd이제는 알려진 것으로 알려져 modifymedium있지만 이전 버전과의 호환성은 유지됩니다. 여기에 사용 modifymedium합니다.

1. 실행중인 VM을 종료하십시오.

예.이 답변은 VirtualBox VM에서 이미 사용중인 VDI 파일에 대한 것입니다.

2. 호스트에서 터미널을 열어 디스크 이미지 크기를 조정하십시오.

명령 행 VBoxManage는 VDI 파일 이름을 사용하여 디스크 이미지의 크기를 조정하지 않습니다.

$ ls -s1 *.vdi
10260316160 my_disk_image.vdi

$ vboxmanage modifymedium my_disk_image.vdi --resizebyte 16260316160                                                                      VBoxManage: error: Cannot register the hard disk '/home/user/vm/my_disk_image.vdi' {181540c7-b791-4b2f-8e01-5feaff04a6eb} because a hard disk '/home/user/vm/my_disk_image.vdi' with UUID {181540c7-b791-4b2f-8e01-5feaff04a6eb} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBoxWrap, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 179 of file VBoxManageDisk.cpp

따라서 디스크 이미지의 UUID를 식별하십시오.

$ ls -s1 *.vdi
10260316160 my_disk_image.vdi

$ vboxmanage list hdds
UUID:           181540c7-b791-4b2f-8e01-5feaff04a6eb
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/user/vm/my_disk_image.vdi
Storage format: VDI
Capacity:       10240 MBytes
Encryption:     disabled

디스크 이미지 크기를 확장하십시오.

$ vboxmanage modifymedium 181540c7-b791-4b2f-8e01-5feaff04a6eb --resizebyte 16260316160
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

3. 파티셔닝 도구를 사용하여 논리 파티션을 확장하십시오.

호스팅 된 VM을 실행하십시오. 그런 다음 파티션 도구를 사용하십시오 .

호스팅 된 GNU / Linux를위한 몇 가지 도구 :

호스팅 된 시스템이 Windows를 사용하는 경우 :

4. 파티션 여유 공간을 확인하십시오

VM에서 아직 추가 공간을 사용하지 않았기 때문에 호스트 시스템의 VDI 파일 크기가 변경되지 않았을 수 있습니다. 즐기세요


-1

이것은 저에게 효과적이며 하드 디스크 용량의 총량을 지정해야합니다. 우리가 늘려야 할 공간이 아니라 ...

C : \ Program Files \ Oracle \ VirtualBox> VBoxManage.exe modifyhd "D : \ Virtual Machine \ VirtualBox VM \\ Windows 7 (FileZilla Server) \ Windows 7 (FileZilla Server) .vdi"--resize 15360

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.