Com a popularização das tecnologias de virtualização, tornou-se muito comum a necessidade de redimensionar uma partição de um servidor. No caso do sistema de arquivo ext3, e seu sucessor ext4, isso é possível com o comando resize2fs.
Podemos tanto aumentar quanto diminuir o tamanho da partição. Aqui vou mostrar como aumentar o tamanho da partição, ocupando todo o espaço disponível, ou até um tamanho determinado.
Antes de qualquer alteração é extremamente recomendado o backup completo dos dados no disco rígido!
Nos servidores virtuais, geralmente uso uma partição somente para os dados, separada das partições de sistema. Nesse caso a partição está montada em /dados:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 1.9G 573M 1.2G 33% /
tmpfs 61M 0 61M 0% /lib/init/rw
udev 57M 148K 57M 1% /dev
tmpfs 61M 0 61M 0% /dev/shm
/dev/sda3 5.0G 139M 4.6G 3% /dados
O primeiro passo é rodar o fsck para verificar e corrigir eventuais problemas no sistema de arquivos:
umount /dados
fsck -f /dados
Lembrando que para desmontar uma partição ela não pode estar sendo usada por nenhum processo. Para checar isso podemos usar o comando lsof:
lsof /dados
Após a execução do
fsck, vamos apagar a partição e recriá-la no tamanho desejado. Os dados não serão afetados e, no caso de uma falha grave, podemos recuperar as informações do backup que já fizemos

:
fdisk /dev/sda
Checando as partições:
Command (m for help): p
Disk /dev/sda: 42.9 GB, 42949672960 bytes
[...]
Device Boot Start End Blocks Id System
/dev/sda1 2048 3905535 1951744 83 Linux
/dev/sda2 3905536 4405247 249856 82 Linux swap / Solaris
/dev/sda3 4405248 14891007 5242880 83 Linux
Apagando a partição sda3:
Command (m for help): d
Partition number (1-4): 3
Criando nova partição no tamanho desejado. Nesse caso estou ampliando de 5GB para 10GB:
Coloque o valor total que deseja para a nova particição que está alterando.
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First sector (4405248-83886079, default 4405248):
Using default value 4405248
Last sector, +sectors or +size{K,M,G} (4405248-83886079, default 83886079): +10GB
Listando as partições novamente:
Command (m for help): p
Disk /dev/sda: 42.9 GB, 42949672960 bytes
[...]
Device Boot Start End Blocks Id System
/dev/sda1 2048 3905535 1951744 83 Linux
/dev/sda2 3905536 4405247 249856 82 Linux swap / Solaris
/dev/sda3 4405248 23936497 9765625 83 Linux
Note o aumento nos blocos da partição sda3 de 5242880 para 9765625.
Gravando as alterações e finalizando o fdisk:
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
Como o fdisk nos alerta para o sistema reconhecer a alteração, é necessário um reboot, ou a execução de um programa que informe as alterações ao kernel.
Nesse caso usei o partprobe:
partprobe /dev/sda
A partição já está no tamanho correto. Agora precisamos fazer o sistema de arquivos reconhecer o espaço extra. É aqui que entra o resize2fs:
resize2fs /dev/sda3
O resize2fs vai aumentar o sistema de arquivos para ocupar todo o espaço disponível na partição. Se não quisermos usar todo o espaço, podemos determinar o tamanho desejado:
resize2fs /dev/sda3 8G
Caso nenhum erro ocorra podemos montar a nova partição e conferir o espaço disponível:
mount /dev/sda3 /dados
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 1.9G 575M 1.2G 33% /
tmpfs 61M 0 61M 0% /lib/init/rw
udev 57M 148K 57M 1% /dev
tmpfs 61M 0 61M 0% /dev/shm
/dev/sda3 9.2G 140M 8.6G 2% /dados
Agora é só usar o novo espaço!
Social