Od pewnego czasu proces uruchamiania trwa zbyt długo (prawie 1 min.).
systemd-analyse time
pokazuje, że jądro zajmuje 35,765s
Patrząc na dmesg
to, wydaje się, że problem dotyczy montowania systemów plików:
...
[ 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)
...
Mój /etc/fstab
wygląda tak:
# <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
Jak mogę rozwiązać ten problem?
EDYCJA: przyglądając się uważnie komunikatom rozruchowym (po usunięciu cichej opcji w grub) zauważyłem podejrzaną linię:
gave up waiting for suspend/resume device
Myślę, że moja zamiana jest zaszyfrowana, a także uważam, że identyfikator UUID w /etc/initramfs/conf.d/resume
nie odpowiada żadnemu urządzeniu.
Czy powinienem wyłączyć wznawianie / zawieszanie? i jak to zrobić?
Odpowiedzi:
Ok, znalazłem rozwiązanie dzięki komentarzowi Sudhanshu.
Problem był spowodowany zaszyfrowaniem mojej wymiany. Tak więc
local-premount
skrypt w initramfs czekał na urządzenie wymiany, które nie było dostępne, aż do przekroczenia limitu czasu. Odpowiednia wiadomość brzmiałagave up waiting for suspend/resume device
.Aby to wyłączyć (jak wznowieniu z zamiany nie jest to możliwe z zaszyfrowanym swap, a nie używam hibernacji i tak), I zmodyfikowane ten plik
/etc/initramfs-tools/conf.d/resume
.W tym pliku linia z
(zamiast UUID, który był tutaj) wyłączy czekanie na urządzenie do wznowienia.
Biegać
zastosować zmiany.
System uruchamia się teraz normalnie.
źródło
Widziałem to również w Linux Mint (opartym na Ubuntu) i spędziłem trochę czasu na rozwiązywaniu problemów.
Dzieje się tak, jeśli system jest zainstalowany na LVM i używa wolumenu LVM jako dysku wymiany.
Istnieje długotrwały, powtarzający się błąd, w którym plik CV ma niepoprawnie identyfikator UUID (nieprawidłowy dla LVM) zamiast ścieżki urządzenia, którą powinien mieć. Zobacz https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1768230
Możesz to naprawić, edytując
/etc/initramfs-tools/conf.d/resume
plik i zastępując UUID ścieżką urządzenia dysku wymiany. Poniższy fragment polecenia zrobi to za Ciebie, używając pierwszego dysku wymiany znalezionego i zgłoszonego przez blkid:źródło
Żadne z powyższych rozwiązań lub gdzie indziej nie zadziałało dla mnie, ale znalazłem rozwiązanie, które skraca mój czas uruchamiania do 40 sekund z 2 minut i 10 sekund.
Kiedyś tworzyłem i usuwałem partycje wymiany i jakoś te dzienniki pozostały w pliku etc / fstab. Więc mój system próbował zamontować wcześniej utworzone partycje wymiany, które już nie istnieją. Więc proszę, pozwól mi wyjaśnić, co zrobiłem krok po kroku.
Uruchomiłem to polecenie,
sudo blkid | grep swap
aby znaleźć moje partycje wymiany. Były dwa, ale jeden tak naprawdę nie istnieje (nie odnosi się do żadnej z moich partycji).Więc poszedłem edytować plik / etc / fstab, pisząc
sudo gedit /etc/fstab
Potem zdałem sobie sprawę, że jest tak wiele plików wymiany, które usunąłem, ale jakoś wznowiłem istniejące w tym pliku. Odniosłem się więc do kroku 1 i usunąłem partycje, które już nie istnieją .
Zobacz dwa zrzuty ekranu przed i po pliku / etc / fstab. Po tym oczyszczeniu wszystko działa normalnie.
To nie jest edytowany plik / etc / fstab bez edycji / etc / fstab
i tutaj po usunięciu nieistniejących partycji wymiany wyczyść / etc / fstab
źródło
Ten problem wystąpił po zainstalowaniu 2 różnych dystrybucji Linuksa. W jakiś sposób, w jednej dystrybucji, partycja wymiany ma przypisany inny identyfikator UUID, niż oczekiwano. Moje rozwiązanie polegało na: Najpierw uruchom,
sudo blkid
aby uzyskać odpowiedni identyfikator UUID dla partycji wymiany. Skopiuj identyfikator UUID wymiany. Wklej to,/etc/initramfs-tools/conf.d/resume
aby dostaćRESUME=_the_correct_UUID_
. Teraz uruchom,sudo update-initramfs -u
aby zastosować tę zmianę.Następnie sprawdź / etc / fstab iw razie potrzeby zmień tam identyfikator UUID partycji wymiany. (Musiałem)
źródło