Jaka jest różnica między initrd a initramfs?

12

Chciałbym wiedzieć, jaka jest różnica między initrdi initramfs?

Sen
źródło

Odpowiedzi:

12

Initrd jest przestarzałe, zastąpione przez Initramfs, który nie ma żadnych słabych stron initrd:

  • Initrd wymaga, aby przynajmniej jeden sterownik systemu plików został wkompilowany w jądro
  • Dysk stworzony przez initrd ma mieć stały rozmiar
  • Wszystkie odczyty / zapisy na Initrd są zbędnie buforowane (niepotrzebnie) do pamięci głównej

Myślę, że to wszystko.


Jak to polecenie update-initramfs generuje /boot/initrd.img?

Przekształca niezbędne pliki w cpio archiwum , które jest formatem archiwum binarnego (bardzo podobnym do tar, nie używanym powszechnie w Linuksie), a następnie używa gzip do skompresowania tego archiwum. Gzip to nie jest samo archiwum, tylko kompresja (dlatego otrzymujesz pliki archiwów .tar.gz).

W czasie uruchamiania archiwum jest nieskompresowane i rozpakowywane na    dysk RAM .

Zobacz także: Jak uruchamia się komputer

Stefano Palazzo
źródło
„Initrd wymaga, aby przynajmniej jeden sterownik systemu plików został wkompilowany w jądro”. Nie mam o tym pojęcia. Czy możesz to wyjaśnić?
Sen
Zwykle sterowniki systemu plików mogą być dowolnie przykręcone do systemu operacyjnego, a niektóre rzeczy muszą zostać skompilowane bezpośrednio w jądrze. Co jest uciążliwe, ponieważ wszystkie wersje jądra muszą być dostosowywane, powiększane, wprowadzane dodatkowe zależności i tak dalej. (Przynajmniej tak sądzę, może się mylić, nie mam doskonałej wiedzy na temat systemów plików)
Stefano Palazzo
Czy to tak, że initramfs nie musi być montowany początkowo?
Sen
Wszystkie systemy plików muszą zostać zamontowane, zanim będą mogły być używane. Jeśli chcesz dowiedzieć się więcej o initramfs, zajrzyj na en.wikipedia.org/wiki/Initrd - istnieje o wiele bardziej szczegółowe wyjaśnienie.
Stefano Palazzo
Jak to polecenie update-initramfs generuje /boot/initrd.img?
Sen
3
  • initrd był oparty na urządzeniach blokowych, initramfs jest bazą plików.

  • za pomocą initrd utworzyłeś obraz systemu plików. za pomocą initramfs tworzysz archiwum z plikami, które jądro wypakowuje do tmpfs.

karthick87
źródło
czy mógłbyś wyjaśnić mi kroki od początku do ładowania i czytania initramfs?
Sen