Eu uso o Windows Server 2008r2 com a função Hyper-V. O sistema convidado é o Ubuntu 12.04 LTC. Ele está situado no disco rígido virtual dinâmico.
Quero compactar esse VHD (o tamanho real é de 50 GB, 360 GB no disco). Mas não posso fazer isso, porque o sistema de arquivos Ubuntu não é NTFS. O que eu preciso (gparted, sdelete, ...) para resolver esse problema?
O principal problema é que o sistema de arquivos não é NTFS, mas ext4.
A resposta:
1) Faça o download do systemrescuecd
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)
Este vhd era de 360 Gb. Agora 70 GB.
fstrim
em 2019, especialmente para ext4 sob LVM superuser.com/questions/1491437/…Respostas:
Desligue sua VM, faça backup do VHD e execute outra máquina virtual (eu uso o SystemRescueCD, pois é pequeno e rápido) que possui a partição ext4 disponível, como um HD para o SysRescue (mas não a monte!). Na VM do SysRescue, execute ' zerofree ' na partição ext4, desligue a VM e use o site de administração para compactar o VHD.
fonte
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:
Inicialize no modo de segurança e execute:
Depois disso, precisamos iniciar a otimização para o arquivo do disco virtual. No servidor que hospeda o arquivo VHDX, crie o seguinte arquivo ShrinkVhdx.ps1:
E agora execute o arquivo e aproveite o espaço em disco liberado :-)
fonte
O processo parece ser
viz
Isso cria um arquivo chamado
oooooooo.ooo
preenchido com0
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.
fonte
1) Faça o download do systemrescuecd
http://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/3.8.1/systemrescuecd-x86-3.8.1.iso/download
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)
fonte
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 primeira geração e adicionei o VHDX a ela. systemrescuecd iniciado. Eu não fiz nenhuma operação. Removida a máquina de 1ª geração e coloque o VHDX de volta na máquina original. Então o Ubuntu não foi iniciado. Somente menu Grub.
Veja meu post aqui: Hyper-V Ubuntu vhdx scsi ide
Portanto, esteja ciente disso e faça backup (não fiz desta vez) ...
fonte
Você pode fazer isso verificando alguns parâmetros nos seguintes arquivos: / sys / block // fila / discard_granularity / sys / block // fila / discard_max_bytes se um tiver 0, provavelmente não é suportado pela configuração de seu hardware + software.
Aqui está um tutorial completo sobre como fazer isso em: http://www.1337admin.org/uncategorized/compacting-virtual-disks-on-generation-2-linux-hyper-v-2012-r2-vms/
fonte