Raspberry Pi 3 y Raspbian Jessie: ¿cómo ejecutar fsck en el arranque?

13

¿Cómo ejecutar fsck en el arranque cuando utilizo Pi 3 y Raspberry Jessie? He leído algunos tutoriales pero difieren.

He corrido sudo touch /forcefsckpero ¿qué más tengo que hacer? Sé que debo configurar FSCKFIX = yes, pero ¿cuál es el archivo correcto? Algunos dicen /lib/init/vars.shotros /etc/default/rcS.

¿Cómo puedo verificar que mi configuración funciona? No tengo visibilidad para la pantalla. Hay cortes de energía, por lo que existe un alto riesgo de que el sistema de archivos se corrompa.

Editar:

Intenté dos soluciones mencionadas a continuación.

1) Al usar 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) Al usar fsck.mode=forcey fsck.repair=yesen /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.

¿Por qué el archivo de registro es totalmente diferente en estos dos casos?

JPX
fuente

Respuestas:

23

He ejecutado sudo touch / forcefsck pero ¿qué más tengo que hacer?

Eso es algo que se aplica más a las sibilancias; Jessie puede (o no) ser compatible con versiones anteriores, pero es mejor que lo hagas de la nueva manera:

Agregue lo siguiente a /boot/cmdline.txt:

fsck.mode=force

Asegúrese de que el archivo permanezca en una sola línea. Los parámetros deben separarse con espacios.

Probablemente notarás fsck.repair=yesque ya está allí; Estos no son la misma cosa. De man systemd-fsck(estos son en realidad parámetros que el núcleo pasa a init , es decir, systemd):

fsck.mode =

Uno de "auto", "force", "skip". Controla el modo de operación. El valor predeterminado es "auto" y garantiza que las comprobaciones del sistema de archivos se realicen cuando el verificador del sistema de archivos las considere necesarias. "forzar" resulta incondicionalmente en verificaciones completas del sistema de archivos "omitir" omite cualquier verificación del sistema de archivos.

fsck.repair =

Uno de "preen", "yes", "no". Controla el modo de operación. El valor predeterminado es "preen" y reparará automáticamente los problemas que se pueden solucionar de forma segura. "sí" responderá sí a todas las preguntas por fsck y "no" responderá no a todas las preguntas.

Ricitos de oro
fuente
¿Cómo es esto diferente en comparación con sudo shutdown -rF now? Boot.log se ve totalmente diferente.
JPX
3

Esto es lo que estoy usando en una versión antigua de Jessie estable, al final de la línea en cmdline.txt: forcefsck

También tengo lo siguiente en fstab: /dev/mmcblk0p1 /boot vfat defaults,noatime 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 Tenga en cuenta la 1y 2al final de la línea

Comprueba y repara la partición raíz (/ dev / mmcblk0p2) en cada arranque (@JulianKnight not / dev / sda2).

Lo que se describe en el OP original todavía funciona para Wheezy en RPi: sudo touch /forcefsck

@WillianPaixao después de Wheezy la -Fopción de shutdownya no es compatible

La forma de forzar una verificación del sistema de archivos está (principalmente) vinculada a la versión del núcleo, en algún momento después de Debian 8.0 (en 8.2?), Se cambió como se describe en la respuesta @goldilocks.

Paul Wratt
fuente
2

También debería poder hacer lo siguiente, que debería funcionar para cualquier Linux, no solo para Pi (obviamente, el dispositivo cambiará para diferentes plataformas, sda2 debería ser adecuado para una tarjeta SD Pi predeterminada):

sudo tune2fs -c 1 /dev/sda2

Eso debería marcar un cheque cada reinicio. Puedes cambiar el número a lo que quieras. Use -i en lugar de -c si desea una verificación basada en el tiempo. Vea la página del manual para más información.

Julian Knight
fuente