Dlaczego Linux zezwala na „init = / bin / bash”?
Przeczytałem to, odpowiedzi mówią, że to KERNEL uruchamia ten program init.
Potem zacząłem się zastanawiać, Linux zwykle zawiera initramfs, który ostatecznie zamontuje i przestawi katalog główny na prawdziwy główny system plików. Co więc oznacza ten init
argument? Ścieżka w initramfs? Lub, jak zgadłem, nie jest czytany przez jądro, ale przez init initramfs w celu wykonania prawdziwego init.
Również root=UUID=xxxx
argument, że jest naprawdę czytany przez jądra lub po prostu przez init z initramfs aby znaleźć prawdziwe głównego systemu plików?
Wygląda na to, że mogę przekazać dowolny argument jako argumenty jądra, więc czy wszystkie są odczytywane przez jądro, czy przynajmniej niektóre z nich mają znaczenie tylko dla programów w przestrzeni użytkownika?
źródło
ld-linux.so
ELF lub zbyt głębokiego skryptu rekurencji lub czegoś po prostu nie można wykonać?/init
uruchamiania z ramdysku, można użyćrdinit=/path/to
parametru rozruchu.Przekazywanie niestandardowych argumentów jądra jest jednym ze sposobów dostosowania systemu podczas instalacji KickStart, na przykład serwer PXE może ustawić:
gdzie
lab
jest następnie używany w konfiguracji KickStart do robienia innych rzeczy niż w przypadku innych wersji systemu:Tutaj, aby ustawić inny układ systemu plików niż używany w innych typach systemów. Mamy nadzieję, że do lokalnych dostosowań używane są inne etykiety niż używane przez jądro, biorąc pod uwagę pojedynczą przestrzeń nazw.
źródło