Arranque lento, tiempo de carga del núcleo prolongado, debido a un dispositivo de reanudación incorrecto

44

Durante algún tiempo, mi proceso de arranque está tardando demasiado (casi 1 minuto).

systemd-analyse time 

muestra que el núcleo está tomando 35.765

Mirando dmesg, parece que el problema es con el montaje de sistemas de archivos:

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

Mi /etc/fstabaspecto es este:

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

¿Cómo puedo solucionar esto?

EDITAR: mirando de cerca los mensajes de arranque (después de eliminar la opción silenciosa en grub), vi una línea sospechosa:

gave up waiting for suspend/resume device

Creo que mi intercambio está encriptado, y también creo que el UUID /etc/initramfs/conf.d/resumeno corresponde a ningún dispositivo.

¿Debo deshabilitar reanudar / suspender? ¿y como hacer eso?

alci
fuente
66
El problema está realmente en `` `Comenzar: Ejecución / scripts / local-premount` `` Se muestra durante el arranque (si deshabilita silencioso). Debido a alguna razón, esta secuencia de comandos previa al montaje tarda unos 30 segundos.
Sudhanshu
1
Esta pregunta / respuesta es valiosa porque ayuda a resolver un error en Lubuntu Bionic, así que por favor ayuda a volver a
abrirla

Respuestas:

59

Ok, encontré la solución, gracias al comentario de Sudhanshu.

El problema se debió a que mi intercambio estaba encriptado. Entonces, el local-premountscript en initramfs estaba esperando un dispositivo de intercambio que no estaba disponible, hasta que se agotó el tiempo de espera. El mensaje relevante fue gave up waiting for suspend/resume device.

Para desactivar esta (como la reanudación de intercambio no es posible con una permuta de cifrado, y no uso de hibernación de todos modos), he modificado este archivo: /etc/initramfs-tools/conf.d/resume.

En este archivo, una línea con

RESUME=none

(en lugar del UUID que estaba aquí) deshabilitará la espera de un dispositivo de reanudación.

correr

sudo update-initramfs -u

para aplicar los cambios.

El sistema ahora arranca normalmente.

alci
fuente
1
Creo que está afectado por el error # 1763611, las botas biónicas de Lubuntu son más lentas que las otras versiones de Ubuntu con algunos SSD . Y has mostrado cómo aplastar el error :-)
sudodus
3
¡Brillante! Gracias por el arreglo. ¡Me hizo arrancarme el pelo!
Murray
Gracias por la solución
Adhikari Bishwash
Tuve el problema desde hace mucho tiempo causado por zram (sin partición de intercambio). Lo acabo de arreglar, gracias!
Pierre-Damien
3

También vi esto en Linux Mint (basado en Ubuntu), y pasé un tiempo resolviendo lo que iba mal.

Esto sucede si su sistema está instalado en LVM y está utilizando un volumen LVM como disco de intercambio.

Hay un error recurrente de larga data en el que el archivo de reanudación tiene incorrectamente un UUID (que no es válido para LVM) en lugar de la ruta del dispositivo que debería tener. Ver https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1768230

Puede solucionarlo editando el /etc/initramfs-tools/conf.d/resumearchivo y reemplazando el UUID con la ruta del dispositivo de la unidad de intercambio. El siguiente fragmento de comando lo hará por usted, utilizando la primera unidad de intercambio encontrada e informada por 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'
Voz sin nombre
fuente
2

Ninguna de las soluciones anteriores o en otro lugar funcionó para mí, pero he encontrado una solución que reduce mi tiempo de arranque a 40 segundos de 2 minutos y 10 segundos.

Solía ​​crear y eliminar particiones de intercambio y de alguna manera estos registros se quedaron en el archivo etc / fstab. Entonces, mi sistema estaba tratando de montar esas particiones de intercambio creadas previamente que ya no existen. Entonces, déjenme explicar lo que hice paso a paso.

  1. Ejecuté este comando sudo blkid | grep swappara descubrir mis particiones de intercambio. Hubo dos, pero uno no existe en realidad (no se refiere a ninguna de mis particiones).

  2. Así que fui a editar el archivo / etc / fstab escribiendo sudo gedit /etc/fstab

  3. Luego me di cuenta de que hay tantos archivos de intercambio que había eliminado pero que de alguna manera reanudé en este archivo. Así que me referí al paso 1 y eliminé las particiones que ya no existen .

Consulte dos capturas de pantalla de archivos / etc / fstab antes y después. Después de esta limpieza, todo funciona normalmente.

Este archivo no editado / etc / fstab no editado / etc / fstab

y aquí después de borrar las particiones de intercambio no existentes, limpiar / etc / fstab

deni
fuente
Esto funcionó para mí. Gracias.
Abanoub Hanna
2

Tengo este problema después de instalar 2 distribuciones de Linux diferentes. De alguna manera, en una distribución, la partición de intercambio recibió otro UUID asignado y luego esperado. Mi solución fue: Primero, ejecutar sudo blkidpara obtener el UUID correcto para la partición de intercambio. Copie el UUID del intercambio. Pégalo /etc/initramfs-tools/conf.d/resumepara que lo consigas RESUME=_the_correct_UUID_. Ahora corre sudo update-initramfs -upara aplicar este cambio.

Luego, marque / etc / fstab, y cambie el UUID de la partición de intercambio allí también si es necesario. (Tuve que)

Benny
fuente
Esto me ayudo. Gracias.
Abanoub Hanna