Comment puis-je vérifier / dev / xvda1?


60

Lors de la connexion à une instance EC2 (Ubuntu), je vois

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

Je ne peux pas fsck /dev/xvda1parce qu'il est monté et sudo umount /dev/xvda1échoue parce qu'il est en cours d'utilisation. lsofmontre

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

et kill -SIGKILL 172est inefficace.

Que faire?


Pouvez-vous définir / dev / xvda1 sur "noauto" dans fstab et redémarrer?
Nils Toedtmann

Pour Ubuntu, voir la réponse sur askubuntu.com/a/548772/184435
danorton le

Réponses:


51

La plupart des Linux de nos jours devraient effectuer un fsck forcé au démarrage lorsque le fichier / forcefsck est présent sur le système. Si vous êtes libre de redémarrer la VM, lancez

touch /forcefsck

Puis redémarrez à votre convenance


95

Pour notre instance ec2 ubuntu, les réponses ci-dessus ne fonctionnaient pas complètement.

Sur Ubuntu, par défaut, la vérification n'est pas activée dans le fichier rcS . Alors

  1. Editer le fichier rcS sudo vi / etc / default / rcS

sous la ligne

#FSCKFIX=no

Ajouter

FSCKFIX=yes
  1. Editer le fichier fstab. sudo vi / etc / fstab

Recherchez l'enregistrement pour / et si le dernier chiffre est «0», remplacez-le par «1». Le dernier champ est fsckorder et est utilisé par fsck pour décider de l’ordre de vérification des disques. Si la valeur est '0', ce disque est ignoré .

Pour, par exemple,

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

à

LABEL=cloudimg-rootfs   /        ext4   defaults,discard        0 1 
  1. Créer un fichier / forcefsck

    sudo touch / forcefsck

Redémarrez depuis la console ec2.

Rétablissez la valeur de fsckorder de '1' à '0' dans / etc / fstab Supprimez la ligne FSCKFIX=yespour ramener le fichier rcS à son état d'origine.

J'espère que ça aide.


5
Cela a fonctionné pour moi. Faire simplement "touch / forcefsck" ne résout pas le problème, je devais également activer FSCKFIX.
Florin Andrei

1
Pareil ici; le fait de le faire sudo touch /forcefsckavant de redémarrer ne fonctionnait pas sur un système Ubuntu 14.04, mais cette réponse fonctionnait.
Teemu Leisti

Je devais faire une autre étape - une modification de / etc / fstab comme décrit ici: nathanpfry.com/… C'est étrange, car la dernière fois que cela s'est produit, j'ai utilisé votre réponse et elle a fonctionné telle quelle.
childofsoong

2
Merci, cela a résolu le problème pour moi sur une instance AWS d’EC2. Je n'ai pas eu à redémarrer à partir de la console, un simple sudo rebootavec vos changements résolus cela.
Ralph

Cela a également corrigé le problème sur mon ordinateur local. Je crois que cela devrait être marqué comme le meilleur.
Arda

7

Étant donné que vous ne pouvez pas démarrer sur un disque live, cela peut sembler un peu bizarre, mais je suppose que cela fera l'affaire)

haut niveau:

  • démarrer dans une nouvelle (autre) instance.
  • attachez le stockage de l'ancienne instance à la nouvelle (actuelle).
  • courir fsck.
  • détachez la mémoire de la nouvelle (actuelle) et rattachez-la à l'ancienne instance.

1

Je viens de faire 3 étapes ci-dessous et le problème résolu.

  1. Ajoutez "FSCKFIX = yes" à / etc / default / rcS
  2. sudo touch / forcefsck
  3. redémarrage sudo

Merci a tous.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.