호스트 컴퓨터에서 49GB를 차지하는 .vdi가 있는 Virtualbox VM이 있습니다.
한때 VM 내부의 공간을 그렇게 많이 사용했을 수도 있지만 지금은 실제로 약 6GB만 사용하고 있습니다.
virtualbox에 대해 다음 명령을 시도했습니다.
vboxmanage modifyhd /path/to/disk.vdi --compact
0%..10%.....100% 작동하기 시작했습니다. 그러나 실제로는 아무 일도 일어나지 않았습니다. .vdi는 여전히 49GB였습니다.
그런 다음 VM에서 'df -h'를 실행하고 다음을 발견했습니다.
root@mypc# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/mypc-root 2.0T 38G 1.9T 2% /
udev 1.3G 4.0K 1.3G 1% /dev
tmpfs 502M 784K 501M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 1.3G 160K 1.3G 1% /run/shm
/dev/sda1 228M 31M 185M 15% /boot
/home/someuser/.Private 2.0T 38G 1.9T 2% /home/someuser
왜 38GB를 사용하는지 모르겠습니다.
휴지통을 청소했지만 도움이 되지 않았습니다.
내가 무엇을 더 할 수 있는지에 대한 아이디어가 있나요?
VM에는 암호화된 LVM과 홈(즉, .Private 디렉터리)이 있는 Ubuntu 12가 있습니다. 호스트에는 Windows 7이 있습니다.
업데이트
/dev/sda1에 대한 공간을 확보할 수 있었지만 /dev/mapper/mypc-root에 대한 공간은 확보할 수 없었습니다. Zerofree는 시작되고 끝나지 않습니다. 하지만 1분 후에 소음이 멈추기 때문에 디스크 쓰기가 멈췄다는 것을 알 수 있습니다.
다음은 'df -ih'에 대한 출력입니다.
root@mypc:/home/someuser# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/mypc-root 128M 208K 128M 1% /
udev 311K 495 310K 1% /dev
tmpfs 314K 428 314K 1% /run
none 314K 4 314K 1% /run/lock
none 314K 7 314K 1% /run/shm
/dev/sda1 122K 230 122K 1% /boot
/home/someuser/.Private 128M 208K 128M 1% /home/someuser
답변1
로부터수동:
이 작업이 효과적이려면 먼저 적절한 소프트웨어 도구를 사용하여 게스트 시스템의 여유 공간을 0으로 만들어야 합니다. Windows 게스트의 경우 Microsoft에서 제공하는 도구를 사용할 수 있습니다
sdelete
.sdelete -c
가상 디스크 이미지를 압축하기 전에 게스트에서 실행하여 여유 디스크 공간을 0으로 만듭니다. Linux의 경우zerofree
ext2/ext3 파일 시스템을 지원하는 유틸리티를 사용하십시오.
답변2
에 관하여이 솔루션이 포함된 원래 답변:
VM에서:
dd if=/dev/zero of=test.file
sync
rm test.file
호스트 머신에서:
VBoxManage modifyhd --compact your_image_path.vdi
이것이 제가 시도한 유일한 솔루션입니다. 및 zerofree
( sfill
에서 secure-delete
)는 내 Debian VM(Windows 10 호스트)에서 작동하지 않습니다.
답변3
문제의 핵심은 루트 파일 시스템( /
)의 크기가 2TB라는 것입니다. 큰 파일 시스템에서는 상대적으로 작은 오버헤드(inode 등)가 여전히 상당히 큽니다(귀하의 경우 >32GB).
가상 디스크를 축소하려면 먼저 루트 파일 시스템을 축소해야 합니다.