É possível aumentar a partição / sem reiniciar?

6

Eu posso ampliar a partição raiz ( / ) com fdisk sem reinicializar (excluindo uma recriação com o mesmo primeiro setor, mas maior último setor).

No entanto, não consigo fazer o kernel relê a tabela de partições :

# partx -va /dev/vda
partx: /dev/vda: adding partition #5 failed: Device or resource busy
partx: /dev/vda: error adding partition 5

# kpartx -va /dev/vda
device-mapper: reload ioctl on vda5 failed: Invalid argument
add map vda5 : 0 41492480 linear 0:0 2048

# hdparm -z /dev/vda
/dev/vda:
 re-reading partition table
 BLKRRPART failed: Device or resource busy

# sfdisk -R /dev/vda
BLKRRPART: Device or resource busy
This disk is currently in use.

Eu sei o que estou fazendo, e os sistemas de arquivos ext dentro das partições suportam a ampliação online.

Existe uma maneira de forçar o kernel a atualizar sua tabela de partições?

EDIT : Eu sei sobre o LVM, mas não é uma resposta para essa pergunta.

    
por Totor 15.04.2015 / 18:34

2 respostas

1

O kernel usará a tabela de partição antiga (em cache) até você desmontar todas as partições no disco afetado. Como você não pode fazer isso com a partição /, a opção que você tem é reinicializar. Da próxima vez, tente usar o LVM.

    
por 17.04.2015 / 09:24
0

Para redimensionar on-line o sistema de arquivos, especialmente /, você precisa ter alguma forma de abstração entre a camada física e a virtual, por exemplo, LVM.

Para redimensionar com o uso do LVM:

pvcreate /dev/sdX
vgcreate vg1 /dev/sdX
lvcreate Root -L10G

Da próxima vez que o disco estiver cheio, você usará lvextend /dev/mapper/vg1-Root -L+10G --resizefs e voilà você tem mais espaço.

Leia sobre o LVM no link

EDITAR

Para pedir educadamente ao kernel para atualizar a tabela de partições que está em cache, você pode tentar partprobe Mas eu não presumo que funcione como você precisa, como dito anteriormente, remontar todos os seus sistemas de arquivos, o que é difícil, a menos que você inicialize em um vm ao vivo.

EDITAR

Você seria capaz de redimensionar a partição, mas isso exige que você memorize / anote os tamanhos que vê em fdisk , o que pode ser um passo muito avançado para todos. Quando você tiver esses números, recrie a partição a partir do tamanho inicial e deixe-a preencher o disco. isto é mais fácil se a partição for a última do disco, se você tiver que redimensionar a partição do meio você certamente está sem sorte

Já fiz isso algumas vezes para os clientes, mas é um trabalho cabeludo e estressante de se fazer. Eu não recomendaria esse caminho para segurança e manutenção de dados.

    
por 19.04.2015 / 14:13