Expandindo partição ext3 em discos lógicos e qcow2 em ambiente de virtualização

Publicado por Daniel Roque em 10/08/2017

[ Hits: 1.428 ]

 


Expandindo partição ext3 em discos lógicos e qcow2 em ambiente de virtualização



Esta dica é em parte, documentação do procedimento que utilizo com certa frequência, o qual não recomendo para usuários que não entendem os conceitos envolvidos.

A ideia aqui é redimensionar disco de volume lógicos (lvm) e disco em arquivo formato qcow2 de VM linux.

Com alguma imaginação é possível modificar o procedimento para se adequar a outros tipos de discos e partições.

Supondo os seguintes discos abaixo, um no formato qcow2 e outro um volume lógico do grupo virtual vg0:
  • /media/workspace/vhds/cliedomcvm01.disk01.qcow2 (QCOW2)
  • /dev/vg0/cliedomcvm01.disk02 (LVM)

Para expandir o tamanho de ambos em 10GB por exemplo, os discos não podem estar em uso é claro. Execute o comando abaixo de acordo com o tipo do disco da vm:

qemu-img resize /media/workspace/vhds/cliedomcvm01.disk01.qcow2 +10G
$ lvextend -L +10G /dev/vg0/cliedomcvm01.disk02


Antes de estender o disco o reportado pela VM no exemplo aqui, era o seguinte:

fdisk -l
Disk /dev/sda: 8 GiB, 8588886016 bytes, 16775168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x015ccc6f

Device     Boot   Start      End  Sectors Size Id Type
/dev/sda1  *       2048  4196351  4194304   2G 83 Linux
/dev/sda2  *    4196352 16775168 12580864  6G 83 Linux

Após estender o tamanho do disco, o reportado pela VM é o seguinte:

fdisk -l
Disk /dev/sda: 18 GiB, 19327352832 bytes, 37748736 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x015ccc6f

Device     Boot   Start      End  Sectors Size Id Type
/dev/sda1  *       2048  4196351  4194304   2G 83 Linux
/dev/sda2  *    4196352 16775168 12580864  6G 83 Linux

Veja que o tamanho mudou, aqui nos interessa em particular a quantidade de setores que foi de 16775168 para 37748736.

Vamos redimensionar a partição sda2, de dentro da VM em questão. Existem outros modos mais "seguros" para fazer isto.

O modo abaixo simplesmente troca o tamanho da partição e boa, eu tenho utilizado isso sem problemas, mas dependendo do particionamento e da ordem da partição, você querer alterar o procedimento não é tão seguro, mas como no caso aqui, a partição a ser estendida é a sda2 que está no fim do disco, é relativamente seguro, e eu utilizo pelo simples fato de conseguir executar tudo pelo ssh.

Dando continuidade, vamos copiar o particionamento atual para um arquivo.

sfdisk -d /dev/sda > ~/sfdisk_sda.orig

Fazer uma cópia do arquivo e manter o original em caso de sinistro no procedimento (rsrs):

cp ~/sfdisk_sda.orig ~/sfdisk_sda.novo

Vamos ter que fazer algumas continhas, veja que temos duas partições, sda1 e sda2, cada uma com um tamanho em setor, 4194304 e 12580864 respectivamente.

Se somarmos ambos os valores teremos: 16775168, subtraindo esse valor do novo tamanho do disco em setores, 37748736 menos 16775168, teremos 20973568 que é justamente os 10g extras que adicionamos.

Ou seja, este valor está disponível para acrescentarmos ao tamanho do sda2, 12580864 mais 20973568 o que dá 33554432.

Ainda por segurança ou por bobagem não sei ao certo, mas costumo remover 1024 setores desse valor para dar uma folga de espaço livre no fim do disco, o que dá 33553408, esse será o novo tamanho do sda2.

Agora edite o arquivo sfdisk_sda novo e troque o número de setores do sda2 pelo valor que encontramos 33553408.

Veja a diferença entre os arquivos abaixo:

cat sfdisk_sda.orig
label: dos
label-id: 0xcfb458e4
device: /dev/sda
unit: sectors

/dev/sda1 : start=        2048, size=     4194304, type=83, bootable
/dev/sda2 : start=     4196352, size=    12580864, type=83, bootable

cat sfdisk_sda.novo
label: dos
label-id: 0xcfb458e4
device: /dev/sda
unit: sectors

/dev/sda1 : start=        2048, size=     4194304, type=83, bootable
/dev/sda2 : start=     4196352, size=    33553408, type=83, bootable

Agora vamos forçar a nova tabela de partição no disco, se sabe rezar é uma boa hora.

sfdisk --force /dev/sda < ~/sfdisk_sda.novo

Reinicie a vm, logue-se novamente e execute o comando abaixo para ajustar a partição:

# resize2fs /dev/sda2

Após este procedimento o df -h já deve listar a partição com o novo espaço em disco.

Eu alertei da insegurança do procedimento, mas posso garantir que dentro do ambiente exposto funciona muito bem, já utilizei inúmeras vezes, mas de fato eu não recomendo para quem tem lacunas nos conceitos envolvidos no processo.

Boa sorte e abraços!!!

Outras dicas deste autor

7 comandos para conexão Wi-Fi em modo console

Trocando kernel remotamente no Debian

Thunderbird - Erro: Data errada de recebimento de e-mail [Resolvido]

Configurando o celular GT-S8000B como modem 3G

Calibrando o Touchscreen pelo Kernel do celular ZTE-V821 Android

Leitura recomendada

Redimensionando o RAID 1

Revogando certificados digitais (OpenVPN)

Instalando DHCP/Squid/Sarg no Ubuntu

Resumo LPI 102: Tópico 105 - Shells, Scripts e Administração de Dados

Instalar Ubuntu 10.10 de ISO em HD (sem CD ou USB)

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts