내 가상화 호스트가 더 이상 사용되지 않는다고 생각하도록 여유 디스크 공간을 0으로 채우려면 어떻게 해야 합니까?

내 가상화 호스트가 더 이상 사용되지 않는다고 생각하도록 여유 디스크 공간을 0으로 채우려면 어떻게 해야 합니까?

내 가상 머신 호스트의 경우 Hyper-V 역할과 함께 Windows Server 2008r2를 사용하고 게스트 VM은 Ubuntu 12.04 LTS입니다. 동적 가상 하드 디스크(2TB)에 위치합니다. 이 VM의 VHD 크기는 360GB입니다. 하지만 Ubuntu에 표시되는 실제 크기는 약 50GB입니다.

Ubuntu VM에서 사용하는 파일 시스템은 NTFS가 아니기 때문에 표준 Hyper-V 도구를 사용하여 이 VHD의 크기를 줄이는 것은 분명히 불가능합니다.

VHD 외부의 여유 공간을 재설정할 수 있는 Ubuntu의 다른 방법이 있습니까?

답변1

우분투에서는 zerofree(http://manpages.ubuntu.com/manpages/natty/man8/zerofree.8.html)

sudo 적성 설치 제로프리

DD예, 하지만 위 링크에 따라 몇 가지 단점이 있을 수 있습니다.

답변2

고쳐 쓰다2019년부터 (누군가가 투표한 이후로 다시금 알게 되었네요)

또한 사용 자체를 자세히 설명하는 내 답변 부분이 dd정확합니다.게스트 블록 스토리지에 실제로 비어 있는 일부 디스크 공간이 있음을 하이퍼바이저에게 알리는 방법에 대한 질문에 대한 정답은 다음과 같습니다.TRIM/Discard 명령 사용.


Ubuntu 12.04(ext4)에서 여유 공간을 0으로 채우는 방법은 무엇입니까?

이는 매우 간단합니다.

dd if=/dev/zero of=/some/path/to/zerofile bs=128M count=NumOf128MBlocksToFillTheDiskWith

1%와 같이 이러한 명령의 영향을 받지 않는 공간을 남겨 두는 것이 좋습니다. 기본적으로 EXT…FS는 루트 사용자를 위해 특별한 공간(AFAIR, 5%)을 예약하므로 일반 사용자로 이 명령을 실행하면 전체 디스크를 채우지 않습니다. 이는 다른 시스템 소프트웨어로 인해 괜찮습니다. root이 경우 작동이 오작동할 수 있습니다. 그러나 일반 사용자로 실행하더라도 dd남은 여유 공간(95%)을 사용하지 않는 것이 좋습니다. 그렇지 않으면 다른 프로그램(예: Firefox)이 더 이상 디스크에 쓸 수 없다는 사실을 인식하지 못하고 종료될 수 있습니다. 상황: 데이터가 일치하지 않습니다. 그러니 그 공간은 그대로 두시기 바랍니다. 최대한 활용하고 아무 것도 손상시키지 않으려면 단일 모드에서 실행하는 것이 가장 좋습니다.

그 후에는 말할 필요도 없지만 만일의 경우에 대비해 삭제하세요 /some/path/to/zerofile.

PS 감사합니다@웨이 지안~을 위한공유하다zerofree관련 정보하다더 알 맞는 EXT2// EXT3.EXT4

관련 정보