Pesquisa de site

Redimensione uma partição raiz ext2/3/4 e XFS sem LVM


Este guia mostrará como estender ou redimensionar um sistema de arquivos ext2/3/4 e XFS sem LVM em tempo de execução. Esta poderia ser uma partição raiz configurada com sistema de arquivos ext2/3/4 ou XFS, mas sem nenhum LVM configurado. Em nosso tutorial anterior, vimos Como estender o sistema de arquivos raiz usando LVM no Linux.

Etapa 1: verifique a capacidade atual do disco raiz

Para esta demonstração, tenho uma VM CentOS 7 com esquema de partição abaixo.

$ lsblk 
 NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
 sr0     11:0    1 1024M  0 rom  
 vda    253:0    0   10G  0 disk 
 └─vda1 253:1    0   10G  0 part /

Como pode ser visto na saída, o sistema de arquivos raiz está na partição /dev/vda1 sem LVM.

Etapa 2: estender o disco raiz do sistema operacional após a extensão

Estenderei meu dispositivo de bloqueio raiz para 30 GB. Eu uso a tecnologia de virtualização KVM, então este guia funciona para mim:

  • Como estender/aumentar o tamanho do disco da máquina virtual KVM (VM)

Para KVM posso verificar o caminho do disco virtual usando o comando abaixo:

$ sudo virsh domblklist centos7 
 Target   Source
-------------------------------------------------
 vda      /var/lib/libvirt/images/centos7.qcow2
 sda      -

$ sudo fdisk -l /var/lib/libvirt/images/centos7.qcow2
Disk : 10 GiB, 10739318784 bytes, 20975232 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

$ sudo qemu-img resize /var/lib/libvirt/images/centos7.qcow2 +20G
Image resized.

Se você estiver em uma plataforma de virtualização diferente, consulte a documentação para saber como estender o disco virtual do sistema operacional.

Etapa 3: aumentar a partição da VM

Inicie sua VM e ssh como um usuário com privilégios sudo. A primeira coisa a fazer é confirmar o novo tamanho do disco.

$ lsblk 
 NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
 sr0     11:0    1 1024M  0 rom  
 vda    253:0    0   30G  0 disk 
 └─vda1 253:1    0   10G  0 part /

Podemos ver que o disco cresceu 20 GB, de 10GB para 30GB. A próxima ação é expandir a partição (Partição 1) em nosso exemplo, para o tamanho máximo que o disco fornece.

Instale o pacote de utilitários de nuvem

Para aqueles que são novos no growpart, é uma ferramenta de linha de comando do Linux usada para estender uma partição em uma tabela de partição para preencher o espaço disponível. Este comando é fornecido pelo pacote cloud utils.

No sistema Ubuntu/Debian, execute:

sudo apt -y install cloud-guest-utils gdisk

Para servidor CentOS/RHEL/Fedora, execute:

sudo yum -y install cloud-utils-growpart gdisk

A página de ajuda pode ser visualizada passando o argumento -h

$ growpart -h
growpart disk partition
   rewrite partition table so that partition takes up all the space it can
   options:
    -h | --help       print Usage and exit
         --fudge F    if part could be resized, but change would be
                      less than 'F' bytes, do not resize (default: 1048576)
    -N | --dry-run    only report what would be done, show new 'sfdisk -d'
    -v | --verbose    increase verbosity / debug
    -u | --update  R update the the kernel partition table info after growing
                      this requires kernel support and 'partx --update'
                      R is one of:
                       - 'auto'  : [default] update partition if possible
                       - 'force' : try despite sanity checks (fail on failure)
                       - 'off'   : do not attempt
                       - 'on'    : fail if sanity checks indicate no support

   Example:
    - growpart /dev/sda 1
      Resize partition 1 on /dev/sda

Agora use growpart para estender sua partição.

$ sudo growpart /dev/vda 1
CHANGED: partition=1 start=2048 old: size=20969472 end=20971520 new: size=62912479,end=62914527

Isso redimensionará a partição 1 em /dev/vda.

Valide a mudança.

$ lsblk 
 NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
 sr0     11:0    1 1024M  0 rom  
 vda    253:0    0   30G  0 disk 
 └─vda1 253:1    0   30G  0 part /

Etapa 4: redimensione a partição / para preencher todo o espaço

A última etapa é redimensionar o sistema de arquivos para crescer totalmente e preencher o espaço adicional

Para o sistema de arquivos ext4, use resize2fs

$ sudo resize2fs /dev/vda1
resize2fs 1.42.9 (28-Dec-2013)
 Filesystem at /dev/vda1 is mounted on /; on-line resizing required
 old_desc_blocks = 2, new_desc_blocks = 4
 The filesystem on /dev/vda1 is now 7864059 blocks long.

Se o seu sistema de arquivos for XFS, ele poderá ser aumentado enquanto estiver montado usando o comando xfs_growfs:

sudo xfs_growfs /

Confirme o novo tamanho usando df -h

$ df -hT | grep /dev/vda
/dev/vda1      ext4       30G  1.2G   27G   5% /

Parabéns!, você redimensionou com sucesso uma partição raiz ext2/3/4 ou XFS no Linux sem LVM.

Materiais de aprendizagem recomendados para administração de sistemas Linux:

  • Melhores livros sobre Linux para iniciantes e especialistas
  • Melhores livros de programação do kernel Linux
  • Melhores livros de script Linux Bash

Veja artigos relacionados abaixo.

  • Estenda o disco de inicialização do EBS na AWS sem reinicializar a instância
  • Como estender o sistema de arquivos raiz usando LVM no Linux
  • Como estender/aumentar o tamanho do disco da máquina virtual KVM (VM)
  • Trabalhando com qemu-img no Linux

Artigos relacionados: