Langsamer Start, lange Ladezeit des Kernels aufgrund eines falschen Wiederaufnahmegeräts

43

Seit einiger Zeit dauert der Startvorgang zu lange (fast 1 Minute).

systemd-analyse time 

zeigt, dass der Kernel 35.765s benötigt

Betrachtet man dmesg, scheint das Problem beim Mounten von Dateisystemen zu liegen:

...
[    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)
...

Mein /etc/fstabsieht so aus:

# <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

Wie kann ich das beheben?

BEARBEITEN: Bei genauerer Betrachtung der Startmeldungen (nachdem die stille Option in grub entfernt wurde) habe ich eine verdächtige Zeile entdeckt:

gave up waiting for suspend/resume device

Ich denke, mein Swap ist verschlüsselt und ich denke auch, dass die UUID in /etc/initramfs/conf.d/resumekeinem Gerät entspricht.

Sollte ich Resume / Suspend deaktivieren? und wie geht das?

alci
quelle
6
Das Problem liegt tatsächlich bei `` `Beginn: Ausführen von / scripts / local-premount` `` Es wird während des Startvorgangs angezeigt (wenn Sie quiet deaktivieren). Aus irgendeinem Grund benötigt dieses Premount-Skript etwa 30 Sekunden.
Sudhanshu
1
Diese Frage / Antwort ist wertvoll, da sie zur Behebung eines Fehlers in Lubuntu Bionic beiträgt. Bitte öffnen Sie sie erneut :-)
sudodus

Antworten:

58

Ok, ich fand die Lösung dank Sudhanshus Kommentar.

Das Problem lag daran, dass mein Swap verschlüsselt war. Das local-premountSkript in initramfs wartete also auf ein Swap-Gerät, das nicht verfügbar war, bis das Zeitlimit abgelaufen war. Die relevante Nachricht war gave up waiting for suspend/resume device.

Um dies zu deaktivieren (von Swap - Wiederaufnahme nicht möglich , mit einem verschlüsselten Swap ist, und ich verwende nicht den Ruhezustand sowieso), modifizierte ich diese Datei: /etc/initramfs-tools/conf.d/resume.

In dieser Datei steht eine Zeile mit

RESUME=none

(anstelle der UUID, die hier vorhanden war) deaktiviert das Warten auf ein Gerät zum Fortsetzen.

Lauf

sudo update-initramfs -u

um die Änderungen zu übernehmen.

Das System bootet jetzt normal.

alci
quelle
1
Ich denke, Sie sind von Bug # 1763611 betroffen , Lubuntu-Bionic-Boots sind langsamer als die anderen Ubuntu-Varianten mit einigen SSDs . Und Sie haben gezeigt, wie man den Fehler
beseitigt
3
Brillant! Danke für das Update. Ich musste mir die Haare ausreißen!
Murray
Vielen Dank für die Lösung
Adhikari Bishwash
Hatte das Problem schon lange durch zram verursacht (keine Swap-Partition). Ich habe es gerade behoben, danke!
Pierre-Damien
3

Ich habe das auch in Linux Mint (basierend auf Ubuntu) gesehen und einige Zeit damit verbracht, herauszufinden, was schief gelaufen ist.

Dies ist der Fall, wenn Ihr System auf LVM installiert ist und ein LVM-Volume als Auslagerungsdatenträger verwendet.

Es gibt einen langjährigen, wiederkehrenden Fehler, bei dem die Wiederaufnahmedatei fälschlicherweise eine UUID (die für LVM ungültig ist) anstelle des Gerätepfads hat, den sie haben sollte. Siehe https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1768230

Sie können das Problem beheben, indem Sie die /etc/initramfs-tools/conf.d/resumeDatei bearbeiten und die UUID durch den Gerätepfad des Auslagerungslaufwerks ersetzen. Das folgende Befehls-Snippet erledigt dies für Sie unter Verwendung des ersten von blkid gefundenen und gemeldeten Swap-Laufwerks:

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'
Namenlose Stimme
quelle
2

Keine dieser Lösungen oben oder anderswo hat für mich funktioniert, aber ich habe eine Lösung gefunden, die meine Startzeit von 2 Minuten und 10 Sekunden auf 40 Sekunden reduziert.

Ich habe früher Swap-Partitionen erstellt und entfernt und irgendwie blieben diese Protokolle in der Datei etc / fstab. Mein System hat versucht, die zuvor erstellten Swap-Partitionen bereitzustellen, die nicht mehr vorhanden sind. Lassen Sie mich also bitte Schritt für Schritt erklären, was ich getan habe.

  1. Ich habe diesen Befehl ausgeführt sudo blkid | grep swap, um meine Swap-Partitionen herauszufinden. Es gab zwei, aber eine existiert tatsächlich nicht (sie bezieht sich nicht auf eine meiner Partitionen).

  2. Also habe ich die Datei / etc / fstab bearbeitet, indem ich Folgendes eingegeben habe sudo gedit /etc/fstab

  3. Dann wurde mir klar, dass es so viele Auslagerungsdateien gibt, die ich gelöscht, aber irgendwie in dieser Datei wieder aufgenommen habe. Also habe ich auf Schritt 1 verwiesen und Partitionen gelöscht, die nicht mehr existieren .

Bitte sehen Sie sich zwei Screenshots der Datei vor und nach / etc / fstab an. Nach dieser Reinigung funktioniert alles wie gewohnt.

Dies ist die unbearbeitete Datei / etc / fstab / etc / fstab

und hier nach dem Löschen von nicht vorhandenen Swap-Partitionen sauber / etc / fstab

deni
quelle
Das hat bei mir funktioniert. Vielen Dank.
Abanoub Hanna
2

Ich habe dieses Problem nach der Installation von 2 verschiedenen Linux-Distributionen. Irgendwie wurde der Swap-Partition in einer Distribution eine andere UUID zugewiesen, die dann erwartet wurde. Meine Lösung lautete: Führen sudo blkidSie zunächst den Befehl aus, um die richtige UUID für die Swap-Partition zu erhalten. Kopieren Sie die UUID des Swap. Fügen Sie es /etc/initramfs-tools/conf.d/resumeso ein, dass Sie erhalten RESUME=_the_correct_UUID_. Führen Sie nun aus sudo update-initramfs -u, um diese Änderung zu übernehmen.

Überprüfen Sie als nächstes / etc / fstab und ändern Sie dort ggf. auch die UUID der Swap-Partition. (Ich musste)

Benny
quelle
Das hat mir geholfen. Vielen Dank.
Abanoub Hanna