Dracut v0.4
4 lipca 2009, czepolskoczminadyfer
Została wydana nowa wersja dracuta – następcy aktualnych narzędzi do tworzenia initramfs rozwijanego przez deweloperów Fedory i Debiana.
Celem projektu jest stworzenie uniwersalnego zestawu narzędzi do tworzenia initramfs, które będą pozbawione zależnych od konkretnej dystrybucji rozwiązań. Dzięki zmodularyzowaniu skryptów teoretycznie będzie możliwe stworzenie initrd bez zbędnych dla danej maszyny modułów – po co mi plymouth na serwerze? Powinno się to też przyczynić do skrócenia startu systemu – w Fedorze nash czasami niemiłosiernie długo potrafi mielić te skrypty startowe – w Dracut domyślnym egzekutorem ma być dash, co powinno się również przełożyć na pewien wzrost szybkości działania.
Ogólnie ma być szybciej i bardziej uniwersalnie – tak, żeby wiele dystrybucji mogło z tego skorzystać.
Niemało jeszcze pozostało do zrobienia, ale deweloperzy pracują pełną parą – przez ostatnie dwa dni zostały wydane trzy wersje. Całość ma być na tyle funkcjonalna, żeby zastąpić mkinitrd w już Fedorze 12 – więc wysokie tempo prac jest zrozumiałe.
Pozostaje mieć nadzieję, że deweloperzy nie po obrażają się na siebie i nie zakończą tak owocnie rozpoczętej współpracy, a Dracut nadal będzie się szybko rozwijał i zostanie zaadoptowany również przez inne dystrybucje, a nie tylko pochodne Debiana i Fedory.



