GNU/Linux >> Linux Esercitazione >  >> Linux

Linux - Come fare per forzare il controllo del filesystem di root (e facoltativamente una correzione) all'avvio?

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

Ha mostrato che non può montare il filesystem di root o qualcosa del genere, a causa di incongruenze.

Ho corso, credo:

fsck -fy /dev/sda2

Riavviato e il problema è 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

A pensarci bene, non so perché ho creato un 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 anche sorgere 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?

OS: Linux Mint 18.x Cinnamon a 64 bit.

fstab :

cat /etc/fstab | grep ext4

mostra:

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

grub :

fsck.mode=force

era già stato aggiunto a grub configurazione.

Risposta accettata:

ext4 controllo del filesystem durante l'avvio

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

Informazioni di base

/etc/fstab ha il fsck ordina come l'ultima (6a) 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à l'fsck in correzione automatica, ma non forza 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.

Da man tune2fs

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

Inizia con

Impostazione di quanto segue

FSCKFIX=yes

nel file

/etc/default/rcS

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

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

Queste due opzioni NON hanno funzionato

  1. Passo -F (forza fsck al riavvio) argomento per shutdown :

    shutdown -rF now
    

    No; vedi:man shutdown .

  2. Aggiunta di /forcefsck file vuoto con:

    touch /forcefsck
    

    Questi script sembrano utilizzare questo:

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

    fatto NON funziona al riavvio, 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 log per init script.

Ripeto, queste due opzioni NON hanno funzionato!

Correlati:un Macbook può eseguire il dual boot di Snow Leopard e Lion??

Entrambi questi metodi hanno funzionato

  1. switch di avvio del kernel systemd-fsck

    Modifica del grub principale file di configurazione:

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

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

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

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

  2. Utilizzo di tune2fs per 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 per montare la fs prima di controllare la 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"
    

Riepilogo

Per forzare un fsck ad ogni avvio su Linux Mint 18.x, usa tune2fs o fsck.mode=force , con fsck.repair=preen opzionale / fsck.repair=yes , la riga di comando del kernel cambia.


Linux
  1. Come controllare la versione del sistema operativo e di Linux

  2. Linux:come mostrare il tipo di filesystem tramite il terminale??

  3. Controlla e ripara gli errori del filesystem con il comando fsck in Linux

  4. Come forzare il controllo del file system radice usando fsck durante il riavvio

  5. Come posso verificare l'integrità di un file avi e ripararlo automaticamente in Linux?

Come controllare il runlevel in Linux

Come controllare/riparare il file system Linux all'avvio

Come controllare e riparare un file system in RHEL Linux

Come forzare il controllo del file system "FSCK" su Ubuntu

Come controllare la cronologia di riavvio del sistema e il tempo di avvio in Linux

Come montare e visualizzare il file ISO come utente root e normale in Linux