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?

utilisateur1836587
la source
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

Sgaduuw
la source
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.

Krishnakumarp
la source
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.
alexus
la source
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.

thach.nv92
la source