Ubuntu / Mint / Kali nie ładuje się z initramfs w BusyBox

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

Jeśli otrzymasz wynik:

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