Como posso compactar o arquivo VHD com o Ubuntu?

7

Eu uso o Windows Server 2008r2 com o papel Hyper-V. O sistema convidado é o Ubuntu 12.04 LTC. Está situado no disco rígido virtual dinâmico.

Eu quero compactar este VHD (o tamanho real é de 50 GB, 360 GB no disco). Mas eu não posso fazer isso, porque o sistema de arquivos do Ubuntu não é NTFS. O que eu preciso (gparted, sdelete, ...) para resolver este problema?

O principal problema é que o sistema de arquivos não é NTFS, mas ext4.

A resposta:

1) Faça o download do systemrescuecd

link

2) Adicione este .iso à missão OS Ubuntu

3) Inicie esta máquina virtual

4) Use zerofree

zerofree /dev/sda1

5) Desligue esta máquina virtual

6) Use o gerenciador do Hyper-V (Editar - > desfragmentação)

Esse vhd foi de 360 Gb. Agora 70 GB.

    
por AmShegar 06.11.2013 / 11:59

6 respostas

5

Desligue sua VM, faça backup do VHD e execute outra máquina virtual (eu uso SystemRescueCD , já que é pequena e rápida) a partição ext4 disponível para ele, isto é, um HD para SysRescue (mas não o monte!). Da VM do SysRescue, execute ' zerofree ' na partição ext4, desligue essa VM, e use seu site de administração para compactar o VHD.

    
por 08.11.2013 / 11:15
2

Posso confirmar: o zerofree está trabalhando para compactar arquivos de disco virtual

MAS: você não precisa usar nenhum CD de resgate ou montar o VHDX em outra máquina virtual:

sudo apt-get install zerofree

Inicialize no modo de segurança e execute:

zerofree /dev/sda1

Depois disso, temos que iniciar a otimização para o arquivo do disco virtual. No servidor que hospeda o arquivo VHDX, crie o seguinte arquivo 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 ""
        }

Agora, execute o arquivo e aproveite o espaço em disco liberado: -)

ShrinkVhdx.ps1 .\hdd1.vhdx
    
por 13.05.2016 / 09:50
1

O processo parece ser

  • Faça backup de seu arquivo VHD atual.
  • Use o gerenciador de snapshots para excluir / mesclar quaisquer snapshots.
  • Preencha o espaço em disco não utilizado

viz

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

Isso cria um arquivo chamado oooooooo.ooo preenchido com 0 s. Você deve repetir o comando sfill em todas as partições, eu acho.

Observe que isso também não é rápido, levará horas, se não dias, para ser concluído.

  • Compact
  • Lucro
por 08.11.2013 / 09:23
1

1) Faça o download do systemrescuecd

link

2) Adicione este .iso à missão OS Ubuntu

3) Inicie esta máquina virtual

4) Use zerofree

zerofree / dev / sda1

5) Desligue esta máquina virtual

6) Use o gerenciador do Hyper-V (Editar - > desfragmentação)

    
por 21.11.2013 / 14:08
0

Eu tentei iniciar o Systemrescuecd em uma máquina de segunda geração. Mas não funcionou, então criei uma nova máquina de 1ª geração e adicionei o VHDX a ela. systemrescuecd iniciado. Eu não fiz nenhuma operação. Removida a 1ª geração e coloque o VHDX de volta na máquina original. Então o Ubuntu não iniciou nada. Apenas menu Grub.

Veja meu post aqui: Hyper-V Ubuntu vhdx scsi ide

Portanto, esteja ciente disso e faça backup (não o fiz desta vez) ...

    
por 27.04.2015 / 11:01
0

Você pode fazer isso verificando alguns parâmetros nos seguintes arquivos: / sys / block // queue / discard_granularity / sys / block // queue / discard_max_bytes se tiver um 0, provavelmente não é suportado pela sua configuração de hardware + software.

Aqui está um tutorial completo sobre como fazer isso em: link

    
por 18.06.2016 / 02:28