Próbuję zrozumieć, co muszę zrobić, aby przyspieszyć rozruch z Ubuntu 16.04. Mam biegać dmesg i zapisane wyjście tutaj . Wszystko wydaje się nie działać po około 10 sekundach.
Próbuję zrozumieć, co muszę zrobić, aby przyspieszyć rozruch z Ubuntu 16.04. Mam biegać dmesg i zapisane wyjście tutaj . Wszystko wydaje się nie działać po około 10 sekundach.
Odpowiedzi:
Możesz spróbować dowiedzieć się, co zabiera najwięcej czasu systemd
systemd-analyze blame
Edycja UUID / etc / fstab przestrzeni wymiany (aby dopasować wynik sudo blkid
) działała jak urok!
Uwaga : po tym, jeśli w /etc/crypttab
pliku są jakieś pozycje wymiany , należy zmienić jego drugi parametr, aby pasował do przestrzeni wymiany, albo według UUID lub ścieżki (tj. UUID = coś lub / path / to / swap).
Na moim dysku SSD bootowanie trwało od 2 minut do mniej niż 10 sekund.
Chodzi o to, że właśnie zrobiłem normalną aktualizację z 14.04 do 16.04, bez bałaganu w partycjach, gdy ten problem się zaczął. Oczywiście istnieją pewne problemy z procedurą aktualizacji.
Mam podobny problem z dłuższym czasem uruchamiania po aktualizacji.
W czym był problem? Usunąłem przestrzeń wymiany, więc mój plik / etc / fstab i nowy system plików miały konflikty. Program ładujący czekał na znalezienie prawie 1m 30s.
Jak rozwiązałem problem Uruchom sudo blkid
Otwórz plik / etc / fstab i porównaj dopasowanie UUID z posiadanymi partycjami. Jeśli występuje niezgodność, zmień to i uruchom ponownie.
dmesg
w pytaniu pokazuje, że OP ma inny problem.
Jest to rozwiązanie obejścia, ale znacznie skróciło czas uruchamiania (z 1 min 24s do 16s).
sudo vim /etc/systemd/system.conf
Odkomentuj te dwa parametry i ustaw żądany limit czasu:
DefaultTimeoutStartSec=10s
DefaultTimeoutStopSec=10s
Uwaga: Zoptymalizuj te wartości, aby dopasować je do swoich potrzeb sprzętowych ~ 5 - 60s.
Jak omówiono tutaj te parametry skonfigurować domyślne limity czasu uruchamiania i zatrzymywania jednostek, a także domyślny czas do snu między automatycznych restartów jednostek, jak skonfigurowany na jednostkę w TimeoutStartSec=
, TimeoutStopSec=
i RestartSec=
(dla usług, patrz systemd.service (5) szczegółowe informacje na temat ustawień poszczególnych jednostek).
W przypadku jednostek nieobsługiwanych DefaultTimeoutStartSec=
ustawia wartość domyślną TimeoutSec= value
. DefaultTimeoutStartSec=
i DefaultTimeoutStopSec=
domyślnie do lat 90. DefaultRestartSec=
domyślnie 100ms.
Edytuj - bardziej szczegółowo:
Przeanalizowałem sekwencję rozruchu systemd-analyze plot > sequence.svg
, pokazując, że usługi nie uruchamiają się w moim świeżo zaktualizowanym systemie operacyjnym. Były trzy - jeden był źle skonfigurowanym demonem sendmaila, a następnie powerd.service & NetworkManager-wait-online.service . Ponieważ całkowite wyłączenie usługi NetworkManager nie jest dobrym pomysłem, po prostu pozostawiłem jej limit czasu po 10 sekundach i zastosowałem tę regułę globalnie.
Może to być związane z problemami z systemem plików. Możesz sprawdzić ten link, aby sprawdzić, czy naprawa systemu plików skraca czas uruchamiania: https://help.ubuntu.com/community/Filesystem
Miałem podobny problem, który właśnie rozwiązałem: uruchamiam Ubuntu 16.04 na dysku SSD. Używam dysku flash jako partycji wymiany. Dysk został przypadkowo nieznacznie przesunięty i uruchomienie zajęło ponad 3 minuty. Odłożyłem to poprawnie i teraz wszystko jest w porządku. Jeśli wypróbowałeś smartctl lub fsck i twój system plików jest w porządku, spróbuj usunąć dyski flash (lub inne urządzenia peryferyjne?) I zobacz, jak to działa. Powodzenia!
Na podstawie twoich wyników pastebin wyskakuje na mnie kilka rzeczy:
EXT4-fs (sda5): re-mounted
Może chcesz fsck tę objętość i przyjrzeć Smart Data na tym dysku.
i
[ 31.022220] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 45.720952] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 45.761548] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
Możesz spróbować wyłączyć IPV6 w połączeniach sieciowych, jeśli twoje połączenie go nie obsługuje.
Zgodnie ze wskazówką user536489:
systemd-zanalizuj winę
Sprawdź, czy jest usługa, której uruchomienie trwa długo, i ustaw niższy limit czasu:
sudo vim /lib/systemd/system/networking.service
Zmień TimeoutStartSec
na coś takiego 10s
. Stan strony podręcznika przyjmuje wartość bez jednostki w sekundach lub wartość przedziału czasu, na przykład „5min 20s”. Przekaż „nieskończoność”, aby wyłączyć logikę limitu czasu.