Démarrage lent, temps de chargement du noyau long, en raison d'un mauvais périphérique de reprise

44

Depuis quelque temps, mon processus de démarrage prend trop de temps (presque 1 minute).

systemd-analyse time 

montre que le noyau prend 35.765s

En regardant dmesg, il semble que le problème vient du montage de systèmes de fichiers:

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

Mon /etc/fstabressemble à ceci:

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

Comment puis-je résoudre ce problème?

EDIT: en regardant de près les messages de démarrage (après avoir supprimé l’option quiet de grub), j’ai repéré une ligne suspecte:

gave up waiting for suspend/resume device

Je pense que mon échange est crypté, et je pense aussi que l'UUID en /etc/initramfs/conf.d/resumene correspond à aucun appareil.

Devrais-je désactiver reprendre / suspendre? et comment faire ça?

alci
la source
6
Le problème se trouve en fait à `` `Début: Exécuter / scripts / local-premount` `` Il est affiché lors du démarrage (si vous désactivez le mode silencieux). Pour une raison quelconque, ce script de prémontage prend environ 30 secondes.
Sudhanshu
1
Cette question / réponse est précieuse car elle permet de résoudre un bug dans Lubuntu Bionic, alors aidez-nous à la rouvrir :-)
sudodus

Réponses:

59

Ok, j'ai trouvé la solution, grâce au commentaire de Sudhanshu.

Le problème était dû au cryptage de mon échange. Ainsi, le local-premountscript dans initramfs attendait un périphérique de swap non disponible jusqu'à son expiration. Le message pertinent était gave up waiting for suspend/resume device.

Pour désactiver cette (comme la reprise de permutation est impossible avec un swap crypté, et je ne me hibernation de toute façon), j'ai modifié ce fichier: /etc/initramfs-tools/conf.d/resume.

Dans ce fichier, une ligne avec

RESUME=none

(au lieu de l'UUID qui était ici) désactivera l'attente d'un périphérique de reprise.

Courir

sudo update-initramfs -u

appliquer les modifications.

Le système démarre maintenant normalement.

alci
la source
1
Je pense que vous êtes concerné par le bogue n ° 1763611, les bottes bioniques de Lubuntu sont plus lentes que les autres versions d’Ubuntu avec certains disques SSD . Et vous avez montré comment écraser le bogue :-)
sudodus
3
Brillant! Merci pour le correctif. Il m'a fallu me tirer les cheveux!
Murray
Merci pour la solution
Adhikari Bishwash Le
Avait le problème depuis longtemps causé par zram (pas de partition de swap). Je viens de le réparer, merci!
Pierre-Damien
3

J'ai également vu cela dans Linux Mint (basé sur Ubuntu) et passé un certain temps à chercher ce qui n'allait pas.

Cela se produit si votre système est installé sur LVM et utilise un volume LVM en tant que disque d'échange.

Il existe un bogue récurrent de longue date dans lequel le fichier de reprise contient incorrectement un UUID (non valide pour LVM) au lieu du chemin de périphérique qu'il devrait avoir. Voir https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1768230

Vous pouvez résoudre ce problème en modifiant le /etc/initramfs-tools/conf.d/resumefichier et en remplaçant l'UUID par le chemin du périphérique du lecteur d'échange. L'extrait de commande suivant le fera pour vous, en utilisant le premier lecteur d'échange trouvé et signalé par 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'
Voix sans nom
la source
2

Aucune de ces solutions ci-dessus ou ailleurs n'a fonctionné pour moi, mais j'ai trouvé une solution qui réduit mon temps de démarrage à 40 secondes de 2 minutes à 10 secondes.

J'avais l'habitude de créer et de supprimer des partitions d'échange et ces journaux étaient conservés dans un fichier etc / fstab. Mon système essayait donc de monter ces partitions d'échange créées précédemment et qui n'existent plus. Alors s'il vous plaît laissez-moi vous expliquer ce que j'ai fait étape par étape.

  1. J'ai exécuté cette commande sudo blkid | grep swappour connaître mes partitions d'échange. Il y en avait deux mais un n'existe pas réellement (il ne fait référence à aucune de mes partitions).

  2. Je suis donc allé éditer le fichier / etc / fstab en tapant sudo gedit /etc/fstab

  3. Ensuite, j'ai réalisé qu'il y avait tellement de fichiers d'échange que j'avais supprimés mais qui avaient repris leur existence dans ce fichier. J'ai donc fait référence à l'étape 1 et supprimé les partitions qui n'existent plus .

Veuillez en voir deux avant et après les captures d'écran du fichier / etc / fstab. Après ce nettoyage, tout fonctionne normalement.

Ceci est un fichier non modifié / etc / fstab non modifié / etc / fstab

et ici, après avoir effacé les partitions d'échange non existantes, nettoyez / etc / fstab

deni
la source
Cela a fonctionné pour moi. Merci.
Abanoub Hanna le
2

J'ai eu ce problème après l'installation de 2 distributions Linux différentes. D'une manière ou d'une autre, sur une distribution, la partition de swap a reçu un autre UUID puis attendue. Ma solution était la suivante: Tout d'abord, lancez-vous sudo blkidpour obtenir le bon UUID pour la partition de swap. Copiez l'UUID du swap. Collez-le pour /etc/initramfs-tools/conf.d/resumeque vous obteniez RESUME=_the_correct_UUID_. Maintenant, lancez sudo update-initramfs -upour appliquer ce changement.

Ensuite, vérifiez / etc / fstab et modifiez-y l’UUID de la partition de swap si nécessaire. (J'ai dû)

Benny
la source
Cela m'a aidé. Merci.
Abanoub Hanna le