Cosa devo fare per forzare il controllo del filesystem di root (e facoltativamente una correzione) all'avvio?


10

Ieri, uno dei nostri computer è passato alla grubshell o, onestamente, non sono sicuro di quale shell fosse quando abbiamo acceso la macchina.

Ha dimostrato che non può montare il filesystem di root o qualcosa del genere in questo senso, a causa di incoerenze.

Ho corso, credo:

fsck -fy /dev/sda2

Riavviato e il problema era scomparso.

Ecco la parte della domanda:

Ho già nel crontab della sua radice:

@reboot /home/ruzena/Development/bash/fs-check.sh

mentre lo script contiene:

#!/bin/bash
touch /forcefsck

Pensandoci, non so perché ho creato il file di script per un comando così breve, ma comunque ...

Inoltre, nel file:

/etc/default/rcS

Ho definito:

FSCKFIX=yes

Quindi non capisco. Come potrebbe persino verificarsi la situazione?


Cosa devo fare per forzare il controllo del filesystem di root (e facoltativamente una correzione) all'avvio?

O queste due cose sono il massimo che posso fare?

Sistema operativo: Linux Mint 18.x Cinnamon 64-bit.

fstab:

cat /etc/fstab | grep ext4

Spettacoli:

UUID=a121371e-eb12-43a0-a5ae-11af58ad09f4    /    ext4    errors=remount-ro    0    1

grub:

fsck.mode=force

è stato già aggiunto alla grubconfigurazione.

Risposte:


12

ext4 controllo del filesystem durante l'avvio

Testato su SO: Linux Mint 18.x in una macchina virtuale

Informazioni di base

/etc/fstabha l' fsckordine come ultima (sesta) colonna, ad esempio:

<file system>    <mount point>    <type>    <options>    <dump>    <fsck>
UUID=2fbcf5e7-1234-abcd-88e8-a72d15580c99 / ext4 errors=remount-ro 0 1

FSCKFIX=yes variabile in /etc/default/rcS

Questo cambierà fsck in auto fix, ma non forzerà un controllo fsck.

Da man rcS:

FSCKFIX
    When  the  root  and all other file systems are checked, fsck is
    invoked with the -a option which means "autorepair".   If  there
    are  major  inconsistencies then the fsck process will bail out.
    The system will print a  message  asking  the  administrator  to
    repair  the  file  system manually and will present a root shell
    prompt (actually a sulogin prompt) on the console.  Setting this
    option  to  yes  causes  the fsck commands to be run with the -y
    option instead of the -a option.  This will tell fsck always  to
    repair the file systems without asking for permission.

A partire dal man tune2fs

If you are using journaling on your filesystem, your filesystem
will never be marked dirty, so it will not normally be checked.

Iniziare con

Impostazione di quanto segue

FSCKFIX=yes

nel file

/etc/default/rcS

Controlla e nota l'ultima volta che fs è stato controllato:

sudo tune2fs -l /dev/sda1 | grep "Last checked"

Queste due opzioni NON hanno funzionato

  1. Passando l'argomento -F(force fsckon reboot) a shutdown:

    shutdown -rF now
    

    No; vedi: man shutdown.

  2. Aggiunta del /forcefsckfile vuoto con:

    touch /forcefsck
    

    Questi script sembrano usare questo:

    /etc/init.d/checkfs.sh
    /etc/init.d/checkroot.sh
    

    ha NON funziona su ripartenza, ma il file è stato eliminato.

    Verificato da:

    sudo tune2fs -l /dev/sda1 | grep "Last checked"
    sudo less /var/log/fsck/checkfs
    sudo less /var/log/fsck/checkroot
    

    Questi sembrano essere i registri degli initscript.

Ripeto, queste due opzioni NON hanno funzionato!


Entrambi questi metodi hanno funzionato

  1. Switch di avvio del kernel systemd-fsck

    Modifica del grubfile di configurazione principale :

    sudoedit /etc/default/grub
    
    GRUB_CMDLINE_LINUX="fsck.mode=force"
    
    sudo update-grub
    sudo reboot
    

    Questo ha fatto un controllo del file system come verificato con:

    sudo tune2fs -l /dev/sda1 | grep "Last checked"
    

    Nota: questo DID ha fatto un controllo, ma per forzare anche una correzione, è necessario specificare fsck.repair="preen", o fsck.repair="yes".

  2. Utilizzando tune2fsper impostare il numero di montaggi del file system prima di eseguire un fsck,man tune2fs

    tune2fs' info is kept in the file system superblock
    

    -c switch imposta il numero di volte in cui montare fs prima di controllare fs.

    sudo tune2fs -c 1 /dev/sda1
    

    Verifica con:

    sudo tune2fs -l /dev/sda1
    

    Questo DID funziona come verificato con:

    sudo tune2fs -l /dev/sda1 | grep "Last checked"
    

Sommario

Per forzare fscka ogni avvio su Linux Mint 18.x, utilizzare le opzioni della riga di comando del kernel tune2fso fsck.mode=force, con facoltativo fsck.repair=preen/ ,.fsck.repair=yes

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.