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

Publicado por Daniel Roque em 10/08/2017

[ Hits: 4.540 ]

 


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

e4rat - Acelerando o Boot em Partições EXT4

IceDove e Lightning - Resolvendo problema de incompatibilidade

Erro no log do samba _netr_ServerAuthenticate3 "falha na relação de confiança..." no windows 7

Trocando kernel remotamente no Debian

Criando um repositório rápido de contole de versão com o Mercurial

Leitura recomendada

CentOS 5.4 - Criando um repositório local em 10 passos

Desabilitando DNS Recursivo

Criar mirror do CentOS (CentOS-BR.org)

Usando Portage em Sabayon Linux - Método Geral, Passo a Passo

Gtop no Fedora

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts