Avvio lento, tempo di caricamento del kernel lungo, a causa di un dispositivo di ripristino errato


44

Da un po 'di tempo, il mio processo di avvio richiede troppo tempo (quasi 1 minuto).

systemd-analyse time 

mostra che il kernel sta prendendo 35.765s

Guardando dmesg, sembra che il problema sia con il montaggio dei file system:

...
[    2.186084]  sdb: sdb1 sdb9
[    2.186919] sd 2:0:0:0: [sdb] supports TCG Opal
[    2.186922] sd 2:0:0:0: [sdb] Attached SCSI disk
[    2.499795] ata5: SATA link down (SStatus 0 SControl 300)
[    2.844320] clocksource: Switched to clocksource tsc
[   35.670493] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
[   35.782128] ip_tables: (C) 2000-2006 Netfilter Core Team
[   35.803610] systemd[1]: systemd 237 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
...

Il mio /etc/fstabassomiglia a questo:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu--vg-root /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=3996-2381  /boot/efi       vfat    umask=0077      0       1
#/dev/mapper/ubuntu--vg-swap_1 none            swap    sw              0       0
/dev/mapper/cryptswap1 none swap sw 0 0

Come posso risolvere questo?

EDIT: osservando attentamente i messaggi di avvio (dopo aver rimosso l'opzione quiet in grub), ho individuato una linea sospetta:

gave up waiting for suspend/resume device

Penso che il mio swap sia crittografato e penso anche che l'UUID in /etc/initramfs/conf.d/resumenon corrisponda a nessun dispositivo.

Devo disabilitare riprendi / sospendi? e come farlo?


6
Il problema si trova in realtà in `` Begin: Running / scripts / local-premount `` `Viene visualizzato durante l'avvio (se si disabilita quiet). Per qualche motivo questo script di premontaggio impiega circa 30 secondi.
Sudhanshu,

1
Questa domanda / risposta è preziosa perché aiuta a risolvere un bug in Lubuntu Bionic, quindi per favore aiutate a riaprirlo :-)
sudodus

Risposte:


59

Ok, ho trovato la soluzione, grazie al commento di Sudhanshu.

Il problema era dovuto alla crittografia del mio scambio. Quindi lo local-premountscript in initramfs era in attesa di un dispositivo di scambio che non era disponibile, fino allo scadere del tempo. Il messaggio rilevante era gave up waiting for suspend/resume device.

Per disabilitare questa (come il ripristino dalla swap non è possibile con uno scambio criptato, e io non uso l'ibernazione in ogni caso), ho modificato questo file: /etc/initramfs-tools/conf.d/resume.

In questo file, una riga con

RESUME=none

(anziché l'UUID che era qui) disabiliterà l'attesa di un dispositivo di ripresa.

Correre

sudo update-initramfs -u

per applicare le modifiche.

Il sistema ora si avvia normalmente.



3
Brillante! Grazie per la correzione. Mi ha fatto strappare i capelli!
Murray,

Grazie per la correzione
Adhikari Bishwash,

Ha avuto il problema da molto tempo a causa di zram (nessuna partizione di swap). L'ho appena risolto, grazie!
Pierre-Damien,

3

L'ho visto anche in Linux Mint (basato su Ubuntu) e ho trascorso un po 'di tempo a capire cosa stava andando storto.

Ciò accade se il sistema è installato su LVM e utilizza un volume LVM come disco di scambio.

Esiste un bug ricorrente di vecchia data in cui il file di ripresa ha erroneamente un UUID (che non è valido per LVM) invece del percorso del dispositivo che dovrebbe avere. Vedi https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1768230

È possibile correggerlo modificando il /etc/initramfs-tools/conf.d/resumefile e sostituendo l'UUID con il percorso del dispositivo dell'unità di scambio. Il seguente frammento di comando lo farà per te, usando la prima unità di swap trovata e segnalata da blkid:

sudo bash -c 'mv /etc/initramfs-tools/conf.d/resume /tmp/resume.bak; echo RESUME=$(blkid | \grep -I swap | head -n 1 | cut -d : -f 1) > /etc/initramfs-tools/conf.d/resume'

2

Nessuna di quelle soluzioni sopra o altro ha funzionato per me, ma ho trovato una soluzione che riduce il mio tempo di avvio a 40 secondi da 2 minuti e 10 secondi.

Ho usato per creare e rimuovere partizioni di swap e in qualche modo questi log sono rimasti nel file etc / fstab. Quindi il mio sistema stava cercando di montare quelle partizioni di swap precedentemente create che non esistono più. Quindi, per favore, lasciami spiegare cosa ho fatto passo dopo passo.

  1. Ho eseguito questo comando sudo blkid | grep swapper scoprire le mie partizioni di swap. Ce n'erano due ma uno in realtà non esiste (non si riferisce a nessuna delle mie partizioni).

  2. Quindi sono andato a modificare il file / etc / fstab digitando sudo gedit /etc/fstab

  3. Poi mi sono reso conto che ci sono così tanti file di scambio che ho eliminato ma che in qualche modo è tornato a esistere in questo file. Quindi ho fatto riferimento al passaggio 1 e ho eliminato le partizioni che non esistono più .

Si prega di vedere due schermate di file prima e dopo / etc / fstab. Dopo questa pulizia tutto funziona normalmente.

Questo è un file / etc / fstab non modificato inedito unedited / etc / fstab

e qui dopo aver cancellato le partizioni di swap inesistenti clean / etc / fstab


Questo ha funzionato per me. Grazie.
Abanoub Hanna,

2

Ho riscontrato questo problema dopo aver installato 2 diverse distribuzioni Linux. In qualche modo, su una distro, alla partizione di swap è stato assegnato un altro UUID quindi previsto. La mia soluzione era: in primo luogo, eseguire sudo blkidper ottenere l'UUID giusto per la partizione di swap. Copia l'UUID dello swap. Incollalo in /etc/initramfs-tools/conf.d/resumemodo da ottenere RESUME=_the_correct_UUID_. Adesso corrisudo update-initramfs -u per applicare questa modifica.

Quindi, controlla / etc / fstab e modifica l'UUID della partizione di swap anche lì, se necessario. (Dovevo)


Questo mi ha aiutato. Grazie.
Abanoub Hanna,
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.