Atualização 9
Eu decidi tentar um experimento. Eu removi o SSD da minha área de trabalho e coloquei-o temporariamente no meu laptop Dell Latitude. E eis que carregou o initrd
em uma ordem de grandeza mais rápida, cortando 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 PWM 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 se estivesse fazendo uma chamada do SO para ler cada byte em vez de ler a imagem como um fluxo de bytes?
Atualização 7
Parece que o carregamento do ramdisk inicial é uma grande parte do problema.
Dentro do GRUB, eu pressionei C para o prompt de comando manual. Em seguida, comecei a digitar cada linha da minha configuração padrão em um de cada vez (a inserção desses UUIDs era dolorosa!) e observei o tempo que o comando levou na conclusão. Aqui está o que eu encontrei:
- A maioria dos comandos foi concluída instantaneamente
- O comando para carregar o kernel demorou 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, prossigo para executar boot
. Desde o momento em que apertei, entre na hora em que a tela de login apareceu, demorou cerca de 7,5 segundos.
De interesse é o fato de que a imagem do initrd que está carregando é de 36MB. Então, se demorou 7 segundos para carregar, então é só ler a 5MB / seg!
A luz de atividade do disco na minha torre permanece ligada durante 7 segundos inteiros ...
Veja também um interessante snippet da página da Wikipédia sobre o initrd :
Outras distribuições Linux (como Fedora e Ubuntu) geram mais
imagem initrd genérica. Estes começam apenas com o nome do dispositivo do
sistema de arquivos raiz (ou seu UUID) e deve descobrir todo o resto
tempo de inicialização. Neste caso, o software deve executar uma cascata complexa
de tarefas para obter o sistema de arquivos raiz montado
Atualização 6
Nathan Osman solicitou o tempo de inicialização no modo de usuário único no bate-papo.
A partir do momento em que atingi F10 no GRUB até o momento em que o prompt aparece, leva 13 segundos.
Além disso, eu estava conversando com Zanna e Rinzwind no bate-papo e os dois têm uma inicialização de 8 segundos a partir do momento em que o botão liga / desliga é acionado. Meus 20 segundos são do GRUB. Se eu contasse o horário do POST, seria ainda mais longo!
Atualização 5
O Ubuntu pode ler meu SSD na sua velocidade máxima de 550MB / seg ...
Atualização 4
Então eu removi os parâmetros quiet splash $vt_handoff
do comando de inicialização do GRUB no meu laptop (lembre-se de que este laptop não tem um SSD) , e notei uma coisa muito interessante durante a seqüência de inicialização :
Ele trava nessa linha por 15 segundos:
[ 4.374390] init: plymouth-upstart-bridge respawnng too fast, stopped
Aqui está uma imagem (de baixa qualidade):
Não sei qual é o significado disso ...
Atualização 3
Eu calculei o tempo de inicialização de uma das minhas outras máquinas executando 14.04 (lembre-se de que essa máquina não tem SSD) e, a partir do momento em que eu digitava, inseri o GRUB até a tela de login ser exibida para cima, leva 40 segundos.
Depois de apertar enter, ele fica na mesma tela roxa por 20 segundos, após o que a animação do Ubuntu carrega e são necessários mais 20 segundos antes de chegar na tela de login.
Eu olhei para a saída de dmesg
, mas não consigo 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 interpretei corretamente, parece ser um problema universal do GRUB.
Atualização 2
Eu pude confirmar que é um problema do GRUB definindo a cor de fundo do GRUB para verde usando a linha de comando acessada pressionando C quando estiver no GRUB.
Quando eu aperto, eu recebo uma tela verde em branco por ~ 15 segundos antes que a animação de inicialização do Ubuntu seja carregada ...
Atualizar
Acho que o problema é que o GRUB está demorando muito para carregar a imagem do kernel.
Pergunta
Instalei o Ubuntu 16.04 no meu Samsung 850 Pro 512GB SSD e não consigo entender por que meu tempo de inicialização é de 20 segundos. (A partir do momento que eu entrei no GRUB). Tenha em mente que o 20 que estou fazendo referência é 17 na tela de login e, em seguida, mais 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 eu desprezo o UEFI.
- Eu tenho os drivers proprietários da Nvidia instalados
Olhando para a imagem gerada por systemd-analyze plot > bootimage2
, minha startup aparentemente levou 3 segundos?
E olhando para dmesg
, minha startup aparentemente levou 4 segundos. Mas eu fiz o tempo com meu cronômetro e levou 20 segundos! (Não incluindo o tempo do POST) Novamente, lembre-se de que o 20 que estou fazendo referência é 17 na tela de login e outro 3 para o ambiente de trabalho)
Veja como está a sequência de inicialização:
- POST
- cargas do GRUB
- Eu começo meu cronômetro enquanto pressiono ENTER
- Eu recebo uma tela roxa em branco por ~ 15 segundos
- vejo a animação de inicialização do Ubuntu por dois segundos
- chego na tela de login
- paro o cronômetro
- insiro minha senha, pressiono enter e inicio meu cronômetro novamente.
- Após 3 segundos, aterrisso na área de trabalho
- Eu paro meu cronômetro novamente.
Esta é a saída completa do link dmesg
:
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:
Alguma idéia?