Forcer fsck.ext4 au redémarrage, mais vraiment "énergique"

21

Un de mes serveurs Ubuntu 10.04 me pose problème. Lorsque je l'exécute, fsck.ext4 -n /dev/sda5il m'indique qu'il y a des erreurs dans le nombre d'inodes libres, le nombre de blocs gratuits, etc.

J'ai essayé:

touch /forcefsck

A également essayé:

shutdown -rF now

et encore, après le redémarrage, je vois des erreurs.

Je viens également de vérifier mon netbook eeePC, Ubuntu 10.10, et j'ai le même problème!

Comment puis-je forcer un fsck vraiment "forcé" "forcé" "à réparer sérieusement mon système de fichiers" / "au redémarrage?

Clarification: je cours fsck.ext4 -ncar c'est un système de fichiers monté, pour vérifier s'il y a des erreurs. Cela me dit qu'il y en a. Je pensais que le fsck automatique tous les 30 montages pendant le processus de démarrage était précisément pour prendre soin des erreurs dans le système de fichiers racine. Mais ça ne le fait pas dans mon cas. Je pouvais redémarrer avec un LiveCD et corriger les erreurs, puis redémarrer à nouveau, mais c'est un temps d'arrêt grave pour un serveur en direct. Un redémarrage, fsck automatique, puis poursuivre le démarrage est beaucoup plus durable sur un serveur en direct, et je pense que cela devrait être le bon comportement.

Informations supplémentaires: Voici la sortie. Cela ressemble à quelque chose que l'autofsck corrigerait, n'est-ce pas?

root@server:~# fsck.ext4 -n /dev/sda5
e2fsck 1.41.11 (14-Mar-2010)
Warning!  /dev/sda5 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda5 contains a file system with errors, check forced.
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
Free blocks count wrong (1849368, counted=1948909).
Fix? no

Free inodes count wrong (545504, counted=552134).
Fix? no


/dev/sda5: ********** WARNING: Filesystem still has errors **********

/dev/sda5: 116752/662256 files (0.2% non-contiguous), 795324/2644692 blocks
UrkoM
la source
quelle est la version du serveur Ubuntu que vous utilisez?
crncosta
10.04. Je vais modifier ma question.
UrkoM
Je ne pense pas que vous puissiez réellement le faire, en fait vous feriez mieux de faire le contrôle manuellement.
RolandiXor
1
Désolé mais j'ai encore besoin de plus d'informations. Faites-vous fsck sur des systèmes de fichiers montés? pouvez-vous démarrer à partir d'un LiveCD et vérifier à nouveau (avec votre / dev / sda5 démonté)?
crncosta
N'est-il pas possible que le système de fichiers, mais le disque dur soit cassé? Dans ce cas, on s'attendrait à ce que ext4 ne corrige pas les erreurs aussi bien qu'il n'y aurait que quelques secteurs défectueux.
Stefano Palazzo

Réponses:

10

Depuis la page de manuel e2fsck:

"Notez qu'en général, il n'est pas sûr d'exécuter e2fsck sur des systèmes de fichiers montés. La seule exception est si l'option -n est spécifiée et que les options -c, -l ou -L ne sont pas spécifiées. Cependant, même si elle est sûre pour ce faire, les résultats imprimés par e2fsck ne sont pas valides si le système de fichiers est monté. Si e2fsck vous demande si vous devez vérifier un système de fichiers qui est monté, la seule bonne réponse est '' non ''. Seuls les experts qui savent vraiment quoi ils font devrait envisager de répondre à cette question de toute autre manière. "

Donc, si vous vérifiez un FS monté avec fsck même en utilisant l'option -n, le résultat peut ne pas être valide du tout. Ne vérifiez pas les systèmes de fichiers montés. Utilisez un Live-CD / Live-USB.

Si vous ne vérifiez pas le système de fichiers pendant qu'il est monté, je ne comprends pas pourquoi vous devez l'utiliser, touch /forcefsckvous pouvez simplement le démonter et le réparer. Mais si c'est le cas et qu'après un correctif, votre FS a encore des erreurs, vous pouvez envisager d'utiliser:

e2fsck -cy /dev/sda5

Cela résoudra un problème lié au disque dur appelé blocs défectueux que vous pourriez avoir (cela prendra beaucoup de temps).

Si vous voulez vérifier un système de fichiers monté, je ne sais pas comment procéder mais je pense que vous devriez créer une autre question.

Nyamiou le Galeanthrope
la source
Vous avez raison, le système de fichiers est monté. Et bien sûr, je dois faire fsck lorsqu'il est démonté. Mais j'exécute fsck -n pour vérifier pendant le montage, sans apporter de modifications, et il m'indique qu'il y a des erreurs. Et le fsck au redémarrage ne devrait-il pas les réparer ???
UrkoM
Je viens de remarquer ce que vous dites dans la première phrase: pourquoi fsck -n ne serait-il pas valide sur un système de fichiers monté? Comment puis-je vérifier si un système de fichiers monté contient des erreurs de manière fiable?
UrkoM
Vous pouvez consulter la page de manuel e2fsck qui dit: "Notez qu'en général, il n'est pas sûr d'exécuter e2fsck sur des systèmes de fichiers montés. La seule exception est si l'option -n est spécifiée et les options -c, -l ou -L sont non spécifié. Cependant, même si cela est sûr, les résultats imprimés par e2fsck ne sont pas valides si le système de fichiers est monté. Si e2fsck vous demande si vous devez vérifier un système de fichiers qui est monté, la seule réponse correcte est '' ' non ". Seuls les experts qui savent vraiment ce qu'ils font devraient envisager de répondre à cette question d'une autre manière."
Nyamiou The Galeanthrope
Je ne sais pas comment vérifier un système de fichiers monté, vous devriez peut-être créer une autre question.
Nyamiou The Galeanthrope
Pouvez-vous ajouter ces deux derniers commentaires à votre réponse? Alors je l'accepterai. Je ne le savais pas, c'est pourquoi ... Je pense que c'est parce que fsck -n ne traite pas le journal, donc l'état du système de fichiers est incohérent sans regarder les dernières modifications qui y sont conservées.
UrkoM
24

