Força fsck.ext4 na reinicialização, mas realmente "forçada"

18

Um dos meus servidores Ubuntu 10.04 está me dando problemas. Quando eu executo fsck.ext4 -n /dev/sda5 , ele me diz que há erros na contagem de inode livre, na contagem de blocos livres e mais.

Eu tentei:

touch /forcefsck

Também tentei:

shutdown -rF now

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

Eu também verifiquei no meu netbook eeePC, Ubuntu 10.10, e tenho o mesmo problema!

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

Esclarecimento: Eu corro fsck.ext4 -n porque é 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 dos 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, reinicie novamente, mas isso é um tempo de inatividade sério para um servidor ao vivo. Uma reinicialização, auto fsck, e depois continuar a inicialização é muito mais sustentável em um servidor live, 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
    
por UrkoM 24.11.2010 / 15:27

6 respostas

10

Na página do manual do e2fsck:

  

"Note 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. Entretanto, mesmo se é 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 que está montado, a única resposta correta é '' não ''. realmente sabem o que estão fazendo, devem considerar responder a essa pergunta de qualquer outra forma. "

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

Se você não verificar o sistema de arquivos enquanto ele estiver montado, não entendi porque você precisa usar touch /forcefsck ; basta desmontá-lo e consertá-lo. Mas se for o caso e depois de uma correção seu FS ainda tiver erros, então você pode considerar o uso de:

e2fsck -cy /dev/sda5

Isso consertará um problema relacionado ao disco rígido chamado bad blocks que você pode ter (isso levará muito tempo).

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

    
por Nyamiou The Galeanthrope 24.11.2010 / 22:27
22

Eu sei que este é um tópico realmente antigo, mas recentemente tive que resolver esse problema, então eu queria postar como forçar o sistema operacional a consertar 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á qualquer coisa 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 estava pedindo, sem precisar recorrer a um disco ativo, o que nem sempre é possível, especialmente se você estiver em um sistema remoto.

    
por Brian 12.11.2014 / 15:50
12
sudo touch /forcefsck
sudo reboot

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

    
por Dan Benamy 31.05.2012 / 17:09
3

Você não pode forçar um fsck que irá reparar porque a partição está em uso. Tente executar a verificação de uma partição diferente ou de um CD ao vivo.

    
por charlie-tca 24.11.2010 / 20:33
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 de executar fsck e -i é o número máximo de dias antes de executar fsck .

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

    
por hk3jld 01.01.2017 / 01:00
0

touch /forcefsck sozinho não garantiu que meu sistema executou fsck na próxima inicialização. Eu também precisava correr:

sudo tune2fs -c 1 /dev/<my partition>

por exemplo.

sudo tune2fs -c 1 /dev/sda1

Mais explicações que encontrei estão aqui: Como Forçar o fsck a verificar o sistema de arquivos após a reinicialização

    
por Clock ZHONG 17.12.2016 / 10:21