Force fsck.ext4 na reinicialização, mas realmente "forte"

21

Um dos meus servidores Ubuntu 10.04 está me causando problemas. Quando executo, fsck.ext4 -n /dev/sda5ele diz que há erros na contagem de inodes livres, na contagem de blocos livres e muito mais.

Eu tentei:

touch /forcefsck

Também tentei:

shutdown -rF now

e ainda assim, após a reinicialização, vejo erros.

Também acabei de verificar no meu netbook eeePC, Ubuntu 10.10, e tenho o mesmo problema!

Como forçar um "forçado" realmente "forçado" a consertar seriamente o meu sistema de arquivos "fsck" do sistema de arquivos "/" na reinicialização?

Esclarecimento: Eu corro fsck.ext4 -nporque é um sistema de arquivos montado, para verificar se há erros. Isso me diz que existem. Eu pensei que o fsck automático a cada 30 montagens durante o processo de inicialização é precisamente para cuidar de erros no sistema de arquivos raiz. Mas isso não acontece no meu caso. Eu poderia reiniciar com um LiveCD e corrigir os erros e, em seguida, reiniciar novamente, mas esse é um período de inatividade grave para um servidor ativo. Uma reinicialização, fsck automático e, em seguida, continuar a inicialização é muito mais sustentável em um servidor ativo, e acredito que deve ser o comportamento correto.

Informações adicionais: Aqui está a saída. Parece algo que o autofsck consertaria, não é?

root@server:~# fsck.ext4 -n /dev/sda5
e2fsck 1.41.11 (14-Mar-2010)
Warning!  /dev/sda5 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda5 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (1849368, counted=1948909).
Fix? no

Free inodes count wrong (545504, counted=552134).
Fix? no


/dev/sda5: ********** WARNING: Filesystem still has errors **********

/dev/sda5: 116752/662256 files (0.2% non-contiguous), 795324/2644692 blocks
UrkoM
fonte
qual é a versão do servidor Ubuntu que você está usando?
crncosta
10.04 Vou editar minha pergunta.
UrkoM
Eu não acho que você possa fazer isso, na verdade, talvez seja melhor fazer a verificação manualmente.
RolandiXor
1
Desculpe, mas ainda preciso de mais informações. Você está executando o fsck em sistemas de arquivos montados? você pode inicializar a partir de um LiveCD e verificar novamente (com seu / dev / sda5 desmontado)?
crncosta
Não é possível que não seja o sistema de arquivos, mas o disco rígido esteja quebrado? Nesse caso, seria de esperar que o ext4 não corrigisse erros tão bem como se houvesse apenas alguns setores defeituosos.
Stefano Palazzo

Respostas:

10

Na página do manual e2fsck:

"Observe que, em geral, não é seguro executar o e2fsck em sistemas de arquivos montados. A única exceção é se a opção -n for especificada e as opções -c, -l ou -L não forem especificadas. No entanto, mesmo que seja seguro para isso, os resultados impressos pelo e2fsck não são válidos se o sistema de arquivos estiver montado.Se o e2fsck perguntar se você deve ou não verificar um sistema de arquivos montado, a única resposta correta é '' não ''. Somente especialistas que realmente sabem o que eles devem considerar responder a essa pergunta de qualquer outra maneira ".

Portanto, se você verificar um FS montado com o fsck, mesmo usando a opção -n, o resultado poderá não ser válido. Não verifique os sistemas de arquivos montados. Use um Live-CD / Live-USB.

Se você não verificar o sistema de arquivos enquanto estiver montado, não entendo por que você precisa usá- touch /forcefscklo, basta desmontá-lo e corrigi-lo. Mas, se for o caso, e após uma correção, o seu FS ainda tem erros, você pode considerar o uso de:

e2fsck -cy /dev/sda5

Isso corrigirá um problema relacionado ao disco rígido chamado de blocos defeituosos que você pode ter (isso levará muito tempo).

Se você deseja verificar um sistema de arquivos montado, não sei como proceder, mas acho que você deve criar outra pergunta.

Nyamiou The Galeanthrope
fonte
Você está correto, o sistema de arquivos está montado. E é claro que preciso fazer fsck quando desmontado. Mas eu corro fsck -n para verificar enquanto montado, sem fazer alterações, e isso indica que há erros. E o fsck na reinicialização não deveria corrigi-los ???
UrkoM
Acabei de notar o que você diz na primeira frase: por que o fsck -n não seria válido em um sistema de arquivos montado? Como posso verificar se um sistema de arquivos montado apresenta erros de maneira confiável?
UrkoM
Você pode verificar a página de manual do e2fsck que diz: "Observe que, em geral, não é seguro executar o e2fsck em sistemas de arquivos montados. A única exceção é se a opção -n for especificada e as opções -c, -l ou -L forem No entanto, mesmo que seja seguro fazê-lo, os resultados impressos pelo e2fsck não são válidos se o sistema de arquivos estiver montado. Se o e2fsck perguntar se você deve ou não verificar um sistema de arquivos montado, a única resposta correta é '' ". Somente especialistas que realmente sabem o que estão fazendo devem considerar responder a essa pergunta de qualquer outra maneira".
Nyamiou The Galeanthrope
Não sei como verificar um sistema de arquivos montado, talvez você deva criar outra pergunta.
Nyamiou The Galeanthrope
Você pode adicionar esses dois últimos comentários à sua resposta? Então eu aceito. Eu não sabia disso, e é por isso que ... acho que o fsck -n não processa o diário, portanto o estado do sistema de arquivos é inconsistente sem observar as últimas alterações mantidas lá.
UrkoM
24

