Table des matières
Effectuer un check fsck sur un disque système
Il arrive parfois que des erreurs soient présentes sur le système de fichier du disque système de votre serveur l'empêchant de fonctionner correctement.
Dans ce cas là, la seule solution est d'effectuer une vérification du système de fichier afin de - peut-être - réparer les erreurs sur le système de fichier.
Il y a deux manière de procéder à la vérification du disque système en fonction de si vous avez accès ou non au shell sur le serveur :
Dans quel cas suivre cette procédure ?
Vous pouvez accéder à un shell pour exécuter des commandes
Si vous parvenez à vous logguer sur votre serveur et accéder à un shell, vous pourrez alors effectuer la vérification sur le disque directement sur le serveur.
Passer le disque en Read-Only
Pour cela, il sera nécessaire de passer le disque système en read-only avec la commande suivante :
# mount -o remount,ro /
Si un message vous indique 'mount: / is busy', cela signifie que le disque est utilisé par certains programmes. Il faudra donc stopper / killer les programmes ayant w/u sur /. La commande 'lsof /' vous permettra de visualiser cela :
# lsof / COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rsyslogd 1237 root 3u REG 202,1 3762377 3544 /var/log/syslog rsyslogd 1237 root 5w REG 202,1 29569 25879 /var/log/messages rsyslogd 1237 root 6w REG 202,1 2217748 25872 /var/log/auth.log rsyslogd 1237 root 7w REG 202,1 36729452 17350 /var/log/daemon.log rsyslogd 1237 root 9w REG 202,1 978650 25878 /var/log/user.log rsyslogd 1237 root 10w REG 202,1 8108 12417 /var/log/kern.log
Dans le cas ci-dessus, on peut voir que rsyslogd utilise le disque système en écriture, il suffit alors de stopper / killer 'rsyslogd'. Il faudra en faire de même pour les autres process ayant 'w/u' sur '/'.
Puis vérifiez si le disque à bien été monté en ro avec la commande 'mount' :
# mount /dev/xvda1 on / type ext4 (ro,noatime,errors=remount-ro)
Procéder au fsck
Pour effectuer le fsck sur le disque, tapez alors la commande :
# fsck -f /dev/xvda1 fsck from util-linux 2.20.1 e2fsck 1.42.5 (29-Jul-2012) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information DEBIAN7_64: 32869/196608 files (0.2% non-contiguous), 274868/786432 blocks
Le shell est inaccessible sur le serveur
Dans le cas où le shell n'est pas accessible sur votre serveur, alors il faudra nécessairement effectuer la vérification du disque sur un autre serveur Gandi. En effet, il s'agit de l'un des atouts de la virtualisation, qui vous permet d'attacher un disque d'un serveur à un autre serveur.
Tout d'abord, créez un nouveau serveur (en mode Expert) dans la distribution de votre choix. La création du serveur prendra seulement quelques minutes.
Une fois le nouveau serveur crée, arrêter le serveur sur lequel le disque système présente des erreurs, puis détachez le disque système et rattachez le sur le nouveau serveur. Référez vous à la page sur la gestion des disques pour plus d'informations : Attacher un disque à un serveur
Démontage du disque système attaché au nouveau serveur
Lors de l'attachement du disque système à vérifier sur le nouveau serveur, le disque devrait être monté automatiquement. Vous pouvez le vérifier avec la commande 'mount' :
# mount /dev/xvda1 on / type ext4 (rw,noatime,errors=remount-ro) /dev/xvdk on /srv/DEBIAN7_64 type ext4 (rw,nosuid,nodev,noatime)
Dans le cas ci-dessus, le disque système à vérifier à le label 'DEBIAN7_64'. Pour le démonter tapez la commande :
# umount /srv/label_du_disque
Effectuer le check fsck
Une fois le disque démonté, vous pouvez alors procéder à la vérification sur le disque avec la commande 'fsck -f /dev/xvdX' (où X correspond au disque à vérifier) :
# fsck -f /dev/xvdk fsck from util-linux-ng 2.17.2 e2fsck 1.41.12 (17-May-2010) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information DEBIAN7_64: 32869/196608 files (0.2% non-contiguous), 274868/786432 blocks