VM 크기를 줄이는 방법은 무엇입니까?

VM 크기를 줄이는 방법은 무엇입니까?

호스트 컴퓨터에서 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의 경우 zerofreeext2/ext3 파일 시스템을 지원하는 유틸리티를 사용하십시오.

답변2

에 관하여이 솔루션이 포함된 원래 답변:

VM에서:

  1. dd if=/dev/zero of=test.file
  2. sync
  3. rm test.file

호스트 머신에서:

  1. VBoxManage modifyhd --compact your_image_path.vdi

이것이 제가 시도한 유일한 솔루션입니다. 및 zerofree( sfill에서 secure-delete)는 내 Debian VM(Windows 10 호스트)에서 작동하지 않습니다.

답변3

문제의 핵심은 루트 파일 시스템( /)의 크기가 2TB라는 것입니다. 큰 파일 시스템에서는 상대적으로 작은 오버헤드(inode 등)가 여전히 상당히 큽니다(귀하의 경우 >32GB).

가상 디스크를 축소하려면 먼저 루트 파일 시스템을 축소해야 합니다.

관련 정보