Como limpar uma lista de inodes órfãos não processados?

17

Eu tentei montar um sistema de arquivos montado anteriormente somente leitura, gravável por leitura :

mount -o remount,rw /mountpoint

Infelizmente não funcionou:

mount: /mountpoint not mounted already, or bad option

dmesg relatórios:

[2570543.520449] EXT4-fs (dm-0): Couldn't remount RDWR because of unprocessed orphan inode list.  Please umount/remount instead

A umounttambém não funciona:

umount /mountpoint
umount: /mountpoint: device is busy.
    (In some cases useful info about processes that use
     the device is found by lsof(8) or fuser(1))

Infelizmente, nenhum lsofdos dois fusermostra nenhum processo acessando algo localizado sob o ponto de montagem.

Então - como posso limpar essa lista de órfãos não processados para poder montar o sistema de arquivos novamente sem reiniciar o computador?

bmk
fonte
1
Você já tentou fuser -km /mountpoint? Cuidado, porém, o sinalizador -k mata todos os processos que acessam esse diretório.
Richard Keller
Você pode fornecer um pouco mais de insight sobre o que consiste o dm-0?
Thinice
Sinto que sei o que está acontecendo, mas você pode me dizer, o sistema de arquivos foi originalmente rw, remontado (devido a um erro ou algo assim) ro, e agora você está tentando rw novamente?
Matthew Ife
@ Malfe: O sistema de arquivos era remontado anteriormente ropor propósito. É um sistema de arquivos em um LVM que contém um instantâneo de backup diário que será definido rwdurante a operação de backup e roapós o término do backup.
BMK

Respostas:

6

Você limpa a lista de inodes órfãos não processados ​​desmontando e remontando o sistema de arquivos.

Uma discussão extensa da lista de discussão linux-ext4 tem mais informações sobre o que é esta mensagem e por que ela pode aparecer. Em resumo, aconteceu uma de duas coisas: Você encontrou um bug do kernel ou, muito provavelmente, alguma corrupção no sistema de arquivos ocorreu uma das vezes anteriores em que você remontou o sistema de arquivos somente para leitura. É provavelmente por isso que o sistema acha que algo ainda está usando o sistema de arquivos quando não existe.

Se já faz um ano e você ainda não reinicializou a máquina, desista e programe uma janela de manutenção.

Michael Hampton
fonte
Enquanto isso, agendei uma janela de manutenção e reiniciei a máquina. Isso resolveu o problema (eu não esperava mais nada ...). Eu aceitarei sua resposta. Provavelmente você está certo de que houve alguma corrupção no sistema de arquivos - embora eu não possa provar isso.
BMK
24

Se você estiver usando ext2 / ext3 / ext4, poderá usar e2fsckpara limpar inodes órfãos:

e2fsck -f

Para reiserfs, você pode usar o reiserfsckque também limpará inodes órfãos.

Richard Keller
fonte
Não sabe ao certo por que isso foi rebaixado, talvez forneça uma razão para o voto rebaixado? A execução do e2fsck limpa inodes órfãos, que você verá na saída do console como clearing orphaned inode XXXXonde XXXX é um número de inode. Você pode executar facilmente o e2fsck sem reiniciar o sistema. Depois de executar o e2fsck, você poderá remontar a partição.
21412 Richard Keller
2
Obrigado, muito obrigado .. Passo horas descobrindo o erro. Fazer 'e2fsck -f / dev / sda1' corrigiu os nós órfãos para mim, juntamente com outras correções. Eu só disse sim a todos e funciona bem agora :)
whitehat
1
Muito obrigado!!. Seu comandos fixos somente leitura disco VirtualBox VM após a versão unsucessfull novo VirtualBox instalar: sudo e2fsck -f / dev / sda1
nine9five
2
Perfeito, funcionou para mim na partição raiz. A resposta aceita (reinicialização) não funcionou sozinha. Eu tive que reiniciar após o e2fsck, então parece que você ainda precisa de uma janela de manutenção.
AdamS
1
Melhor resposta que a aceita. Isso funcionou perfeitamente para o meu VPS. Encontrei muitos erros e corrigi-lo, do que reiniciar e tudo está funcionando novamente. Salvou o meu dia.
Cérebro Foo Longo
6

e2fsck -f <mount point> não vai funcionar.

Primeiro descubra os pontos de montagem com

sudo mount -l

Então fsck a unidade diretamente.

Por exemplo para mim

sudo e2fsck -f /dev/xvda2
Ganesh Krishnan
fonte
Quando você pesquisa no google um problema e chega à sua própria solução no stackoverflow. Minha vida agora está completa.
Ganesh Krishnan em
1

Eu recomendaria primeiro desmontar a partição com força, ou seja, usando a opção -f e executando uma verificação do sistema de arquivos usando fsck.

wolfgangsz
fonte
1
Infelizmente umount -ftambém não teve sucesso. A mensagem de erro é a mesma que em uma planície umount.
BMK
1

Você provavelmente deve tentar desmontar preguiçosamente, ou seja:

umount -l

fonte