Ubuntu로 VHD 파일을 압축하는 방법은 무엇입니까?


9

Hyper-V 역할을 가진 Windows Server 2008r2를 사용합니다. 게스트 시스템은 Ubuntu 12.04 LTC입니다. 동적 가상 하드 디스크에 있습니다.

이 VHD를 압축하고 싶습니다 (실제 크기는 디스크에서 50GB, 360GB입니다). 그러나 우분투 파일 시스템은 NTFS가 아니기 때문에 이것을 할 수 없습니다. 이 문제를 해결하려면 무엇이 필요합니까 (gparted, sdelete, ...)?

주요 문제는 파일 시스템이 NTFS가 아니라 ext4라는 것입니다.

대답:

1) 시스템 다운로드

http://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/3.8.1/systemrescuecd-x86-3.8.1.iso/download

2)이 .iso를 퀘스트 OS 우분투에 추가하십시오

3)이 가상 머신을 시작합니다

4) zerofree 사용

zerofree /dev/sda1

5)이 가상 머신의 전원을 끕니다.

6) Hyper-V 관리자 사용 (편집-> 조각 모음)

이 vhd는 360Gb였습니다. 이제 70GB입니다.


1
자신의 질문에 답변 하려면 질문 자체를 편집하지 말고 답변을 게시하십시오 .
Massimo

고려 fstrim특히 LVM의에서 ext4를 위해 2019 년에 superuser.com/questions/1491437/...
알렉 이스 토민에게

답변:


6

VM의 전원을 끄고 VHD를 백업 한 다음 사용 가능한 ext4 파티션이있는 다른 가상 머신 ( 작고 빠르기 때문에 SystemRescueCD를 사용 )을 실행하십시오 (예 : SysRescue 용 HD) (마운트하지 마십시오!). SysRescue VM 의 ext4 파티션에서 ' zerofree '를 실행 하고 해당 VM의 전원을 다음 관리 웹 사이트를 사용하여 VHD를 압축하십시오.


시작합니다 (SystemRescueCD를 다운로드 한 다음 zerofree / dev / sda1 다운로드). 그러나 Windows에서이 VHD를 압축 할 수 있는지 모르겠습니다 (모든 여유 공간이 null이 된 후)
AmShegar

1
Hyper-V 관리자를 사용해보십시오 .
rickhg12hs

3

zerofree는 가상 디스크 파일을 압축하기 위해 노력하고 있습니다.

그러나 복구 CD를 사용하거나 다른 가상 머신에 VHDX를 마운트 할 필요는 없습니다.

sudo apt-get install zerofree

안전 모드로 부팅 한 후 다음을 실행하십시오.

zerofree /dev/sda1

그런 다음 가상 디스크 파일에 대한 최적화를 시작해야합니다. VHDX 파일을 호스팅하는 서버에서 ShrinkVhdx.ps1 파일을 작성하십시오.

[CmdletBinding()]
Param(
    $VHDFiles
)

    #Find the disks
    foreach($VHD in $VHDFiles){
        Write-Verbose "Working on $VHD, please wait"
        Write-Verbose "Current size $([math]::truncate($(Get-VHD -Path $VHD).FileSize/ 1GB)) GB"
        Mount-VHD -Path $VHD -NoDriveLetter -ReadOnly
        Optimize-VHD -Path $VHD -Mode Full
        Write-Verbose "Optimize size $([math]::truncate($(Get-VHD -Path $VHD).FileSize/ 1GB)) GB"
        Dismount-VHD -Path $VHD
        Write-Verbose ""
        }

이제 파일을 실행하고 해제 된 디스크 공간을 즐기십시오 :-)

ShrinkVhdx.ps1 .\hdd1.vhdx

이것은 XFS 인 경우 파일 시스템에 따라 다르며 zerofree를 사용하면 운이 좋지 않습니다.
Brad

1

그 과정은

  • 현재 VHD 파일을 백업하십시오.
  • 스냅 샷 관리자를 사용하여 스냅 샷을 삭제 / 병합하십시오.
  • 사용하지 않은 디스크 공간을 제로로 채 웁니다

sudo apt-get install secure-delete 
sudo sfill -llz .

s로 oooooooo.ooo채워진 파일이 생성됩니다 0. 내가 생각하는 모든 파티션에서 sfill 명령을 반복해야합니다.

이것도 빠르지는 않습니다. 완료하는 데 며칠이 걸리지 않으면 몇 시간이 걸립니다.

  • 콤팩트
  • 이익

고마워,하지만 나는 Hyper-V와 vhd와 리눅스에 컴퓨터에 인터넷이 없다. 그래서 "sudo apt-get install secure-delete"를 수행 할 수 없습니다
AmShegar


0

2 세대 컴퓨터에서 Systemrescuecd를 시작하려고했습니다. 그러나 작동하지 않아서 새로운 1 세대 머신을 만들고 VHDX를 추가했습니다. systemrescuecd가 시작되었습니다. 나는 아무 작업도하지 않았다. 1 세대 머신을 제거하고 VHDX를 원래 머신에 다시 넣습니다. 그런 다음 우분투는 전혀 시작되지 않았습니다. 그럽 메뉴 만.

내 게시물보기 : Hyper-V Ubuntu vhdx scsi ide

따라서 이것을 알고 백업을하십시오 (이번에는하지 않았습니다) ...


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.