Como posso fsck uma partição quando o dispositivo lê como ocupado (mas foi confirmado de outra forma)?

11

Estou tentando executar fsck -p /dev/sda5para reparar erros em uma partição ext4, no entanto, o comando gera

fsck from util-linux-ng 2.17.2
fsck.ext4: Device or resource busy while trying to open /dev/sda5
Filesystem mounted or opened exclusively by another program?

Eu confirmei o uso /etc/mtabe lsofque nada está usando a partição e ela não está montada. Eu também costumava fuser -k /dev/sda5fechar à força qualquer coisa usando o arquivo e umounttentar desmontá-lo sem sucesso.

Como posso forçar fscka verificação e, esperamos reparar, a partição, apesar de parecer ocupada? Supondo que estou confiante o suficiente para que não seja montado nem em uso, e que a possibilidade de corrupção de dados não seja um problema.

Todos os comandos foram executados como root em um liveCD do Ubuntu 10.04 de 32 bits. A partição é a parte do sistema (não residencial) de uma instalação do Ubuntu 10.04 de 32 bits.

Keeblebrox
fonte
Encontrei um método para resolver o problema maior relacionado a essa pergunta, mas ainda estou procurando uma resposta sobre como forçar fsckse ele acha que o dispositivo está ocupado (ou por que não pode ser feito).
31411 Keeblebrox
Estou encontrando o mesmo problema em um sistema RHEL5.8. / tmp foi desmontado, / etc / mtab e / proc / mounts não mostram nenhum rastro do sistema de arquivos. Até reinicializei a máquina, certificando-me de que sou o único conectado. lsof não mostra nenhum arquivo em uso no / tmp. O mesmo procedimento funciona bem em 4 servidores semelhantes instalados usando o mesmo perfil de kickstart. A diferença entre esses servidores e este é que este possui armazenamento SAN conectado a ele. O daemon de caminhos múltiplos poderia causar isso?
Bram
Não ajudou no meu caso, mas o Red Hat KB ( access.redhat.com/knowledge/solutions/54184 ) recomenda adicionar a opção nodmraid kernel como uma solução alternativa para esse problema.
Bram

Respostas:

4

Existem coisas (geralmente no kernel, como os threads do NFS, os arquivos de troca, as montagens de ligação etc.) que podem manter um sistema de arquivos ocupado que não aparece fuser.

Se você tentar fsckum sistema de arquivos montado, ele será corrompido. Você deve encontrar um CD ao vivo que não monte automaticamente seus sistemas de arquivos, como Knoppix ou Fedora.

Steven Pritchard
fonte
Tudo foi executado a partir de um disco ativo até agora. Como estou tentando fsckusar um sistema de arquivos local, espero que o NFS não o mantenha ocupado - no entanto, entendi o que você está dizendo sobre o kernel mantendo-o ocupado de maneiras que não necessariamente aparecem. Porém, como ainda acontece em um ambiente de disco ativo, você conhece uma maneira de parar o kernel de acessá-lo por tempo suficiente para eu executar fsck?
Keeblebrox
Caramba. Em uso a partir de um disco ativo? Só consigo pensar em duas coisas: 1) Tente um disco ativo diferente (Fedora em vez do Ubuntu, por exemplo). 2) Verifique / etc / fstab no sistema real. Talvez haja um arquivo de troca ou uma montagem de ligação que esteja sendo ativada automaticamente? Não necessariamente nessa ordem, devo acrescentar ...
Steven Pritchard
OK, de alguma forma eu perdi totalmente a última linha da pergunta. Atualizei minha resposta adequadamente.
Steven Pritchard
+1 porque sua menção à troca montada automaticamente levou a um avanço não relacionado e suas respostas ajudaram a resolver o problema maior. Ainda quero encontrar uma maneira de forçar fsckquando sei que o dispositivo não está ocupado nem montado e quando a corrupção de dados não é um problema.
Keeblebrox 31/07
Talvez o mdadm tenha detectado assinaturas de ataques na partição e vinculado a ela? Verifique / proc / mdstat.
Psusi
4

Você pode remover a partição fstabe reiniciar a máquina

ManOfLinux
fonte
2

Tente inicializar outro liveCD - eu recomendo o SystemRescueCD que foi projetado especificamente para resolver problemas com instalações linux. Também é menor que os liveCDs típicos do SO. E, por segurança, corra a fsckpartir do console (sem X).

Se o padrão fsck -pnão funcionar, você também pode tentar e2fsck -y -f.

rozcietrzewiacz
fonte
De acordo com a página do manual , e2fsck -y -fforça uma verificação em uma partição limpa. Não menciona nada sobre partições montadas. Você sabe se também forçará uma verificação?
Keeblebrox
Provavelmente não, mas você definitivamente deve evitar sistemas de arquivos montados com fsck (veja os parágrafos na parte superior da e2fsckpágina de manual). Outro pensamento: se /etc/mtabparece indicar que a partição não está montada, mas você ainda receber o erro, verifique também /proc/mounts, pois o mtabarquivo pode estar desatualizado por algum motivo estranho.
rozcietrzewiacz
0

Pergunta / resposta relacionada em /server/556014/centos-thinks-disk-is-busy-cant-mount-or-fsck

Especificamente, o sistema de arquivos já pode estar em uso por algo que não seja o mount of fsck. Tanto o fusor quanto o lsof podem ajudar a descobrir o que é esse driver / aplicativo.

zaTricky
fonte