XP, Ubuntu 등과 같은 가상 컴퓨터가 거의없는 Windows 8에서 Hyper-V를 실행하고 있습니다. 하드 드라이브를 주문형으로 설정하여 소규모로 시작하고 있습니다.
이제 가상 XP에서 파일을 거의 다운로드하지 않았습니다. 하드 디스크 사용 공간이 약 12GB라는 것을 알았습니다. 휴지통에서도 삭제 한 후 일부 파일을 삭제하기로 결정했습니다. 하드 드라이브는 약 6GB이지만 문제는 VHDX의 읽기 크기를 확인했을 때 여전히 약 12GB입니다!
하드 드라이브의 전원을 끄고 편집 / 압축하려고했지만 여전히 같은 크기입니다!
도움을 주시면 감사하겠습니다.
감사.
답변
큰 파일을 삭제하면 (가상) 하드 디스크의 작은 부분 인 블록 할당 만 변경됩니다. 파일의 내용 데이터는 덮어 쓸 때까지 디스크에 남아 있습니다. 파일 시스템 수준에서 하이퍼 바이저 / 디스크 이미지가 작동하지 않습니다. 압축이 성공하려면 데이터를 0으로 덮어 써야합니다. Linux 및 파일이 완전히 가득 찼을 때 파일을 제거 할 수있는 파일 시스템 (btrf는 해당 상황에서 문제가 있음)을 사용하여 다음을 수행 할 수 있습니다.
dd if=/dev/zero of=/filldisk.zero bs=100M ; rm /filldisk.zero
나중에 wipe -z
대신 VM에서 파일을 삭제할 수 있습니다 . 동일한 작업을 수행하는 Windows 도구가있을 수 있습니다.
답변
Hyper-V는 다음 두 조건 중 하나에 해당 할 때마다 VHD (또는 VHDX)를 압축합니다.
1) VHD와 기본 파일 시스템을 마운트하고 파일 시스템 내에서 데이터를 사용하여 VHD의 어떤 블록이 더 이상 파일 시스템에서 사용되지 않는지 알아낼 수 있습니다.
2) 게스트의 OS는 ATA “trim”명령 또는 SCSI “unmap”명령을 사용하여 기본 디스크에 블록이 해제되고 블록 내의 데이터가 더 이상 중요하지 않음을 나타냅니다.
(1) Windows가 친숙하게 알고있는 파일 시스템이 아닌 한 파일 시스템이 작동하지 않으며, 언급하지는 않았지만 Ubuntu 설치에서 NTFS를 사용하지 않았다고 생각합니다. Windows XP VM의 경우 XP에서 먼저 조각 모음을 수행하여 (프로세스 중에 VHD가 더 커질 수 있음) VM을 끈 상태에서 압축하는 데 도움이되었을 수 있습니다.
(2) 최신 Windows 버전에서만 작동합니다. 트림 및 / 또는 매핑 해제를 지원하는 Ubuntu 버전 또는 패치를 찾을 수 있습니다.
답변
SystemRescueCD로 VHD를 압축 할 수 있습니다
https://serverfault.com/questions/551053/how-can-i-compact-the-vhd-file-with-ubuntu- 이 질문에 대한 답변입니다