답변:
동적으로 증가하는 Virtual Box 가상 하드 드라이브 파일은 가상 머신의 요구에 따라이 파일을 설정할 때 정의한 최대 크기까지 확장 할 수 있습니다. 그러나 게스트 OS에서 삭제 한 파일 공간을 비우지 않습니다.
디스크가 너무 커지면 사용하지 않는 공간이 0으로 채워지고 드라이브가 VDI 형식 인 경우 다시 압축 할 수 있습니다.
ext2 ~ ext 4 파일 시스템의 경우 명령 줄 유틸리티 zerofree *로 Ubuntu 게스트에서이 작업을 수행 할 수 있습니다 .
zerofree /dev/sdxX
드라이브를 사용하지 않고 마운트 해제해야 합니다. 따라서이 목적으로 생성 한 다른 VM에 임시로 바인딩하거나이 VM에서 Ubuntu 라이브 환경을 부팅해야합니다.
/dev/sdxX
ext2, ext3 또는 ext4 형식 파티션 으로 교체하십시오 .
둘 이상의 파티션 zerofree
에서 각 파티션마다 반복 해야합니다. 0을 채우면 가상 파일이 일시적으로 최대 크기까지 커집니다.
사용되지 않은 모든 드라이브 공간이 0으로 채워지면 드라이브를 축소합니다.
VBoxManage modifyhd <name>.vdi --compact
이렇게하면 VDI 파일의 파일 크기가 상당히 줄어 듭니다.
* Windows 게스트에서는 사용하지 않는 공간을 유틸리티로 교체 할 수 있습니다 sdelete
.
ecryptfs
암호화 된 파일은 디스크 유틸리티에 대한 일반 파일처럼 보이며 작동합니다. 전체 디스크 암호화를 사용하는 경우 어쨌든 확장 포맷 파티션으로 인식되지 않습니다 :)
mount -n -o remount,ro -t ext4 /dev/sda1
한 다음 디스크를 읽기 전용으로 마운트 한 다음를 마운트하십시오 zerofree -v /dev/sda1
.
사용 가능한 디스크 공간을 0으로 만드는 대체 방법은 다음과 같습니다 (가장 시간이 오래 걸릴 수 있음). 이후에도 VBoxManage modifyhd <disk> --compact
실제 디스크 파일을 압축하려면 계속 실행 해야합니다.
apt-get install zerofree
zerofree -v /dev/sdxN
dd if=/dev/zero of=temp-file-on-disk bs=20M
# run this to get the process ID of the dd command
pgrep -l '^dd$'
# then put the process ID on the command line to "kill -USR1"
# this will tell dd to print the current status (in another terminal)
kill -USR1 $(pgrep -l '^dd$' | awk '{print $1}')
dd
은 출력을 주기적으로 자동 인쇄 하는 유사한 프로그램입니다.
apt-get install dcfldd
dcfldd if=/dev/zero of=temp-file-on-disk bs=20M
zerofree
마운트 된 파일 시스템에서 사용되었지만 읽기 전용으로 마운트 된 경우를 보았습니다 . 루트 FS의 경우에도 : sudo mount -o remount,ro /
-GUI 세션에서는 루트가 사용 중이므로 실패합니다. 그러나 실행 수준 1 ( telinit 1
)에서 가능하므로 라이브 CD로 부팅 할 필요가 없습니다.