Sei que esse é um encadeamento muito antigo, mas recentemente tive que resolver esse problema, então queria postar como forçar o sistema operacional a corrigir problemas encontrados com o fsck durante a inicialização (para 12.04).

Você precisa executar o comando sudo touch /forcefsck. Isso fará com que ele execute um fsck na próxima inicialização. Você pode ver os resultados do fsck em /var/log/boot.log.

No entanto, você não tem garantia de que o fsck consertará tudo o que encontrar. Para fazer isso, você precisaria editar o arquivo / etc / default / rcS. Há uma linha no final desse arquivo:

FSCKFIX=no

Isso precisa ser alterado para o seguinte:

FSCKFIX=yes

Isso terá o mesmo efeito que executar o fsck com a opção -y, que forçará todas as correções possíveis de serem implementadas e não solicitará a interação do usuário.

Isso permitirá que você execute o fsck como o OP solicitava sem ter que recorrer à inicialização a partir de um disco ativo, o que nem sempre é possível, especialmente se você estiver em um sistema remoto.

Brian
fonte
1
A edição desta entrada na minha instância do Ubuntu EC2, juntamente com os comandos sudo touch /forcefscke, sudo shutdown -rresolveu com êxito os problemas do sistema de arquivos e o aviso de verificação no login. Fácil e sem interrupções - vivas.
c.gutierrez
A mesma pergunta foi feita em Server Fault, e essa resposta também foi a que funcionou para mim, em um sistema Ubuntu 14.04. Apenas fazer sudo touch /forcefsckoe depois reiniciar não; edição rcSera necessária.
Teemu Leisti
12
sudo touch /forcefsck
sudo reboot

Você tem um erro de digitação - está tocando em / forcefcsk. O "c" e o "s" são trocados. fsck é a abreviação de FileSystemChecK.

Dan Benamy
fonte
Isso não funcionaria para mim porque o sistema de arquivos raiz é montado como somente leitura devido a erros que eu consertei fsck! O problema do ovo e da galinha que só pode ser resolvido via liveCD ou puxando a unidade para outra máquina.
HDave
3

Você não pode forçar um fsck / que será reparado porque a partição está em uso. Tente executar a verificação em uma partição diferente ou em um live CD.

charlie-tca
fonte
2
É verdade, mas o fsck automático na inicialização deve ocorrer antes da partição estar em uso, precisamente para poder corrigir erros em "/". Caso contrário, qual é o objetivo?
UrkoM
3
Acredito que a verificação ocorra antes do uso, no entanto, é mais uma verificação consultiva. Cabe a você decidir como corrigir os erros. Uma verificação fácil é ao olhar para / etc / fstab. O "/" recebe uma verificação diferente das outras partições.
precisa
Isso acontece antes que o root seja girado? ie Disco RAM inicial.
Mckenzm
1

Você pode fazer as revisões automaticamente da seguinte maneira:

Tune2fs -c 5 -i 10 / dev / sda1

-cé o número máximo de montagens antes da execução fscke -ié o número máximo de dias antes da execução fsck.

Nesse caso, será feito a cada 5 montagens ou a cada 10 dias, o que ocorrer primeiro.

Eu tenho dois computadores, um com o Linux SuSE 13.2 e outro com o Linux Mint 18.0 e em ambos funciona perfeitamente.

hk3jld
fonte
Quais são os formulários e comentários no formulário automático da seguinte maneira: Tune2fs -c 5 -i 10 / dev / sda1 Onde: -c é o número máximo de montagens antes de executar o fsck Onde: -i é o número máximo de dias antes de executar o fsck Nesse caso, será feito a cada 5 montagens ou a cada 10 dias, o que ocorrer primeiro. Eu tenho dois computadores, um com Linux SuSE 13.2 e outro com Linux MInt 18.0 e ambos funcionam perfeitamente.
Hk3jld 01/01/19
Quais são os formulários e comentários no formulário automático da seguinte maneira: Tune2fs -c 5 -i 10 / dev / sda1 Onde: -c é o número máximo de montagens antes de executar o fsck Onde: -i é o número máximo de dias antes de executar o fsck Nesse caso, será feito a cada 5 montagens ou a cada 10 dias, o que ocorrer primeiro. Eu tenho dois computadores, um com Linux SuSE 13.2 e outro com Linux MInt 18.0 e ambos funcionam perfeitamente. Eu não sei Inglês, mas eu uso um tradutor, espero que o treinamento é bom
hk3jld
1
Também funciona no Ubuntu?
George Udosen 1/1