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.
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.
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.
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.