sexta-feira, 31 de maio de 2024

Alterar o tamanho da partição root no Ubuntu via linha de comando.

Este exemplo temos um computador cujo disco principal tem algum espaço livre (veja a saída de parted abaixo) e queremos alocá-lo para a partição de root (/). Contudo o acesso que temos ao computador é remoto via ssh. O que fazer?


Como está o nosso servidor

h3dema@station01:~$ df
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        59G   35G   21G  63% /
/dev/sda2       512M  6.1M  506M   2% /boot/efi

Observação: Removi da saída acima as linhas com tempfs.

h3dema@station01:~$ sudo parted /dev/sda
GNU Parted 3.4
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print free
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sda: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name                  Flags
        17.4kB  1049kB  1031kB  Free Space
 1      1049kB  2097kB  1049kB                                     bios_grub
 2      2097kB  540MB   538MB   fat32        EFI System Partition  boot, esp
 3      540MB   64.4GB  63.9GB  ext4
        64.4GB  85.9GB  21.5GB  Free Space

Vemos que temos um espaço livre de ~21GB no disco. Este espaço pode ser alocado para sda3. Note que tivemos que utilizar "print free" para ver também o espaço livre de disco. O comando "print" só mostra as partições criadas (isto é, 1, 2, e 3 mostrado acima).

Fazendo a alteração da partição

Podemos fazer a alteração utilizando o parted:

h3dema@station01:~$ sudo parted /dev/sda
GNU Parted 3.4
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) resizepart 3 100%
Warning: Partition /dev/sda3 is being used. Are you sure you want to continue?
Yes/No? yes
(parted) print
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sda: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name                  Flags
 1      1049kB  2097kB  1049kB                                     bios_grub
 2      2097kB  540MB   538MB   fat32        EFI System Partition  boot, esp
 3      540MB   85.9GB  85.4GB  ext4

Você precisa reiniciar o computador.

Crescer o sistema de arquivos

Contudo ao reiniciar você irá notar que a partição cresceu, por exemplo, usando parted, você irá notar que agora tem ~80GB. 
Contudo se você usar novamente "df " para ver o espaço em disco verá que o espaço não foi todo preenchido (a saída ainda irá mostrar 59GB como antes).

Para ilustrar melhor o problema, vamos abrir a versão gráfica de parted -- chamada gparted. 
Lembre-se que deveríamos estar alterando um servidor remoto via SSH e que não tem uma interface gráfica.
Na tela do gparted notamos uma exclamação em vermelho na partição /dev/sda3.


Se solicitamos informações sobre esta partição, gparted irá mostrar a seguinte mensagem:

Ou seja, ainda precisamos crescer o sistema de arquivos. É por isto que "df" não mostra o tamanho que esperávamos.

Gparted ou parted não permitem crescer o sistema de arquivos de uma partição montada.

Contudo temos um outro recurso: resize2fs.
Com ele podemos fazer esta alteração como mostrado abaixo.

h3dema@station01:~$ sudo resize2fs /dev/sda3
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/sda3 is mounted on /; on-line resizing required
old_desc_blocks = 8, new_desc_blocks = 10
The filesystem on /dev/sda3 is now 20839675 (4k) blocks long.

As partições agora ficaram (note que removi as linhas com tempfs):

h3dema@station01:~$ df
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        78G   35G   40G  47% /
/dev/sda2       512M  6.1M  506M   2% /boot/efi


Apesar da alteração estar sendo mostrada, recomendo que você reinicie o computador novamente.


Resumindo:

  • Use parted para alterar o tamanho da partição
  • Use resize2fs para crescer o tamanho do sistema de arquivos e ocupar todo o espaço que você adicionou com parted.


Observações
1- Você pode solicitar ao parted a informação de disco livre sem ter que usar o modo iterativo mostrado acima. O comando é

sudo parted -s -a opt /dev/sda "print free"

2- Se você for alterar uma partição que pode ser desmontada (não é nosso caso neste exemplo), você também pode 

sudo parted -s -a opt /dev/sda "resizepart 3 100%"

No nosso exemplo, o comando acima irá tentar executar, mas não será capaz de emitir a mensagem para alterar uma partição em uso (que aparece no modo iterativo).

3- Note que não informamos no comando resize2fs qual o tamanho desejamos crescer o sistema de arquivos. Assim, ele irá crescer até 100 % do tamanho da partição. Você pode especificar um tamanho. Leia mais aqui.

Nenhum comentário:

Postar um comentário

Desabilitar ModemManager no Ubuntu

 ModemManager provides a unified, high-level interface to control all kinds of modems: 4G/5G modems (LTE/NR) 3G modems NB-IoT / Cat-M1 modul...