Raspberry Pi 3 e Raspbian Jessie - Come eseguire fsck all'avvio?


13

Come eseguire fsck all'avvio quando si utilizza Pi 3 e Raspberry Jessie? Ho letto alcuni tutorial ma differiscono.

Ho corso sudo touch /forcefsckma cos'altro devo fare? So che dovrei impostare FSCKFIX = yes ma qual è il file corretto? Alcuni dicono /lib/init/vars.shaltri /etc/default/rcS.

Come posso verificare che le mie impostazioni funzionino? Non ho visibilità sullo schermo. Ci sono interruzioni di corrente, quindi c'è un alto rischio che il file system venga danneggiato.

Modificare:

Ho provato due soluzioni menzionate di seguito.

1) Usando sudo shutdown -rF now/var/log/boot.log dice: [^[[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) Usando fsck.mode=forcee fsck.repair=yesnel /boot/cmdline.txtbootlog dice: [^[[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.

Perché il file di registro è totalmente diverso in questi due casi?

Risposte:


23

Ho eseguito sudo touch / forcefsck ma cos'altro devo fare?

Questa è roba che si applica di più a wheezy; jessie potrebbe (o meno) essere retrocompatibile con esso, ma potresti anche farlo nel nuovo modo:

Aggiungi quanto segue a /boot/cmdline.txt:

fsck.mode=force

Assicurarsi che il file rimanga tutto su una riga. I parametri devono essere separati con spazi.

Probabilmente noterai che fsck.repair=yesè già lì; queste non sono la stessa cosa. Da man systemd-fsck(questi sono in realtà parametri che vengono passati dal kernel a init , ovvero systemd):

fsck.mode =

Uno di "auto", "force", "skip". Controlla la modalità operativa. L'impostazione predefinita è "auto" e garantisce che i controlli del file system vengano eseguiti quando il controllo del file system li ritiene necessari. "force" genera incondizionatamente controlli di file system completi. "skip" salta qualsiasi controllo del file system.

fsck.repair =

Uno di "preen", "yes", "no". Controlla la modalità operativa. L'impostazione predefinita è "preen" e riparerà automaticamente i problemi che possono essere risolti in modo sicuro. "sì" risponderà sì a tutte le domande di fsck e "no" risponderà no a tutte le domande.


In che modo è diverso rispetto a sudo shutdown -rF now? Boot.log sembra totalmente diverso.
JPX,

3

Questo è quello che sto usando su una versione old-stable di Jessie, alla fine della riga in cmdline.txt: forcefsck

Ho anche il seguente in fstab: /dev/mmcblk0p1 /boot vfat defaults,noatime 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 Nota 1e 2alla fine della riga

Controlla e ripara la partizione di root (/ dev / mmcblk0p2) ad ogni avvio (@JulianKnight not / dev / sda2).

Ciò che è descritto nell'OP originale funziona ancora per Wheezy su RPi: sudo touch /forcefsck

@WillianPaixao dopo Wheezy l' -Fopzione di shutdownnon è più supportata

Il modo in cui forzare un controllo del filesystem è (principalmente) legato alla versione del kernel, ad un certo punto dopo Debian 8.0 (in 8.2?), È stato modificato come descritto nella risposta di @goldilocks.


2

Dovresti anche essere in grado di fare quanto segue che dovrebbe funzionare per qualsiasi Linux non solo per il Pi (ovviamente il dispositivo cambierà per piattaforme diverse, sda2 dovrebbe essere giusto per una scheda Pi SD predefinita):

sudo tune2fs -c 1 /dev/sda2

Ciò dovrebbe impostare un controllo ad ogni riavvio. Puoi cambiare il numero come preferisci. Utilizzare -i invece di -c se si desidera un controllo basato sul tempo. Vedi la pagina man per maggiori informazioni.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.