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 soit lié au 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/fstab
ressemble à 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 que l’UUID dans /etc/initramfs/conf.d/resume
ne correspond à aucun périphérique.
Devrais-je désactiver reprendre/suspendre? et comment faire ça?
Ok, j'ai trouvé la solution, grâce au commentaire de Sudhanshu.
Le problème était dû au cryptage de mon échange. Ainsi, le script local-premount
dans initramfs attendait un périphérique de swap non disponible jusqu'à la fin de son délai d'attente. Le message pertinent était gave up waiting for suspend/resume device
.
Pour le désactiver (la reprise d'un échange n'est pas possible avec un échange chiffré et je n'utilise pas le mode veille de toute façon), j'ai modifié le fichier suivant: /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.
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/17682
Vous pouvez résoudre ce problème en modifiant le fichier /etc/initramfs-tools/conf.d/resume
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 swap | head -n 1 | cut -d : -f 1) > /etc/initramfs-tools/conf.d/resume'
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.
J'ai exécuté cette commande Sudo blkid | grep swap
pour 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).
Je suis donc allé éditer le fichier/etc/fstab en tapant Sudo gedit /etc/fstab
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 aux partitions supprimées 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/etc/fstab non édité / etc/fstab non édité
et ici après avoir effacé les partitions swap non existantes nettoyer/etc/fstab
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, exécutez Sudo blkid
pour obtenir le bon UUID pour la partition de swap. Copiez l'UUID du swap. Collez-le dans /etc/initramfs-tools/conf.d/resume
pour obtenir RESUME=_the_correct_UUID_
. Maintenant, lancez Sudo update-initramfs -u
pour appliquer cette modification.
Ensuite, vérifiez/etc/fstab et modifiez-y l’UUID de la partition de swap si nécessaire. (J'ai dû)