Обновление 9
Я решил попробовать эксперимент. Я удалил SSD со своего рабочего стола и временно вставил в ноутбук Dell Latitude. И вот, он загрузился initrd
на порядок быстрее, сэкономив 6 секунд времени загрузки ...
Я сейчас немного растерялся ... может, у GRUB есть проблема с чипсетом моей материнской платы?
Обновление 8
Итак, я заметил кое-что интересное в индикаторе активности HDD. При загрузке initrd
, это почти так, как если бы свет был ШИМ с 10% -ным рабочим циклом или что-то в этом роде. Это заставляет меня задуматься, не оптимизировано ли чтение GRUB, может быть, что-то вроде вызова ОС для чтения каждого байта, а не чтения изображения в виде потока байтов?
Обновление 7
Похоже, что загрузка начального виртуального диска является большой частью проблемы.
Внутри GRUB я нажал Cна командную строку вручную. Затем я приступил к вводу каждой строки из конфигурации по умолчанию по одной (ввод этих UUID был болезненным!) И отметил время, затраченное командой на завершение. Вот что я нашел:
- Большинство команд выполнено мгновенно
- Команда для загрузки ядра заняла около секунды
- Команда для загрузки начального виртуального диска заняла 7 секунд
После ввода всех строк из файла конфигурации я продолжаю работать boot
. С момента нажатия кнопки ввода до момента появления экрана входа в систему это заняло около 7,5 секунд.
Интересным является тот факт, что образ initrd, который он загружает, составляет 36 МБ. Так что, если загрузка заняла 7 секунд, значит, он читает только со скоростью 5 МБ / с!
Индикатор активности диска на моей башне горит все 7 секунд ...
Также вот интересный фрагмент со страницы Википедии об initrd :
Другие дистрибутивы Linux (такие как Fedora и Ubuntu) генерируют более общий образ initrd. Они начинаются только с имени устройства корневой файловой системы (или его UUID) и должны обнаруживать все остальное во время загрузки. В этом случае программное обеспечение должно выполнить сложный каскад задач, чтобы смонтировать корневую файловую систему.
Обновление 6
Натан Осман запросил время загрузки в однопользовательском режиме в чате.
С момента, когда я F10нажал на GRUB, до появления приглашения, это занимает 13 секунд.
Кроме того, я разговаривал с Zanna и Rinzwind в чате, и у них обоих 8-секундный запуск с момента нажатия кнопки питания. Мои 20 секунд от GRUB. Если бы я посчитал время POST, это было бы еще дольше!
Обновление 5
Ubuntu может читать мой SSD на максимальной скорости 550 МБ / с ...
Обновление 4
Поэтому я удалил quiet splash $vt_handoff
параметры из команды загрузки в GRUB на своем ноутбуке (имейте в виду, что у этого ноутбука нет SSD) и заметил очень интересную вещь во время последовательности загрузки:
Он висит на этой линии в течение 15 секунд:
[ 4.374390] init: plymouth-upstart-bridge respawnng too fast, stopped
Вот картинка (низкого качества):
Не уверен, что это значит ...
Обновление 3
Я рассчитал время загрузки одной из моих других машин, работающих под управлением 14.04 (имейте в виду, что на этой машине нет SSD) , и с момента нажатия кнопки ввода в GRUB до появления экрана входа в систему это занимает 40 секунд.
После нажатия Enter, он сидит на том же пустом фиолетовом экране в течение 20 секунд, после чего загружается анимация Ubuntu, и требуется еще 20 секунд до приземления на экран входа в систему.
Я посмотрел на вывод с dmesg
, но я не могу точно сказать, где он закончил загрузку. Я думаю, что это закончилось в 25 секунд. Вот последние несколько строк:
[ 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
Если я правильно истолковал это, это кажется универсальной проблемой GRUB.
Обновление 2
Я смог подтвердить, что это проблема GRUB , установив зеленый цвет фона GRUB с помощью командной строки, доступ к которой осуществляется нажатием кнопки Cв GRUB.
Когда я нажимаю Enter, я получаю пустой зеленый экран за 15 секунд до загрузки анимации загрузки Ubuntu ...
Обновить
Я думаю, проблема в том, что GRUB долго загружает образ ядра.
Вопрос
Я установил Ubuntu 16.04 на свой твердотельный накопитель Samsung 850 Pro 512 ГБ, и я не могу понять, почему мое время загрузки составляет 20 секунд. (С того момента, как я нажал ввод в GRUB). Имейте в виду, что 20, на которые я ссылаюсь, это 17 на экране входа в систему, а затем еще 3 на рабочем столе)
Кроме того, не уверен, если это актуально или нет, но:
- Ubuntu устанавливается в режиме MBR, потому что я презираю UEFI.
- У меня установлены проприетарные драйверы Nvidia
Глядя на изображение, сгенерированноеsystemd-analyze plot > bootimage2
, мой запуск, очевидно, занял 3 секунды?
И, глядя на dmesg
мой запуск, очевидно, заняло 4 секунды. Но я рассчитал это с моим секундомером, и это заняло 20 секунд! (Не включая время POST) И снова имейте в виду, что 20, на которые я ссылаюсь, это 17 на экране входа в систему, а затем еще 3 на рабочем столе)
Вот как происходит последовательность запуска:
- ПОСЛЕ
- Груб грузы
- Я запускаю секундомер, когда нажимаю ENTER
- Я получаю пустой фиолетовый экран в течение ~ 15 секунд
- Я вижу анимацию загрузки Ubuntu в течение двух секунд
- Я приземляюсь на экране входа
- Я останавливаю секундомер
- Я ввожу свой пароль, нажимаю ввод и снова запускаю секундомер.
- Через 3 секунды я высаживаюсь на рабочий стол
- Я снова останавливаю свой секундомер.
Вот полный вывод dmesg
: http://paste.ubuntu.com/23955108/
И вот первые строки из вывода 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
У этих людей одна и та же проблема:
- https://ubuntuforums.org/showthread.php?t=2325045
- https://www.bleepingcomputer.com/forums/t/598260/booting-ubuntu-temporarily-stuck-on-a-purple-screen/
- И кажется, что даже люди с ARCH имеют эту проблему ...
Любые идеи?
systemd-analyze blame
. Странно то, что Grub застрял на «загрузке исходного RAM-диска» примерно на 10 секунд, тогда как из-за размера файла это должна быть доля секунды. Тогда отставание просто ушло. Возможно, это было обновление ядра? Может быть, изменения, которые я сделал, plymouthd
я не уверен.