Raspberry Pi 3 et Raspbian Jessie - Comment exécuter fsck au démarrage?

13

Comment exécuter fsck au démarrage lorsque vous utilisez Pi 3 et Raspberry Jessie? J'ai lu quelques tutoriels mais ils diffèrent.

J'ai couru sudo touch /forcefsckmais que dois-je faire d'autre? Je sais que je devrais définir FSCKFIX = yes mais quel est le bon fichier? Certains en disent d' /lib/init/vars.shautres /etc/default/rcS.

Comment puis-je vérifier que mes paramètres fonctionnent? Je n'ai aucune visibilité sur l'écran. Il y a des pannes de courant, il y a donc un risque élevé que le système de fichiers soit corrompu.

Éditer:

J'ai essayé deux solutions mentionnées ci-dessous.

1) En utilisant sudo shutdown -rF now/var/log/boot.log dit: [^[[32m OK ^[[0m] Started Load/Save Random Seed. [^[[32m OK ^[[0m] Started Show Plymouth Boot Screen. [ 3.679250] systemd-fsck[219]: fsck.fat 3.0.27 (2014-11-12) [ 3.681320] systemd-fsck[219]: /dev/mmcblk0p1: 124 files, 2666/8057 clusters [^[[32m OK ^[[0m] Started File System Check on /dev/mmcblk0p1. Mounting /boot... [^[[32m OK ^[[0m] Reached target Paths. [^[[32m OK ^[[0m] Created slice system-systemd\x2drfkill.slice. Starting Load/Save RF Kill Switch Status of rfkill0... [^[[32m OK ^[[0m] Started Load/Save RF Kill Switch Status of rfkill0. [^[[32m OK ^[[0m] Created slice system-ifup.slice. [^[[32m OK ^[[0m] Mounted /boot. [^[[32m OK ^[[0m] Reached target Local File Systems. Starting Tell Plymouth To Write Out Runtime Data... Starting Create Volatile Files and Directories... Starting LSB: Raise network interfaces.... [^[[32m OK ^[[0m] Reached target Remote File Systems. Starting Trigger Flushing of Journal to Persistent Storage... Starting LSB: Prepare console... Starting LSB: Switch to ondemand cpu governor (unless shift key is pressed)... [^[[32m OK ^[[0m] Started Tell Plymouth To Write Out Runtime Data.

2) En utilisant fsck.mode=forceet fsck.repair=yesdans le /boot/cmdline.txtjournal de démarrage, on dit: [^[[32m OK ^[[0m] Started Show Plymouth Boot Screen. [^[[32m OK ^[[0m] Reached target Paths. [^[[32m OK ^[[0m] Created slice system-systemd\x2drfkill.slice. [^[[32m OK ^[[0m] Created slice system-ifup.slice. [ 5.749367] systemd-fsck[112]: Pass 2: Checking directory structure [ 8.673500] systemd-fsck[112]: Pass 3: Checking directory connectivity [ 8.683831] systemd-fsck[112]: Pass 4: Checking reference counts [ 9.318835] systemd-fsck[112]: Pass 5: Checking group summary information [ 9.518754] systemd-fsck[112]: /dev/mmcblk0p2: 131321/956160 files (0.2% non-contiguous$ [^[[32m OK ^[[0m] Started File System Check on Root Device. Starting File System Check on /dev/mmcblk0p1... Starting Remount Root and Kernel File Systems... [^[[32m OK ^[[0m] Started Remount Root and Kernel File Systems. Starting Load/Save RF Kill Switch Status of rfkill0... Starting Load/Save Random Seed... [^[[32m OK ^[[0m] Reached target Local File Systems (Pre). [ 9.639259] systemd-fsck[239]: fsck.fat 3.0.27 (2014-11-12) [^[[32m OK ^[[0m] Started Load/Save RF Kill Switch Status of rfkill0. [ 9.644216] systemd-fsck[239]: /dev/mmcblk0p1: 124 files, 2666/8057 clusters [^[[32m OK ^[[0m] Started File System Check on /dev/mmcblk0p1. [^[[32m OK ^[[0m] Started Load/Save Random Seed. Mounting /boot... [^[[32m OK ^[[0m] Mounted /boot.

Pourquoi le fichier journal est-il totalement différent dans ces deux cas?

JPX
la source

Réponses:

23

J'ai exécuté sudo touch / forcefsck mais que dois-je faire d'autre?

Ce sont des choses qui s'appliquent davantage à la respiration sifflante; jessie peut (ou non) être rétrocompatible avec elle, mais vous pourriez aussi bien le faire de la nouvelle façon:

Ajoutez ce qui suit à /boot/cmdline.txt:

fsck.mode=force

Assurez-vous que le fichier reste sur une seule ligne. Les paramètres doivent être séparés par des espaces.

Vous remarquerez probablement qu'il fsck.repair=yesest déjà là; Ce ne sont pas les mêmes choses. De man systemd-fsck(ce sont en fait des paramètres transmis par le noyau à init , c'est-à-dire systemd):

fsck.mode =

L'une des options "auto", "force", "skip". Contrôle le mode de fonctionnement. La valeur par défaut est "auto" et garantit que les vérifications du système de fichiers sont effectuées lorsque le vérificateur du système de fichiers les juge nécessaires. "forcer" entraîne inconditionnellement des vérifications complètes du système de fichiers. "skip" ignore toutes les vérifications du système de fichiers.

fsck.repair =

Un de "preen", "oui", "non". Contrôle le mode de fonctionnement. La valeur par défaut est "preen" et réparera automatiquement les problèmes qui peuvent être résolus en toute sécurité. "oui" répondra oui à toutes les questions par fsck et "non" répondra non à toutes les questions.

Boucles d'or
la source
En quoi est-ce différent par rapport à sudo shutdown -rF now? Boot.log est totalement différent.
JPX
3

C'est ce que j'utilise sur une version stable de Jessie, à la fin de la ligne dans cmdline.txt: forcefsck

J'ai également ce qui suit dans fstab: /dev/mmcblk0p1 /boot vfat defaults,noatime 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 Notez le 1et 2à la fin de la ligne

Il vérifie et répare la partition racine (/ dev / mmcblk0p2) à chaque démarrage (@JulianKnight pas / dev / sda2).

Ce qui est décrit dans l'OP d'origine fonctionne toujours pour Wheezy sur RPi: sudo touch /forcefsck

@WillianPaixao après Wheezy, l' -Foption de shutdownn'est plus prise en charge

Comment forcer une vérification du système de fichiers est (principalement) lié à la version du noyau, à un moment donné après Debian 8.0 (en 8.2?), Cela a été changé comme décrit dans la réponse @goldilocks.

Paul Wratt
la source
2

Vous devriez également pouvoir faire ce qui suit qui devrait fonctionner pour n'importe quel Linux et pas seulement pour le Pi (évidemment, l'appareil changera pour différentes plates-formes, sda2 devrait convenir pour une carte SD Pi par défaut):

sudo tune2fs -c 1 /dev/sda2

Cela devrait définir une vérification à chaque redémarrage. Vous pouvez changer le nombre comme bon vous semble. Utilisez -i au lieu de -c si vous souhaitez une vérification basée sur le temps. Voir la page de manuel pour plus d'informations.

Julian Knight
la source
1

J'utilise shutdownavec -Fparamètre. [1]

sudo shutdown -rF now
Willian Paixao
la source
J'ai exécuté la commande. Après le redémarrage, mon syslog ne contient aucune information sur une exécution fsck (raspbian stretch).
Robert
2
Je viens de vérifier man shutdownsur Raspbian - il n'y a pas d'option -F là-bas.
Victor Sergienko