Zamontuj główny system plików z initramfs

16

To powszechny scenariusz. Z jakiegokolwiek powodu initramfs (OpenSUSE, jeśli ma to znaczenie) nie znalazł głównego systemu plików, więc spada do powłoki ratunkowej. Doskonale wiem jednak, jakie urządzenie należy zamontować. Moje pytanie:

Jaka jest poprawna procedura zamontowania głównego systemu plików i kontynuowania sekwencji rozruchowej?

Można przypuszczać, że jest cały punkt konsoli ratunkowej. A jednak wydaje się, że nikt nie udokumentował, w jaki sposób to robisz.

Oczywiście mogę gdzieś zamontować główny system plików. Ale jak sprawić, aby katalog główny drzewa systemu plików? A teraz czy po tym będę kontynuować normalny proces rozruchu? (Myślałem, że samo wyjście z powłoki to zrobi ... ale tak nie jest.) Co dokładnie musisz zamontować, zanim będziesz kontynuować i jak kontynuować?

MathematicalOrchid
źródło
2
Mogę się mylić, ale myślę, że kiedy jesteś w skorupie ratunkowej, nie możesz kontynuować bieżącego rozruchu, naprawiasz rzeczy, więc kolejne uruchomienie się powiedzie
Eric Renouf
@EricRenouf ręczne uruchomienie pełnego systemu może być najłatwiejszym sposobem na rozwiązanie takiego problemu. W przeszłości miałem problemy z tym, że initramfs nie otworzył mojej zaszyfrowanej partycji root cryptsetup-luks, a najprostszym rozwiązaniem było ręczne jej uruchomienie, a następnie uruchomienie update-initramfs -u. Absolutnie nie mogłem go uruchomić, gdy po prostu chrootprzeszedłem do głównego systemu plików z systemu ratunkowego; powstałe initramfs zawsze było zepsute.
Martin von Wittich,
Czy to właściwie initrd, czy initramfs? (To, że plik jest wywoływany initrd, nie oznacza, że ​​jest jeden: większość dystrybucji przełączyła się na, initramfsale wciąż wywołuje plik initrd.) Jakiej dystrybucji używasz (ponieważ to, co robi initrd / initramfs, zależy od tego, co tam umieszcza dystrybucja)?
Gilles 'SO - przestań być zły'
@Gilles Jestem pewien, że to właściwie initramfs. Nie jestem jednak pewien, czy to rzeczywiście robi różnicę; tak czy inaczej, mam mini system plików i muszę zamontować prawdziwy system plików. (OpenSUSE, jeśli ma to znaczenie.)
MathematicalOrchid

Odpowiedzi:

2

normalna procedura to

  1. mount / dev / sdX / mnt
  2. napraw problem na / mnt
  3. restart

Możesz chcieć

  1. mount / dev / sdX / mnt
  2. fix / mnt
  3. umount / mnt
  4. mount / dev / sdX /
  5. dokończ rozruch ręcznie

Nie jest to zalecane, musisz to zrobić przy każdym uruchomieniu. W środowisku produkcyjnym nie można mieć pewności, że ręczne uruchamianie odbywa się tak samo jak automatyczne.

Jednak w sytuacji awaryjnej z krytycznymi danymi krok 5 zwykle sprowadza się do:

  • 5.1 Konfiguracja sieci
  • 5.2 skopiuj ważny plik w bezpieczne miejsce
Archemar
źródło
2
Wydaje mi się, że „rzeczywistym” pytaniem oryginalnego plakatu było „Jak dokładnie„ 5. ręcznie uruchomić rozruch ”?”.
user2121874,
2

Po prostu uruchom fsckpolecenie bez opcji, initramfsa następnie uruchom ponownie

np .: partycja root to sda3

fsck /dev/sda3
GAD3R
źródło
Ponowne uruchomienie po prostu upuściło mnie do grub grubej powłoki zamiast powłoki initramfs. Teraz zrobię wszystko od nowa, aby dostać się do powłoki initramfs
jaam
1

Jeśli root=parametr jest prawidłowy, a problem polega na tym, że niezbędne urządzenie nie jest dostępne (na przykład ponieważ initramfs nie udało się złożyć mdRAID), wystarczy, aby urządzenie było dostępne ręcznie, na przykład:

mdadm --assemble ...

Następnie sprawdź, czy urządzenie tam jest i jeśli wszystko wygląda dobrze, naciśnij ctrl+ dlub wpisz, exitaby wyjść z powłoki initramfs. Następnie initramfs zamontuje główny system plików i kontynuuje rozruch w zwykły sposób. Po uruchomieniu systemu powinieneś naprawić podstawowy problem, na przykład przez uruchomienie update-initramfs -u.

Nie znalazłem jeszcze sposobu, aby powiedzieć initramfs, aby uruchomił inne urządzenie niż to /proc/cmdline, co mówi. Może ktoś ma pomysł?

Martin von Wittich
źródło