Inicialização lenta, tempo de carregamento longo do kernel, devido a um dispositivo de retomada incorreto

44

Por algum tempo, meu processo de inicialização está demorando muito (quase 1 minuto).

systemd-analyse time 

mostra que o kernel está usando 35.765s

Olhando dmesg, parece que o problema está na montagem de sistemas de arquivos:

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

Minha /etc/fstabaparência é assim:

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

Como posso solucionar isso?

EDIT: olhando atentamente para as mensagens de inicialização (depois de remover a opção silenciosa no grub), vi uma linha suspeita:

gave up waiting for suspend/resume device

Acho que minha troca é criptografada e também acho que o UUID /etc/initramfs/conf.d/resumenão corresponde a nenhum dispositivo.

Devo desativar retomar / suspender? e como fazer isso?

alci
fonte
6
O problema está em `` Begin: Running / scripts / local-premount `` `Ele é exibido durante a inicialização (se você desativar o quiet). Por algum motivo, esse script de pré-montagem está demorando cerca de 30 segundos.
Sudhanshu 11/0318
11
Esta pergunta / resposta é valiosa porque ajuda a resolver um bug no Lubuntu Bionic, então por favor me ajude reabri-lo :-)
sudodus

Respostas:

59

Ok, encontrei a solução, graças ao comentário de Sudhanshu.

O problema foi devido ao meu swap ser criptografado. Portanto, o local-premountscript no initramfs estava aguardando um dispositivo de troca que não estava disponível até o tempo limite. A mensagem relevante foi gave up waiting for suspend/resume device.

Para desativar este (como retomar a partir de swap não é possível com um swap criptografada, e eu não usar a hibernação de qualquer maneira), eu modifiquei este arquivo: /etc/initramfs-tools/conf.d/resume.

Nesse arquivo, uma linha com

RESUME=none

(em vez do UUID que estava aqui) desativará a espera por um dispositivo de retomada.

Corre

sudo update-initramfs -u

para aplicar as alterações.

O sistema agora inicializa normalmente.

alci
fonte
11
Eu acho que você é afetado pelo Bug # 1763611, as botas biônicas do Lubuntu são mais lentas que os outros sabores do Ubuntu com alguns SSDs . E você têm mostrado como para esmagar o bug :-)
sudodus
3
Brilhante! Obrigado pela correção. Isso me fez arrancar meu cabelo!
Murray
Obrigado pela correção
Adhikari Bishwash 28/03
Teve o problema desde há muito tempo causado pelo zram (sem partição de troca). Eu apenas consertei, obrigado!
Pierre-Damien
3

Eu também vi isso no Linux Mint (baseado no Ubuntu) e passei algum tempo trabalhando no que estava acontecendo de errado.

Isso acontece se o seu sistema estiver instalado no LVM e estiver usando um volume LVM como o disco de troca.

Há um erro recorrente de longa data em que o arquivo de resumo possui incorretamente um UUID (inválido para o LVM) em vez do caminho do dispositivo que ele deveria ter. Veja https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1768230

Você pode corrigi-lo editando o /etc/initramfs-tools/conf.d/resumearquivo e substituindo o UUID pelo caminho do dispositivo da unidade de troca. O seguinte trecho de comando fará isso por você, usando a primeira unidade de troca encontrada e relatada pelo 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 sem nome
fonte
2

Nenhuma dessas soluções acima ou em outro lugar funcionou para mim, mas eu encontrei uma solução que reduz o tempo de inicialização para 40 segundos, de 2 minutos e 10 segundos.

Eu costumava criar e remover partições de troca e, de alguma forma, esses logs permaneciam no arquivo etc / fstab. Portanto, meu sistema estava tentando montar as partições de swap criadas anteriormente que não existem mais. Então, por favor, deixe-me explicar o que eu fiz passo a passo.

  1. Eu executei este comando sudo blkid | grep swappara descobrir minhas partições de troca. Havia dois, mas um realmente não existe (não se refere a nenhuma das minhas partições).

  2. Então eu fui editar o arquivo / etc / fstab digitando sudo gedit /etc/fstab

  3. Então percebi que havia tantos arquivos de troca que eu havia excluído, mas que de alguma forma continuamos existindo nesse arquivo. Então, me referi à etapa 1 e excluí as partições que não existem mais .

Por favor, veja duas capturas de tela do arquivo etc / fstab antes e depois. Após essa limpeza, tudo estará funcionando normalmente.

Este é um arquivo / etc / fstab não editado / etc / fstab

e aqui, depois de eliminar partições de swap inexistentes, limpe / etc / fstab

deni
fonte
Isso funcionou para mim. Obrigado.
Abanoub Hanna 22/09
2

Eu tenho esse problema depois de instalar 2 distros linux diferentes. De alguma forma, em uma distribuição, a partição swap recebeu outro UUID atribuído a ela, em seguida, o esperado. Minha solução foi: Primeiro, execute sudo blkido UUID correto para a partição de troca. Copie o UUID da troca. Cole-o /etc/initramfs-tools/conf.d/resumepara que você obtenha RESUME=_the_correct_UUID_. Agora execute sudo update-initramfs -upara aplicar essa alteração.

Em seguida, verifique / etc / fstab e altere o UUID da partição swap também, se necessário. (Eu precisei)

Benny
fonte
Isso me ajudou. Obrigado.
Abanoub Hanna 22/09