Como posso verificar / dev / xvda1?


60

Ao fazer o login na instância do EC2 (Ubuntu), vejo

*** /dev/xvda1 should be checked for errors ***

Não posso fsck /dev/xvda1porque está montado e sudo umount /dev/xvda1falha porque está em uso. lsofmostra

jbd2/xvda  172               root  cwd       DIR              202,1     4096          2 /
jbd2/xvda  172               root  rtd       DIR              202,1     4096          2 /
jbd2/xvda  172               root  txt   unknown                                        /proc/172/exe

e kill -SIGKILL 172é ineficaz.

O que fazer?


Você pode definir / dev / xvda1 como "noauto" no fstab e reiniciar?
Nils Toedtmann 9/09/14

Para o Ubuntu, veja a resposta em askubuntu.com/a/548772/184435
danorton

Respostas:


51

Atualmente, a maioria dos Linuxs deve executar um fsck forçado no momento da inicialização, quando o arquivo / forcefsck estiver presente no sistema. Se você tiver a liberdade de reiniciar a VM, execute

touch /forcefsck

Em seguida, reinicie conforme sua conveniência


95

Para nossa instância do ec2 ubuntu, as respostas acima não funcionaram completamente.

No Ubuntu, por padrão, a verificação não está ativada no arquivo rcS . assim

  1. Edite o arquivo rcS sudo vi / etc / default / rcS

abaixo da linha

#FSCKFIX=no

Adicionar, acrescentar

FSCKFIX=yes
  1. Edite o arquivo fstab. sudo vi / etc / fstab

Procure o registro para / e se o último dígito for '0' altere para '1'. O último campo é fsckorder e é usado pelo fsck para decidir a ordem de verificação dos discos. Se o valor for '0', esse disco será ignorado .

Por exemplo,

LABEL=cloudimg-rootfs   /        ext4   defaults,discard        0 0

para

LABEL=cloudimg-rootfs   /        ext4   defaults,discard        0 1 
  1. Criar arquivo / forcefsck

    sudo touch / forcefsck

Reinicie a partir do console ec2.

Reverta o valor de fsckorder de '1' para '0' em / etc / fstab Exclua a linha FSCKFIX=yespara retornar o arquivo rcS ao estado original.

Espero que ajude.


5
Isso funcionou para mim. Simplesmente fazer "touch / forcefsck" não resolve, eu também tinha que habilitar o FSCKFIX.
Florin Andrei

11
O mesmo aqui; apenas fazer sudo touch /forcefsckantes da reinicialização não funcionou em um sistema Ubuntu 14.04, mas essa resposta funcionou.
Teemu Leisti

Eu tive que fazer uma outra etapa - uma modificação no / etc / fstab, como descrito aqui: nathanpfry.com/… Isso é estranho, porque a última vez que isso aconteceu, usei sua resposta e ela funcionou como está.
childofsoong 19/09/16

2
Obrigado, isso resolveu para mim em uma instância ec2 da AWS. Eu não tive que reiniciar a partir do console, um simples sudo rebootcom suas alterações resolveu isso.
7116 Ralph

Isso também corrigiu o problema no meu computador local. Eu acredito que isso deve ser marcado como melhor.
Arda

7

Como você não pode inicializar no disco ao vivo, isso pode parecer um pouco estranho, mas acho que ele fará o trabalho)

alto nível:

  • inicialize em nova (outra) instância.
  • anexar armazenamento da instância antiga para a nova (atual).
  • correr fsck.
  • desanexe o armazenamento de novo (atual) e reconecte-o à instância antiga.

0

Acabei de executar 3 etapas abaixo e o problema foi resolvido.

  1. Adicione "FSCKFIX = yes" a / etc / default / rcS
  2. sudo touch / forcefsck
  3. reinicialização do sudo

Obrigado a todos.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.