Ext4 corrompido e irrecuperável após o redimensionamento do LVM + falha de energia

1

Eu tenho um desktop Fedora 23 de disco rígido simples e padrão. O instalador de inicialização dupla configura a partição Linux como LVM, com volumes lógicos root, swap e home; raiz e lar eram ambos ext4. Tendo adicionado recentemente um adicional de 4 GB de RAM, decidi expandir o volume de swap diminuindo o volume inicial em 4 GB e adicionando isso ao swap. Tudo parecia correr bem e meu computador funcionou por vários dias sem problemas.

No entanto, eu não reiniciei ou desliguei após fazer o acima e, em seguida, houve uma falha de energia. Quando eu iniciei a inicialização, fui colocado no modo de recuperação de emergência, já que o volume do ext4 inicial estava corrompido. Eu tentei usar fsck várias vezes, mas não consegui reparar totalmente o problema. Acabei reformatando o volume inicial e restaurando de um backup recente.

Minhas perguntas:

  1. Foi a corrupção devido a mim estragar o redimensionamento de troca, ou devido a não reiniciar logo após o redimensionamento? O sistema de arquivos inicial tinha cerca de 240 GB livres quando eu o reduzia em 4 GB, e ele continuava sendo útil por vários dias depois, então eu acho que eu não estraguei tudo, mas esse foi o primeiro vez que eu usei o LVM.

  2. Se eu fiz o direito de LVM e o problema foi devido à falta de energia, havia algum comando LVM que eu poderia ter emitido para liberar as alterações para o disco rígido, ou é a única maneira correta de fazê-lo? para reiniciar após a mudança?

por Matthew Cline 26.04.2016 / 04:56

1 resposta

0

Você não precisa executar nada após o redimensionamento, mas não pode simplesmente redimensionar o volume lógico, mesmo que tenha desmontado o sistema de arquivos nele. Você tem que redimensionar o sistema de arquivos primeiro (para ext4 você pode usar resize2fs ), para ter certeza de que existem blocos não usados no volume lógico que pode ser liberado (para transferir para swap). Isso normalmente requer alguns cálculos e você não deve encolher o sistema de arquivos com menos Gb do que diminuirá o LV.

Para evitar o cálculo e os possíveis erros, o que eu faria seria o seguinte. Se o sistema de arquivos é originalmente de 100Gb e você quer reduzi-lo em 4Gb:

resize2fs /dev/mapper/vg0-home 95G
lvreduce -L 96G /dev/mapper/vg0-home
# resize to fill available space
resize2fs -p /dev/mapper/vg0-home

(ajuste vg0-home ao seu LV real)

    
por 26.04.2016 / 08:37