Je sais que c'est un très vieux thread, mais j'ai récemment dû résoudre ce problème, donc je voulais poster comment forcer le système d'exploitation à résoudre les problèmes trouvés avec fsck lors du démarrage (pour 12.04).

Vous devez exécuter la commande sudo touch /forcefsck. Cela entraînera l'exécution d'un fsck au prochain démarrage. Vous pouvez voir les résultats de fsck dans /var/log/boot.log.

Cependant, vous n'êtes pas assuré que fsck corrigera tout ce qu'il trouvera. Pour ce faire, vous devez modifier le fichier / etc / default / rcS. Il y a une ligne à la fin de ce fichier:

FSCKFIX=no

Cela doit être modifié comme suit:

FSCKFIX=yes

Cela aura le même effet que l'exécution de fsck avec l'option -y qui forcera toutes les corrections possibles à être implémentées et ne demandera pas d'interaction avec l'utilisateur.

Cela vous permettra d'exécuter le fsck comme le demandait l'OP sans avoir à recourir au démarrage à partir d'un disque en direct, ce qui n'est pas toujours possible, surtout si vous êtes sur un système distant.

Brian
la source
1
La modification de cette entrée sur mon instance Ubuntu EC2 avec les commandes sudo touch /forcefscket a sudo shutdown -rréussi à résoudre les problèmes de système de fichiers et l'avertissement de vérification lors de la connexion. Facile et non perturbateur - acclamations.
c.gutierrez
La même question a été posée sur Server Fault, et cette réponse était aussi celle qui fonctionnait pour moi, sur un système Ubuntu 14.04. Le fait de faire le sudo touch /forcefsckredémarrage puis de ne pas le faire; une modification rcSétait nécessaire.
Teemu Leisti
12
sudo touch /forcefsck
sudo reboot

Vous avez une typo que vous touchez / forcefcsk. Le "c" et le "s" sont échangés. fsck est l'abréviation de FileSystemChecK.

Dan Benamy
la source
Cela ne fonctionnerait pas pour moi car le système de fichiers racine est monté en lecture seule en raison d'erreurs que je dois corriger fsck! Poulet et le problème des œufs qui ne peuvent être résolus que via liveCD ou en tirant le lecteur dans une autre machine.
HDave
3

Vous ne pouvez pas forcer un fsck sur / qui se réparera car la partition est en cours d'utilisation. Essayez d'exécuter la vérification à partir d'une autre partition ou d'un CD live.

charlie-tca
la source
2
C'est très vrai, mais le fsck automatique au démarrage devrait se produire avant que la partition ne soit utilisée, précisément pour pouvoir corriger les erreurs sur "/". Sinon, à quoi ça sert?
UrkoM
3
Je crois que le contrôle a lieu avant utilisation, cependant, il s'agit davantage d'un contrôle consultatif. C'est à vous de décider comment corriger les erreurs. Une vérification facile consiste à regarder / etc / fstab. Le "/" obtient une vérification différente de celle des autres partitions.
charlie-tca
Cela se produit-il avant que la racine ne pivote? c'est à dire. INITial Ram Disk.
mckenzm
1

Vous pouvez faire effectuer les révisions automatiquement de la manière suivante:

Tune2fs -c 5 -i 10 / dev / sda1

-cest le nombre maximal de montages avant l'exécution fscket -ile nombre maximal de jours avant l'exécution fsck.

Dans ce cas, tous les 5 montages ou tous les 10 jours, selon la première éventualité.

J'ai deux ordinateurs, l'un avec Linux SuSE 13.2 et l'autre avec Linux Mint 18.0 et dans les deux cela fonctionne parfaitement.

hk3jld
la source
Quels sont les formulaires et commentaires dans le formulaire automatique comme suit: Tune2fs -c 5 -i 10 / dev / sda1 Où: -c est le nombre maximal de montages avant d'exécuter fsck Où: -i est le nombre maximal de jours avant d'exécuter fsck Dans ce cas, tous les 5 montages ou tous les 10 jours, selon la première éventualité. J'ai deux ordinateurs, l'un avec Linux SuSE 13.2 et l'autre avec Linux MInt 18.0 et les deux fonctionnent parfaitement.
hk3jld
Quels sont les formulaires et commentaires dans le formulaire automatique comme suit: Tune2fs -c 5 -i 10 / dev / sda1 Où: -c est le nombre maximal de montages avant d'exécuter fsck Où: -i est le nombre maximal de jours avant d'exécuter fsck Dans ce cas, tous les 5 montages ou tous les 10 jours, selon la première éventualité. J'ai deux ordinateurs, l'un avec Linux SuSE 13.2 et l'autre avec Linux MInt 18.0 et les deux fonctionnent parfaitement. Je ne connais pas l'anglais mais j'utilise un traducteur, j'espère que la formation va bien
hk3jld
1
Cela fonctionne-t-il également sur Ubuntu?
George Udosen