Łał! LJZ, całkiem niezły news
! I chociaż niektóre fragmenty (“po co mi plymouth na serwerze?”) należałoby poprawić, to nie jest źle.
Faktycznie, ten nius jest niezły. Jednak ban i tak mu się należy za założenie trzeciego konta z rzędu i unikanie kary.
Kary? Sąd był kapturowy!
No dobra. Może lepiej “po co komuś usplash/pylmouth na serwerze”? Chodziło pewnie o konieczność ograniczenia intramfs. Swoją drogą, to do sprawdzenia systemu plików nie jest potrzebny wcale initramfs. Wystarczą sumy kontrolne pewnych plików i lokalne kopie, choć pewnie sprawdzanie sum kontrolnych jednak potrwa dłużej.
“No dobra. Może lepiej “po co komuś usplash/pylmouth na serwerze”?”
Jeśli mam serwer(y) i jedyne co mam do niego wpięte to kabel zasilania i kabel sieciowy, to po co mi plymouth w initrd? Naprawdę nie potrzebuje tego zbędnego kodu, bo nawet jakbym miał podpięty monitor, to i tak nie przeprowadzam często restartu.
“Chodziło pewnie o konieczność ograniczenia intramfs”
Zgadza się – aktualnie nie mam możliwości wyrzucenia plymouth z initrd bez przerabiania mkinitrd, bo jakiś geniusz uznał, że ten super zajefajny ficzer będzie cieszył również ludzi używających Linuksa do czegoś innego niż surfowanie po internecie, zmienianie tapety, obracanie kostki etc.
“Swoją drogą, to do sprawdzenia systemu plików nie jest potrzebny wcale initramfs. Wystarczą sumy kontrolne pewnych plików i lokalne kopie, choć pewnie sprawdzanie sum kontrolnych jednak potrwa dłużej”
Zupełnie nie mam pojęcia o czym mówisz. Domyślam się, że nie rozumiesz od czego służy initrd/initramfs.
Możliwe, że wiesz, że w jądrze Linux sterowniki do urządzeń oraz kod systemów plików jest bardzo często skompilowany jako tzw. moduł. Moduły tworzy się dlatego, żeby zbytnio nie przeładowywać jądra zbędnymi rzeczami. Teraz wyobraź sobie jak musi być zbudowane jądro dla dystrybucji – musi mieć obsługę wielu różnych systemów plików oraz sterowników urządzeń z których można wystartować system. Gdyby wbudować wszystkie dostępne moduły, to jądro miałoby jakieś 66 MB w przypadku dystrybucji, którą używam. Dlatego ten cały kod jest w modułach. Teraz powstaje problem – jeśli w jądrze nie ma wbudowanej obsługi systemu plików xyz oraz sterownika do naszego mega, hiper gwiezdnego sas, to jak zamontować taki system plików i jak załadować inne moduły. Tutaj z pomocą przychodzi nam initramfs/initrd. Jest to mały system plików na którym umieszczono kilka programów, moduły potrzebne do zamontowania rootfs, skrypty które muszą zostać wykonane aby móc odpalić init z rootfs. Po wykonaniu wszystkich poleceń ze skryptów initramfs system plików / jest podmieniany tym, który jest na dysku.
To tak w skrócie i uproszczeniu. Dracut ma realizować też kilka innych rzeczy – na przykład ładowanie polityk mandatowej kontroli dostępu, umożliwić logowanie przez ssh, żeby podać hasło do rootfs.
Na jakiej zasadzie to narzadko przebudowuje initrd?
Bo widze conajmniej kilka problemów/niedogosności :]
“Na jakiej zasadzie to narzadko przebudowuje initrd?”
Nie rozumiem pytania. Mógłbyś je przeredagować na bardziej zrozumiały język?
Widać byłem nieco zaspany. Jądro zawsze ma tylko wbudowaną obsługę którejś wersji EXT-a. Moduł można załadować znając jego lokalizację(fizyczną), ale to jest bardziej pozbawione sensu.
PS: To jak jądro wczytuje initramfs? Robi to bootloader?
no dobra purysto językowy :]
na jakiej zasadzie dracut przebudowuje obraz initrd. Piszesz przeca, że może on wywalać z pelnego obrazu to i owo (np uspalsh/pylmouth według ciebie są zbędne).
Zauważ że takie wywalanie prowadzi do tego że jesli bedziesz chcial poprostu przenieść system serwerowy na maszynę o zupełnie innej konfiguracji sprzętowej to system nie ruszy. kerenel panic bo sterownik sata sie zmienił (tak btw na to czuły jest XP) initrd wlasnie powstał po to aby jedno dystrybucyjne jajo zostało odpalone na dowolnej konfiguracji sprzętowej.
slawek: chyba dawno sprawdzales – obecnie ext od lat lezy w modulach, zamiast tego – jadro obsluguje standarowy dosc format archiwum cpio.
tak, bootloader wczytuje kernel i initramfs, po czym tylko kernelowi podaje informacje gdzie ten initramfs sie znajduje w pamieci.
“na jakiej zasadzie dracut przebudowuje obraz initrd.”
Gdybyś zajrzał do helpa mkinitrd, to wiedziałbyś, że można wyrzucać z initramfs różne grupy modułów – do scsi, raid, lvm, dmraid. W Dracut jest dostępna podobna opcja omit lista_modułów_dracuta. Dzięki temu można podczas przebudowywania initramfs wyrzucić z niego niepotrzebne na danej maszynie rzeczy.
“Zauważ że takie wywalanie prowadzi do tego że jesli bedziesz chcial poprostu przenieść system serwerowy na maszynę o zupełnie innej konfiguracji sprzętowej to system nie ruszy. kerenel panic bo sterownik sata sie zmienił (tak btw na to czuły jest XP) initrd wlasnie powstał po to aby jedno dystrybucyjne jajo zostało odpalone na dowolnej konfiguracji sprzętowej.”
Ja chcę mieć kontrolę nad tym, co jest w initramfs. Jeśli ty nie chcesz, to twoja sprawa – spadaj na drzewo i używaj jakiejś mutacji mkinitrd.
@czepolsko……….cośtam
A do hitlera mnie nie porównasz?
ak47: nie popisales sie tym razem
initrd – a wlasciwie teraz initramfs nie powstal w celach przez ciebie opisanych. btw. sam mam “przykrojony”, tj. dopasowany do swojego sprzetu initramfs – zgodnie ze standardami debianowymi – jedna opcja w pliku konfiguracyjnym i masz tylko te moduly, ktore sa potrzebne ci do startu systemu.
btw. swojego systemu nie odpalam na innym sprzecie…
@czepolsko……….cośtam
Wyjaśnij mi prosze o mądry czym się rożni dracut od zwyklego odpalania mkinitrd z parametrami? Bo Ja nie widzę żadnej różnicy.
Btw mówisz że chcesz mieć kontrole na tym co jest w initramfs. Czy nie latwiej/szybciej jest poprostu rezygnować z initramfs? Tak, system mozna odpalić bez initramfs ;]
“Wyjaśnij mi prosze o mądry czym się rożni dracut od zwyklego odpalania mkinitrd z parametrami?”
Przecież wyjaśniłem – jest zmodularyzowany i można go bardziej dopasować do własnych potrzeb. Nie rozumiem co tu może do ciebie nie docierać? Jak chcesz znać resztę różnic, to zajrzyj do źródeł .
“Btw mówisz że chcesz mieć kontrole na tym co jest w initramfs. Czy nie latwiej/szybciej jest poprostu rezygnować z initramfs? Tak, system mozna odpalić bez initramfs ;]”
Myślisz, że będę kompilował jądro na serwerze? Nawet nie instaluje tam gcc…
W RHEL czy Fedorze i pochodnych nie da się zrezygnować z initramfs bez mocnych przeróbek w systemie. Nawet jak masz wkompilowaną w jądro obsługę FS czy sterownik urządzenia na którym jest rootfs, to ze względu na niekernelowe nazewnictwo urządzeń system bez initramfs się nie podniesie.
No i wątpię, żebyś sobie z tym poradził – ekspercie…
a to trzeba kompilować na tej samej maszynie na ktorej jest to odpalane 0_o ekspercie …??
Co do fedory jakoś jeszcze 4 lata temu sie dało się uruchomić bez initrd …;] I tak trochę zachodu to kosztowalo.
@jell
Jakis miesiąc temu płyta główna w jednej z maszyn (developerskich) wysiadła……… zamiast odtwarzać backup podlaczyiśmy dyski pod inny kadłubek i se chodziło aż nowa plyta przyszła. Wiec czasem ten fat initrd może być baaaaaardzo przydatny.
“a to trzeba kompilować na tej samej maszynie na ktorej jest to odpalane 0_o ekspercie …??”
Ja nie mam innych systemów z Linuksem w statusie != serwer.
Na wszystko są sposoby ……..
-lajfcd
-system zwirtualizowany
-jakieś inne cuda też się znajdą
Mówisz o serwerze w sensie maszyny produkcyjnej czy domowej popierdułki?
Najlepiej od razu zatańczyć przed komputerem na uszach, zrobić pompkę na 2 palcach itp….
@Sławek – a gdzieś takie bzdury wyczytał, że jądro zawsze jakiegoś ext obsługuje?
Nius ok, więc zostaje.
To co, nie dostanę bana? Czepol, k… nie wymiękaj – zapodaj bana
Jak będziesz pisał niusy takiej jakości to nie byłoby żadnego problemu. Zrobienie bana dużo czasu nie zajmuje, tobie napisanie niezgodnego z regulaminem niusa już trochę więcej
Poza tym, niedługo (mam nadzieję) będzie ficzer (ktoś odpowiedział na jeden z komentarzy do redakcji), dzięki któremu niusy osób, które nic jeszcze nie napisały będą dostępne tylko po akceptacji moderatora.
proponuje by jednak moderacji poddawane byly wszystkie od osob o statusie nizszym niz redakcja…
Gratulację dobrego loginu
Login niezły, tylko co to jest “dyfer”? W internecie przeczytałem, że to filtr do skręta oO…
@czepolskoczminadyfer
To jest serwis o IT, a nie o motoryzacji
“To jest serwis o IT, a nie o motoryzacji”
Jestem inżynierem informatyki, wiem do czego służy ls w uniksie, ale nie potrafię zatankować samochodu…
Akurat opcję z dyferencjałem z miejsca zdyskfalifikowałem na początku, bo myślałem, że miałeś na myśli coś bardziej kreatywnego
.
Lokalny żargon 4×4 nigdy nie jest kreatywny… może następnym razem lepiej pójdzie jak napisze zamiast na dyfer na panharda.
Albo nie, bo to jest zbyt kreatywne – pierwsze 10 haseł na google nie ma zbyt wiele wspólnego z panhard rod
Nie do końca, ale niech już będzie.
Co na to chłopaki z Pardusa?
czy Archowcy generujący dopasowany obraz initramfs przy instalacji kernela ?
Ci od Pardusa, to pewnie będą chcieli te skrypty initramfs w pythonie pisać
Niegdyś developerze Ubuntu ogłosili rozpoczęcie prac nad Upstart. Wtedy developerzy Debiana zaproponowali projekt o podobnej nazwie. Wiem, że tylko z nazwy podobny. Mógłby ktoś mi podać jego nazwę?
upstart-nobuntu?
Nie chodziło o projekt zaczynający się na D. Sam poszukam. Miał być zamiennikiem Upstart, więc trochę nie związane z tematem.
Z tego co mówisz wynika, że downstart ;>
“Niemało jeszcze pozostało do zrobienia, ale deweloperzy pracują pełną parą – przez ostatnie dwa dni zostały wydane trzy wersje
”
Nie powinno być kropki? Widać, że nius jest trochę uszczypliwy, ale i dobrze – jeżeli to prawda.
No i takie projekty mi się podobają – dostępne dla Linuksa a nie np. dla *buntu only.
Praktycznie wszystko odpalisz na nowoczesnych linuksach… no chyba że aplikacja na chama sprawdza czy distro na którym jest uruchamiana to ubuntu, używa np. apt’a (wtedy *deb only)
@matiit
nie zebym sie czepial, ale apt-get chodzi tez na rpmach…