Atualização 9
Eu decidi tentar um experimento. Eu removi o SSD da minha área de trabalho e coloquei temporariamente no meu laptop Dell Latitude. Eis que ele carregou a initrd
ordem de magnitude mais rapidamente, reduzindo 6 segundos do tempo de inicialização ...
Estou um pouco confuso agora ... talvez o GRUB tenha um problema com o chipset da minha placa-mãe?
Atualização 8
Então notei algo interessante sobre a luz de atividade do disco rígido. Ao carregar o initrd
, é quase como se a luz estivesse sendo PWMed em um ciclo de trabalho de 10% ou algo assim. Isso me faz pensar se a leitura do GRUB não está otimizada, talvez algo como uma chamada do SO para ler cada byte em vez de ler a imagem como um fluxo de bytes?
Atualização 7
Parece que carregar o ramdisk inicial é uma grande parte do problema.
Dentro do GRUB, pressionei Co prompt de comando manual. Em seguida, comecei a digitar todas as linhas da minha configuração padrão, uma de cada vez (inserir esses UUIDs foi doloroso!) E observei o tempo que o comando levou para ser concluído. Aqui está o que eu encontrei:
- A maioria dos comandos foi concluída instantaneamente
- O comando para carregar o kernel levou cerca de um segundo
- O comando para carregar o ramdisk inicial levou 7 segundos
Depois de digitar todas as linhas do arquivo de configuração, continuo executando boot
. Desde o momento em que apertei enter, até a tela de login aparecer, demorou cerca de 7,5 segundos.
Interessante é o fato de a imagem initrd que está sendo carregada ter 36 MB. Então, se demorou 7 segundos para carregar, então está lendo apenas a 5 MB / s!
A luz de atividade do disco na minha torre permanece acesa por 7 segundos inteiros ...
Aqui também está um trecho interessante da página da Wikipedia sobre initrd :
Outras distribuições Linux (como Fedora e Ubuntu) geram uma imagem initrd mais genérica. Eles começam apenas com o nome do dispositivo do sistema de arquivos raiz (ou seu UUID) e devem descobrir tudo o mais no momento da inicialização. Nesse caso, o software deve executar uma cascata complexa de tarefas para montar o sistema de arquivos raiz
Atualização 6
Nathan Osman solicitou o tempo de inicialização no modo de usuário único no chat.
Desde o momento em que bati F10no GRUB até o momento em que o prompt aparece, leva 13 segundos.
Além disso, eu estava conversando com Zanna e Rinzwind no chat e os dois têm uma inicialização de 8 segundos a partir do momento em que o botão de energia foi pressionado. Meus 20 segundos são do GRUB. Se eu contasse o tempo do POST, seria ainda mais longo!
Atualização 5
O Ubuntu pode ler meu SSD na velocidade máxima de 550MB / s ...
Atualização 4
Portanto, removi os quiet splash $vt_handoff
parâmetros do comando de inicialização do GRUB no meu laptop (lembre-se de que este laptop não possui um SSD) e notei uma coisa muito interessante durante a sequência de inicialização:
Ele fica nessa linha por 15 segundos:
[ 4.374390] init: plymouth-upstart-bridge respawnng too fast, stopped
Aqui está uma foto (de baixa qualidade):
Não tenho certeza qual é o significado disso ...
Atualização 3
Programei o tempo de inicialização de uma das minhas outras máquinas executando a versão 14.04 (lembre-se de que esta máquina não possui um SSD) e, desde o momento em que pressione Enter no GRUB até a tela de login aparecer, leva 40 segundos.
Depois de pressionar enter, fica na mesma tela roxa em branco por 20 segundos, após o qual a animação do Ubuntu é carregada e leva mais 20 segundos antes de aterrissar na tela de login.
Eu olhei para a saída de dmesg
, mas não sei dizer onde ela terminou a inicialização. Eu acho que terminou em 25 segundos. Aqui estão as últimas linhas:
[ 24.916824] wlan0: associated
[ 24.916852] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 25.215550] init: kdm main process (869) killed by TERM signal
[ 25.441216] vboxdrv: module verification failed: signature and/or required key missing - tainting kernel
[ 25.445587] vboxdrv: Found 2 processor cores.
[ 25.446142] vboxdrv: fAsync=0 offMin=0x18c offMax=0x960
[ 25.446228] vboxdrv: TSC mode is 'synchronous', kernel timer mode is 'normal'.
[ 25.446230] vboxdrv: Successfully loaded version 4.3.36_Ubuntu (interface 0x001a000b).
[ 25.476940] vboxpci: IOMMU not found (not registered)
[ 33.174926] init: plymouth-upstart-bridge main process ended, respawning
[ 36.495811] init: anacron main process (933) killed by TERM signal
Se eu a interpretei corretamente, parece ser um problema universal do GRUB.
Atualização 2
Consegui confirmar que é um problema do GRUB definindo a cor de fundo do GRUB para verde usando a linha de comando acessada pressionando Cquando no GRUB.
Quando pressiono enter, recebo uma tela verde em branco por ~ 15 segundos antes que a animação de inicialização do Ubuntu seja carregada ...
Atualizar
Eu acho que o problema é que o GRUB está demorando muito para carregar a imagem do kernel.
Questão
Instalei o Ubuntu 16.04 no meu SSD Samsung 850 Pro 512GB e não consigo entender por que meu tempo de inicialização é de 20 segundos. (A partir do momento em que apertei enter no GRUB). Lembre-se de que os 20 que estou referenciando são 17 na tela de login e outros 3 na área de trabalho)
Além disso, não tenho certeza se isso é relevante ou não, mas:
- O Ubuntu está instalado no modo MBR, porque detesto o UEFI.
- Eu tenho os drivers proprietários da Nvidia instalados
Olhando para a imagem gerada porsystemd-analyze plot > bootimage2
, minha inicialização aparentemente levou 3 segundos?
E, olhando dmesg
, minha inicialização aparentemente levou 4 segundos. Mas eu cronometrei com meu cronômetro e levou 20 segundos! (Não incluindo a hora do POST) Novamente, lembre-se de que os 20 que estou referenciando são 17 na tela de login e outros 3 na área de trabalho)
Aqui está como a sequência de inicialização ocorre:
- POSTAR
- Cargas do GRUB
- Inicio meu cronômetro ao pressionar ENTER
- Recebo uma tela roxa em branco por ~ 15 segundos
- Eu vejo a animação de inicialização do Ubuntu por dois segundos
- Eu pouso na tela de login
- Eu paro o cronômetro
- Eu digito minha senha, pressiono enter e inicio meu cronômetro novamente.
- Após 3 segundos, aterro na área de trabalho
- Paro meu cronômetro novamente.
Aqui está a saída completa de dmesg
: http://paste.ubuntu.com/23955108/
E aqui estão as primeiras linhas da saída de systemd-analyze blame
:
365ms dev-sda5.device
327ms networking.service
287ms accounts-daemon.service
286ms ModemManager.service
233ms systemd-logind.service
216ms apport.service
213ms grub-common.service
209ms ondemand.service
200ms irqbalance.service
183ms speech-dispatcher.service
178ms apparmor.service
160ms gpu-manager.service
148ms thermald.service
148ms pppd-dns.service
146ms systemd-user-sessions.service
142ms alsa-restore.service
140ms console-setup.service
137ms rsyslog.service
105ms NetworkManager.service
104ms upower.service
102ms avahi-daemon.service
100ms systemd-udev-trigger.service
Essas pessoas têm o mesmo problema:
- https://ubuntuforums.org/showthread.php?t=2325045
- https://www.bleepingcomputer.com/forums/t/598260/booting-ubuntu-temporariamente-stuck-on-a-purple-screen/
- E parece que mesmo as pessoas com ARCH têm esse problema ...
Alguma ideia?
systemd-analyze blame
. A parte estranha é que o Grub ficou preso ao "carregar o disco ram inicial" por cerca de 10 segundos, quando deveria ser uma fração de segundo devido ao tamanho do arquivo. Então o atraso acabou. Talvez tenha sido uma atualização do kernel? Talvez as mudanças que fiz plymouthd
não tenham certeza.