My Ubuntu esegue fsck ad ogni avvio

19

Ad ogni avvio è uguale:

/dev/sda1: clean, 908443/38690816 files, 44176803/154733312 blocks

È una sorta di opzione che Ubuntu usa per garantire la consistenza del filesystem o c'è qualcosa di sbagliato nel mio HDD? fsck richiede fino a 30 secondi durante l'avvio e quindi triplica il tempo necessario altrimenti.

Uscita completa (parzialmente in tedesco):

Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/local-premount ... done.
Begin: Running /scripts/local-bottom ... done.
done.
Begin: Running /scripts/init-bottom ... done.
fsck von util-linux 2.20.1
/dev/sda1: sauber, 908443/38690816 Dateien, 44176803/154733312 Blöcke
udevd[623]: unknown key 'SYSFS{idVendor}' in /lib/udev/rules.d/45-libticables.rules:6

udevd[623]: invalid rule '/lib/udev/rules.d/45-libticables.rules:6'

 * Starting mDNS/DNS-SD daemon                                                 [ OK ]
 * Starting Reload cups, upon starting avahi-daemon to make sure remote queues are populated                                                                   [ OK ]
 * Starting configure network device security                                  [ OK ]
 * Starting bluetooth daemon                                                   [ OK ]
 ####* Starting all other stuff
    
posta s3lph 27.11.2013 - 23:20

5 risposte

25
  

/ dev / sda1: clean, 908443/38690816 Files, 44176803/154733312 Blocchi

La riga che produce quel messaggio è questo :

/* Print the summary message when we're skipping a full check */
log_out(ctx, _("%s: clean, %u/%u files, %llu/%llu blocks"),

Salta il "controllo completo" ma si assicura solo che alcuni test rapidi per il journal siano puliti e che non ci siano inode orfani:

cat /var/log/boot.log 
fsck from util-linux 2.20.1
fsck from util-linux 2.20.1
/dev/sda1: clean, 260598/771552 files, 1684682/3080192 blocks
/dev/sdb10: recovering journal
/dev/sdb10: Clearing orphaned inode 142568 (uid=1000, gid=1000, mode=0100664, size=32768)
/dev/sdb10: Clearing orphaned inode 138527 (uid=1000, gid=1000, mode=0100600, size=9580)
/dev/sdb10: clean, 54957/991232 files, 3498365/3958006 blocks

Questo è normale e atteso. Se fosse stato un vero e proprio controllo approfondito, ci sarebbe voluto molto più tempo, ma di solito ci vuole un secondo o meno. La pagina di manuale Systemd systemd-fsck(8) presenta le condizioni in cui viene attivato un controllo completo:

  

systemd-fsck-root.service è responsabile dei controlli del file system su      root file system, ma solo se il filesystem di root non è stato controllato   negli initramfs. systemd-fsck @ .service è usato per tutti gli altri file   sistemi e per il file system di root in initramfs.

     

Questi servizi sono avviati all'avvio se passano in / etc / fstab per il   il file system è impostato su un valore maggiore di zero. Il file system   controllare che la radice sia eseguita prima degli altri file system. Altro   i file system possono essere controllati in parallelo, tranne quando sono attivi   lo stesso disco rotante.

     

systemd-fsck non conosce alcun dettaglio su filesystem specifici,   e semplicemente esegue controlli del file system specifici per ognuno   tipo di filesystem (/sbin/fsck.*). Questo aiutante deciderà se il   il filesystem dovrebbe essere effettivamente controllato in base al tempo trascorso dall'ultimo   controllo, numero di supporti, smontaggio non pulito, ecc.

Puoi semplicemente controllare che i test non abbiano quasi nulla da eseguire (se usi systemd):

sudo systemd-analyze blame | grep fsck
          1.608s [email protected]\x2duuid-408535fe\x2d28e6\x2d4d82\x2dbb59\x2d9810ead089a3.service
            87ms [email protected]\x2dlvhome.service
    
risposta data Braiam 01.12.2013 - 15:55
1

Sei sicuro che sia fsck a prendere 30 secondi e non solo che il prossimo messaggio di console relativo a udevd impiega 30 secondi? In altre parole, forse il udevd impiega 30 secondi per interrompere il funzionamento della cosa libicable prima di mostrare un messaggio della console?

Prova a rimuovere (o spostare temporaneamente qualcun altro)

/lib/udev/rules.d/45-libticables.rules

e vedere se questo aiuta.

    
risposta data Joseph Santaniello 04.12.2013 - 12:33
0

Questo fsck su ogni avvio è successo a me a causa del brutto orologio. Sembra che systemd-fsck @ venga eseguito prima di systemd-timesyncd e, senza RTC con batteria tampone, l'ora del sistema sia errata al momento dell'esecuzione di fsck.

Ho confermato che questo è davvero ciò che attiva il controllo completo (invece di avere fsck exit rapidamente), disabilitando systemd-timesynd, impostando clock sul valore di pre-sync trovato in journalctl e eseguendo fsck. L'e2fsck procede quindi a un controllo completo, una volta rilevato che l'ultimo tempo di scrittura superblocco è in futuro:

fsck from util-linux 2.29.2
e2fsck 1.43.4 (31-Jan-2017)
Superblock last write time (Mon Jun 19 00:48:11 2017,
    now = Tue Jan 31 20:09:28 2017) is in the future.
Fix<y>? yes
Pass 1: Checking inodes, blocks, and sizes
...

Da notare che questo trigger per il controllo completo non è correlato agli altri trigger del numero massimo di mount e dell'intervallo di tempo dall'ultimo controllo, visto in dumpe2fs -h , menzionato in altre risposte qui.

Si noti che, senza impostare l'orologio (cioè, permettendo a timesyncd di sincronizzarlo), fsck non eseguirà un controllo completo, ma uscirà rapidamente con un messaggio 'filesystem clean'.

Per ovviare al problema, ho disabilitato fsck in / etc / fstab impostando il campo 'pass' su 0. Alla fine, comprerò un RTC con batteria tampone per questo dispositivo.

    
risposta data alexei 19.06.2017 - 07:00
-1

Le mie ricerche mi portano alla conclusione che il numero massimo di mount predefinito di Ubuntu è impostato su -1. Ciò significa che fsck non verrà mai eseguito su alcun avvio indipendentemente dal numero di supporti. Puoi controllare il tuo tramite comando -

sudo dumpe2fs -h /dev/sda8 | grep -i 'mount count'

Puoi aumentare il tuo fabbisogno utilizzando tune2fs . Un tipico esempio è il seguente:

sudo tune2fs -c 30 -i 1w /dev/sda8

Personalizza secondo il tuo accordo.

    
risposta data Vivek Ji 26.08.2016 - 14:01
-1

Come altri hanno pubblicato, il numero massimo di mount può essere impostato su -1 , il che significa che fsck viene eseguito ad ogni avvio, il che naturalmente rallenterà il processo di avvio.

Cambia la frequenza di fsck su ogni 50 stivali o ogni 30 giorni utilizzando:

$ sudo tune2fs -c 50 -i 1m /dev/sdc3

tune2fs 1.42.13 (17-May-2015)
Setting maximal mount count to 50
Setting interval between checks to 2592000 seconds

Supponendo che oggi sia il 13 novembre 2016, controlla quando verrà eseguito fsck con:

$ sudo dumpe2fs -h /dev/sdc3 | grep Next

dumpe2fs 1.42.13 (17-May-2015)
Next check after:         Tue Dec 13 22:45:39 2016
    
risposta data WinEunuuchs2Unix 26.11.2016 - 04:03

Leggi altre domande sui tag