W tym artykule rozważymy rozwiązania problemów, gdy wirtualny lub fizyczny serwer oparty na Ubuntu / Mint / Kali nie ładuje się i spada w busybox w momencie inicjalizacji initramfs. W takim przypadku Linux nie uruchamia się, a użytkownik ma tylko wiersz poleceń initramfs.
Initramfs - jest to początkowy system plików RAM oparty na tmpfs, który nie korzysta z osobnego urządzenia blokowego. Jak initrd, zawiera narzędzia i skrypty wymagane do zamontowania systemów plików przed wywołaniem init, który znajduje się w głównym systemie plików.Problem z superblokowaniem
Jeśli Ubuntu wpadł w busybox podczas inicjalizacji initramfs, uszkodzony superblok mógł pojawić się na dysku. Linux przechowuje wiele kopii superbloków.
Aby odzyskać w przypadku takiego problemu, musimy uruchomić komputer z obrazu / dysku i uruchomić Terminal. Po załadowaniu w terminalu wpisujemy polecenie:
# sudo fdisk -l | grep Linux | grep -Ev 'swap'
Zespół zwróci informacje o naszej sekcji:
/ dev / vda2 4096 83884031 83879936 40G Linux system plików
Zapamiętaj nazwę sekcji i określ ją w następującym poleceniu:
# sudo dumpe2fs / dev / vda2 | grep superblock
Polecenie zwróci listę zapasowych superbloków:
Użyjemy drugiego superbloku zapasowego, aby wymienić uszkodzony (możesz wybrać dowolny inny niż Podstawowy). Sprawdźmy dysk przy użyciu podbloku kopii zapasowej do odzyskiwania:
# sudo fsck -b 98304 / dev / vda2 -y
fsck z util-linux 2.31.1 e2fsck 1.44.1 (24-mar-2018) / dev / vda2 jest zamontowany. e2fsck: Nie można kontynuować, przerywanie
Musisz odmontować sekcję:# umount / dev / vda2
Po pomyślnym zastąpieniu superbloku powinieneś otrzymać następujący komunikat:
fsck z util-linux 2.31.1 e2fsck 1.44.1 (24-mar-2018) / dev / vda2 nie został całkowicie odmontowany, sprawdzenie wymuszone. Pass 1: Sprawdzanie i-węzłów, bloków i rozmiarów Pass 2: Sprawdzanie struktury katalogów Pass 3: Sprawdzanie łączności z katalogiem Pass 4: Sprawdzanie liczby referencji Pass 5: Sprawdzanie informacji podsumowania grupy Wolne bloki liczą się źle dla grupy # 231 (32254, zliczono = 32253) . Naprawić? tak Wolne bloki liczą się źle dla grupy nr 352 (32254, zliczono = 32248). Naprawić? tak Wolne bloki liczą się źle dla grupy nr 358 (32254, zliczono = 27774). Naprawić? tak ... / dev / vda2: ***** SYSTEM PLIKÓW ZOSTAŁ ZMODYFIKOWANY ***** / dev / vda2: pliki 85986/905464576 (0,2% nieprzylegających), 3904682/905464576 bloków
Teraz uruchom ponownie komputery, odłączając dysk dystrybucyjny i wszystko powinno być w porządku.
Błąd dysku Fsck
Drugi wariant błędu to obecność następującego wiersza w oknie terminala:
/ dev / sda1: UNEXPECTED INCONSISTENCY; URUCHAM RĘCZNIE fsck Główny system plików na / dev / sda1 wymaga ręcznego fsck.Jeśli nie widzisz takiego błędu, spróbuj wpisać (initramfs) exit w oknie terminala. Po tym może pojawić się błąd ...
Błąd wskaże wolumin, który wymaga ręcznego sprawdzenia dysku. W wierszu polecenia initramfs wykonaj:
# fsck / dev / sda1 -y
Po pełnej kontroli musisz zrestartować serwer i sprawdzić, czy wszystko jest w porządku.
Błąd dysku: / dev / sda1 nie istnieje
Problem z fstab
Jeśli zobaczysz błąd podczas ładowania serwera:
ALERT! / dev / sda1 nie istnieje. Upuszczenie do muszli.
Najprawdopodobniej właśnie zainstalowałeś Linuksa lub na twoim serwerze występują problemy fstab. Najczęściej problem występuje podczas instalowania systemu za pomocą USB-prowadzić. Część, na którą przysięga system, może być dowolna. Podobnie jak w pierwszym przypadku, musimy uruchomić system z obrazu systemu i wykonać pewne czynności. Sprawdź identyfikator UUID dysku za pomocą polecenia:
# sudo blkid
System wytworzy coś takiego:
/ dev / sda2: UUID = "36cce3d5-cbdb-46f4-adbf-3f9aaa01d729" TYPE = "ext4" PARTUUID = "fea4dab1-4e12-4327-85c6-76ade18f64e1"
Odtąd już jest jasne, że system musi zostać uruchomiony z sda2, ale w rzeczywistości uruchamia się z sda1.
Montujemy naszą sekcję w dowolnym katalogu, na przykład:
# sudo mount / dev / sda2 / mnt
Pobieramy całą partycję / dev / sda2 w katalogu / mnt, znajdujemy tam plik / etc / fstab i zmieniamy wiersz zawierający / dev / sda1 na:
UUID = 36cce3d5-cbdb-46f4-adbf-3f9aaa01d729 / ext4 error = remount-rw 0 1
Zapisz plik. Odmontuj partycję z / mnt i uruchom ponownie, jeśli problem był związany z niewłaściwym adresem partycji, serwer uruchomi się.
Opcję tę można również rozwiązać, ładując w nagłych wypadkach. Zamontuj ponownie katalog główny, aby napisać:
# sudo mount -o remount, rw /
Następnie zmień fstab i zrestartuj serwer.
Problem z żelazem
Na niektórych płytach głównych porty SATA może uzyskać dowolne liczby. Może to również powodować błąd opisany w poprzednim akapicie. Aby naprawić błąd, musisz zmienić bootloader grub.
Uruchom w trybie awaryjnym lub z live-cd i zmodyfikuj plik /boot/grub/grub.cfg
W linii, w której sekcja się ładuje, na przykład:
Linux /boot/vmlinuz-4.15.0-70-generic root = / dev / sda1 rw quiet wind = noop fsck.repair = tak
Zmień ścieżkę dysku na Uuid:
Linux /boot/vmlinuz-4.15.0-70-generic root = UUID = 36cce3d5-cbdb-46f4-adbf-3f9aaa01d729 ro cicha winda = noop fsck.repair = tak