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
-
Passo
-F
(forzafsck
al riavvio) argomento pershutdown
:shutdown -rF now
No; vedi:
man shutdown
. -
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
-
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"
ofsck.repair="yes"
. -
Utilizzo di
tune2fs
per impostare il numero di montaggi del file system prima di eseguire unfsck
,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.