Herdei um PC-servidor antigo (quad Pentium 4) que só tinha partições para /
, /boot
e swap
(RAID1 com 2 discos SATA 1T), mas precisava atualizar a distro (do CentOS 6.9). Decidi criar uma nova partição para que aquela que contém /
pudesse ser formatada.
Mas esqueci de adicionar a -p
bandeira resize2fs
e agora ela está olhando para mim silenciosamente e não sei dizer quanto tempo pode demorar (está nisso há mais de 50 horas). Agora, eu sei que reduzir um sistema de arquivospode demorar muito, mas enquanto eu poderia esperar100 horas, algo como800 horas está fora de questão.
Aqui está o que estou pensando no momento:
- Vá em frente com
Ctrl
+C
&&e2fsck
. - Monte a partição e exclua manualmente mais de 100G de dados que não nos servem para nada.
- Comece do topo com
resize2fs -p ...
Mas não consegui encontrarconsensosobre comoperigosoé para enviar SIGINT para resize2fs
.
Eu tenho um backup extra das informações importantes, mas ainda gostaria de fazer isso sem corromper o sistema de arquivos. E sim, estou ciente de que pode ser mais rápido instalar a distro do zero e restaurar meu backup.
Atualizar: Decidi interrompê-lo. E tudo parece estar bem, mas a questão permanece. Ainda estou curioso.
Responder1
Definitivamente, uma pergunta interessante e embora seu resultado tenha sido muito bom (e como eu esperava, já que capturar SIGINT
não é exatamente ciência de foguetes e fazer uma pausa no meio do caminho, apenas realocar alguns blocos de dados também não parece difícil), também há histórias de insucesso suficientes também , como por exemplo bug do Debian de 10 anoshttps://bugs.debian.org/cgi-bin/bugreport.cgi?bug=574292
Mas mesmo que esse bug tenha 10 anos, acabei de fazer uma simulação e2fsck
e , resize2fs
embora strace
o primeiro instale um monte de manipuladores de sinal, incluindo SIGINT
e SIGTERM
, resize2fs
ainda não o faz.
Portanto, se alguém encontrar esta pergunta: considere o que foi dito acima como uma evidência anedótica e continue atento. :-) Observe que a página de manual menciona um sinalizador para criar um arquivo de desfazer em caso de erros.
(E eu, eu só queria ter executado essa operação de redimensionamento dentro de uma sessão de tela... mas ok, pelo menos eu fiz -p
)
editar
Espere, acabei de perceber, por que não usar o SSH, fazer um instantâneo do LVM e e2fsck
isso enquanto o redimensionamento ainda está em execução? Fiz isso 5 vezes seguidas durante a fase "Relocando blocos" e embora receba "contém um sistema de arquivos com erros, verificação forçada" em todas as verificações, nunca encontrei nenhum erro. Agora, é claro, não me pergunte sobre integridade de dados.
editar
Resposta bastante interessante do próprio tytso@ Aliás, emhttps://bugs.debian.org/cgi-bin/bugreport.cgi?bug=574292#30