Vlákno názorů k článku Distribuce slučují adresáře /lib a /usr/lib, je to dobrý nápad? od JohnBlbec - ja tedy zrovna dvakrat radost nemam a to...

  • Článek je starý, nové názory již nelze přidávat.
  • 20. 7. 2012 6:16

    JohnBlbec

    ja tedy zrovna dvakrat radost nemam a to ani z jednoho pocinu, ktery redhat prinasi. nemam system (gentoo), kde bych nemel /usr na oddelenem svazku lvm, tudiz problemy pri bootovani me cekaji a netesim se na to ani trosku :-(

  • 21. 7. 2012 13:37

    Pavel Šimerda

    Už delší dobu dávám do LVM kořenový adresář, takže případné problémy by se mě týkaly už dávno. Řešení jsou dvě, buď se gentooisti naučí používat initrd (což chápu, že se mnohým nechce), nebo má samozřejmě Gentoo jako distributor možnost
    oddělený /lib, /bin a /sbin zachovat.

  • 21. 7. 2012 13:44

    Lol Phirae (neregistrovaný)

    Ono se není zas tak co učit, initramfs už spoustu let vytváří automaticky genkernel, nebo si ho můžou vytvářet přes dracut.

  • 21. 7. 2012 19:28

    Pavel Šimerda

    A právě ti, kteří dosud byli zvyklí postupovat vyladěním kernelu bez initrd, se budou muset něco učit :).

  • 23. 7. 2012 10:42

    JohnBlbec

    nejde o uceni, to mi nevadi. nenapadlo te treba to, ze nekdo muze z ruznych duvodu chtit pouzit jiny fs pro / a jiny pro /usr ?

  • 23. 7. 2012 12:21

    Pavel Šimerda

    „nejde o uceni, to mi nevadi. nenapadlo te treba to, ze nekdo muze z ruznych duvodu chtit pouzit jiny fs pro / a jiny pro /usr ?“

    Ano, přesně ti, kteří chtějí použít pro /usr samostatný FS a dosud jim to fungovalo bez initrd, se to budou muset naučit.

  • 23. 7. 2012 12:31

    M. Prýmek

    Cili initrd se stane nutnosti kvuli necemu, co vubec nesouvisi s jeho puvodnim ucelem.

    A jsme u toho: spaghetti OS.

  • 24. 7. 2012 12:43

    JohnBlbec

    spravne, dostavame se k jadru veci. ja bych to nedelal, nicmene to neovlivnim a uz v tuto chvili mi prestalo fungovat nastaveni alsa, protoze prave alsact je v nekde v /usr a ten se uz ted pri bootu nemountuje, takze jak jste spravne pochopil, nelibi se mi to prave proto, ze uz to presunute je a genkernel patch nema...

  • 21. 7. 2012 13:46

    M. Prýmek

    > buď se gentooisti naučí používat initrd (což chápu, že se mnohým nechce)

    Nevim, jakou motivaci k tomu Gentooisti maji, ale vubec bych se nedivil, kdyby si spolu se mnou hodne z nich myslelo, ze cely koncept initrd je z principu veci vadny a je to ukazkovy priklad workaroundu, ktery vic problemu zpusobuje, nez resi.

    Proc propanakrale udrzovat nejaky "startovaci image" s kopiemi neceho, co mam v /, kdyz ho stejne z / nacitam? Dyt to je taskarice jak brno - proc rovnou nepouzit minimalistickou startovaci partition / ?

    No jo, ale to by chtelo trochu discipliny a nezasirat / kravinama... Coz chceme, takze pridame dalsi presrackovanou kravinu jmenem initrd...

  • 21. 7. 2012 13:54

    Lol Phirae (neregistrovaný)

    No jo, ale to by chtelo trochu discipliny a nezasirat / kravinama... Coz chceme, takze pridame dalsi presrackovanou kravinu jmenem initrd...

    Fajn, tak mi prosím s trouchou disciplíny vytvoř kravinama nezasranej /, kterej nabootuje z NFS, přičemž potřebuju NFS 4.1 a zabezpečení přes Kerberos. Principiálně vadné je podle tebe zřejmě všechno, co neodpovídá BSD dogmatům.

  • 21. 7. 2012 13:58

    M. Prýmek

    A v cem jako vidis problem? Co je ten principielni duvod, proc to nejde udelat?

    Poznamku s BSD dogmatama nechapu. FreeBSD pouzivam pro ilustraci, ze konkretni veci jdou delat i bez udajne nutnych berlicek.

  • 21. 7. 2012 14:02

    Lol Phirae (neregistrovaný)

    Proč to nejde udělat? Protože nechces zasírat / kravina, no. Pro jednoho je kravina kerberos, pro druhého je kravina cups, pro třetího je kravina bluetooth klávesnice nebo myš, ale nic z toho nefunguje správně, dokud není namountovaný /usr. Nevidím absolutně žádný smysl v pátrání po tom, co všechno nefunguje za účelem přesunutí do /. Práce úplně k ničemu.

  • 21. 7. 2012 14:07

    M. Prýmek

    A muzes mi nejak polopaticky vysvetlit, jakej je rozdil mezi temahle dvema vecma?

    1. zjistuju, co vsechno musim dat do initrd, abych mohl nabootovat

    2. zjistuju, co vsechno musim dat do /, abych mohl nabootovat

    No offence, nemam v umyslu trollovat, ale opravdu nechapu logiku uvazovani "nechceme to davat do /, tak to kopirujeme do initrd". Hlavne proto, ze v / mi to zustane navzdy na jednom miste, zatimco do initrd to musim pri kazde zmene kopirovat, rozbalovat, menit, zpatky zabalit, udrzovat konfiguraci, co vsechno tam ma byt, udrzovat miliony skriptu, ktery se o to vsechno staraji.

    Mit tu samou vec na dvou mistech je vzdycky nejhorsi mozny reseni a melo by se imho volit jenom v pripade, kdy fakt neni zbyti, protoze s tim jsou vzdycky problemy.

  • 21. 7. 2012 14:48

    Lol Phirae (neregistrovaný)

    opravdu nechapu logiku uvazovani "nechceme to davat do /, tak to kopirujeme do initrd"

    Ano, to asi zůstalo opravdu nepochopeno. :-) Jediné, co tam potřebuju, jsou věci nutné k připojení /usr. Opravdu nikdo tam nechce rvát cups, BT stack atd. do initrd/initramfs, není k tomu žádný důvod.

    Hlavne proto, ze v / mi to zustane navzdy na jednom miste

    Ano, zatímco initramfs mi to zůstane nejen na jedno místě, ale ještě všecho pohromadě v jednom souboru. Fakt nevidím, v čem je ta výhoda /.

    musim pri kazde zmene kopirovat, rozbalovat, menit, zpatky zabalit, udrzovat konfiguraci, co vsechno tam ma byt, udrzovat miliony skriptu, ktery se o to vsechno staraji.

    Hmmm... napsat update-initramfs -u v Debianu nebo genkernel --install initramfs v Gentoo, to je fakt děsná práce. :-)

  • 21. 7. 2012 15:01

    M. Prýmek

    > Opravdu nikdo tam nechce rvát cups, BT stack atd. do initrd/initramfs, není k tomu žádný důvod.

    Vubec nechapu pointu.

    >> Ano, zatímco initramfs mi to zůstane nejen na jedno místě, ale ještě všecho pohromadě v jednom souboru. Fakt nevidím, v čem je ta výhoda /.

    Jakto na jednom miste? Ty veci, ktery mas v initrd prece ODNEKUD kopirujes, ne? Takze je mas NEKDE a potom jeste v initrd. A tyhle dve veci musis odrzovat synchronizovany, misto, abys rovnou pouzil pri bootu to NEKDE a zadnou synchronizaci nepotreboval.

    Opet to chce asi priklad z FreeBSD (fakt nejde o zadna dogmata, je to priklad): prijde ti slozity bootovani z NFS+kerberos? A prislo by ti srovnatelne slozity bootovani ze ZFS (obcas se rika, ze ZFS je OS v OS :)? Tak na to jsou ve FreeBSD potreba dva soubory: pmbr (512B) a gtpzfsboot (39KB). Tyhle dva soubory musis odnekud natahnout (typicky zacatek partition + jedna dedikovana partition pro gptzfsboot) a potom uz jedes vsechno primo ze ZFS.

    Totez s diskless bootem: potrebujes jeden soubor pxeboot (262KB), kterej umi nacist konfiguraci z DHCP a / namountovat z NFS. Nic uz pak neni potreba premountaovavat, jede se rovnou z toho, co je namountovany.

    Magie? Nemyslim si. Proste adekvatni reseni situace bez berlicek. A jelikoz tam zadna berlicka neni, neni potreba ji resit a nic ti ji nemuze podrazit. Zadne "aha, nebootuje to, protoze jsem do initrd zapomnel dat X" se nekona. System nabootuje i v ruznych nestandardnich situacich jako treba kdyz ho preneses na jinej HW apod.

    > Hmmm... napsat update-initramfs -u v Debianu nebo genkernel --install initramfs v Gentoo, to je fakt děsná práce. :-)

    A vnimas nejaky rozdil mezi "spustit utilitu" a "naprogramovat a udrzovat utilitu"?

  • 21. 7. 2012 15:16

    Lol Phirae (neregistrovaný)

    A tyhle dve veci musis odrzovat synchronizovany, misto, abys rovnou pouzil pri bootu to NEKDE a zadnou synchronizaci nepotreboval.

    Ne, nemusím. Naopak např. Gentoo to tak vůbec nedělá. V initramfs se defaultně používají otestované stabilní verze bez ohledu na to, co je v systému. (Samozřejmě je to konfigurovatelné, pokud chceš verzi jinou/aktuální.) V Debianu se používá to, co je aktuálně v systému s tím, že přes hook se automaticky aktualizuje i initramfs. Práce pro uživatele naprosto nulová.

  • 21. 7. 2012 15:19

    M. Prýmek

    No tak pokud Gentoo nepouziva aktualni verze, tak to je urcite krok spravnym smerem, to jsem nevedel. Sice pak moc nechapu duvod (aktualni verze modulu jadra tam stejne nemam), ale urcite je to uspech, ze misto BSDackyho jednoho 40K souboru zvladlo Gentoo to samy udelat pomoci nekolikamegovyho image ;)

  • 21. 7. 2012 15:26

    Lol Phirae (neregistrovaný)

    Nerozumíme si. Jádro je v initramfs samozřejmě vždy to aktuální, které bootuju :-) Mluvím o nástrojích v tom initramfs. Příklad.

  • 21. 7. 2012 15:32

    M. Prýmek

    Aha, ja jsem myslel, ze v tom initrd ma treba nejakou univerzalni verzi driveru filesystemu, kterou pouzije jenom na to, aby namountovalo root.

    No tak pokud je to takhle, tak plati, co jsem rikal: musi se slozite zjistovat, co se ma do image zkopirovat, image se musi vytvorit, musi existovat navic dalsi init skripty atd. Proste uplne zbytecna namaha s nulovym efektem. Spis bych rekl zapornym, protoze:
    1. kdyz v imagi neco nemam, tak nenabootuju (na jinym hw apod.)
    2. stejny system muzu jenom s obtizema nabootovat jinym zpusobem (napr. normalne bootuju z nfs, ale ted potrebuju TENTYZ system nabootovat z disku)

  • 21. 7. 2012 15:46

    Lol Phirae (neregistrovaný)

    Opravdu nerozumím.
    1/ Pokud si kompilujete "optimalizované" (minimální) jádro pouze pro vlastní stroj, tak samozřejmě nebude na jiném HW bootovat, pokud ten ovladač nemá, to snad dá rozum. To vůbec nesouvisí s initramfs. Pokud máte jádro univerzální, tak nabootuje všude.
    2/ Uhm? Změnit v bootloaderu parametry pro jádro třeba z root=/dev/nfs nfsroot=aaa.bbb­.ccc.ddd:/some/path na root=/dev/sda1 je práce na několik sekund.

  • 21. 7. 2012 15:57

    M. Prýmek

    1) nemluvim o zadnem optimalizovanem jadru. Pokud pouzivam initrd, tak tam typicky nekopiruju vsechny moduly, ale jenom nektere. Musim teda a] nejak urcit, ktere to jsou b] na systemu, kde by byly potreba jine, mi ten system nenabootuje.

    Oproti tomu kdyz bootuju rovnou z /, mam k dispozici vsechny moduly.

    2) A jste si jisty, ze vetsine distribuci staci opravdu jenom zmenit tenhle parametr a bezproblemu nabootuji? Ja si tim teda jisty nejsem. Viz napr. polozky MODULES a HOOKS v /etc/mkinitcpi­o.conf...

    Nerikam, ze to nejde, nemam to vyzkousene. Jenom rikam, ze bych si opravdu nebyl predem jisty, ze to pujde. Napriklad bych si nelajzl to zkouset na masine nekde na druhem konci republiky, ke ktere nemam jiny pristup. S FreeBSD bych se neceho podobneho tolik nebal prave proto, ze boot je jednodussi a timpadem i mnozina pruseru, ke kterym muze dojit, je podstatne mensi.

  • 21. 7. 2012 19:33

    Pavel Šimerda

    To je velice jednoduché.

    „1. zjistuju, co vsechno musim dat do initrd, abych mohl nabootovat“

    Toto odhaduje program, který ti vytvoří initrd a který jde případně dokonfigurovat.

    „2. zjistuju, co vsechno musim dat do /, abych mohl nabootovat“

    Toto v současných systémech určuje distributor, který tvoří balíčky. Ruční přesouvání souborů ti způsobí problémy s updatem.

    „Mit tu samou vec na dvou mistech je vzdycky nejhorsi mozny reseni a melo by se imho volit jenom v pripade, kdy fakt neni zbyti, protoze s tim jsou vzdycky problemy.“

    Pokud máš lepší nápad, který nebude způsobovat regrese oproti metodě s initrd, tak sem s ním. Může to být feature (přes)příští Fedory a pak to zase proplout do ostatních systémů :). Nebo naopak.

  • 21. 7. 2012 20:04

    M. Prýmek

    Jenže je tam jeden drobný rozdíl, který nebereš v úvahu: initrd musím udržovat co nejmenší, protože jinak by se mi loadoval hodinu, zatímco v / se nemusím nijak žinýrovat. Do nějakých těch třeba půl giga se mi vejde fakt všechno, co 99.9999% systémů k nabootování potřebuje. Přesněji řečeno všechno, co potřebuji až do fáze namountování /usr.

    A těch 0.0001 procent adminů podivných systémů, si holt bude muset poradit nějak jinak. Tak to holt je - a je tomu tak i s initrd, které taky nemůže myslet na všechno.

    Prostě čím složitější způsob bootu a mountování /usr, tím obludnější initrd. Limitně až do velikosti normálního /.

    > Pokud máš lepší nápad, který nebude způsobovat regrese oproti metodě s initrd, tak sem s ním.

    Nápad na co? Jak udržet bloatware v chodu? To s chutí nechám autorům toho bloatwaru.

    Nebo jaký konkrétní problém tahle šaráda (UsrMove) řeší, kromě toho, že má Linux rozbité bootování bez /usr? A co konkrétně řeší initrd, co by nešlo udělat jinak?

  • 21. 7. 2012 21:43

    Lol Phirae (neregistrovaný)

    kromě toho, že má Linux rozbité bootování bez /usr

    To je snad sám o sobě zatraceně dobrý důvod, ne?

    A co konkrétně řeší initrd, co by nešlo udělat jinak?

    Jinak to jde udělat taky, akorát osobně nemám žádný důvod, proč bych to dělal. Jedinci s fóbií z initramfs mohou v jednoduchých případech (pokud vám jde opravdu jen o oddělený /usr oddíl) použít např. busybox. Pokud máte / na LVM2 nebo šifrovaný, tak to samozřejmě bez initramfs nepůjde a nešlo ani doteď.

  • 21. 7. 2012 21:50

    M. Prýmek

    > To je snad sám o sobě zatraceně dobrý důvod, ne?

    To je zatraceně dobrý důvod to **opravit** a ne vymýšlet berličky, aby se to opravovat nemuselo.

    > Pokud máte / na LVM2 nebo šifrovaný, tak to samozřejmě bez initramfs nepůjde a nešlo ani doteď.

    Asi je čas toho nechat, protože se motáme v kruhu. Napsal jsem snad už dost jasně, že FreeBSD umí bootovat ze ZFS rootu a žádné initrd k tomu nepotřebuje.

    Jaký je principielní rozdíl mezi LVM2 a ZFS z hlediska bootování?

  • 21. 7. 2012 22:08

    Lol Phirae (neregistrovaný)

    To je zatraceně dobrý důvod to **opravit** a ne vymýšlet berličky, aby se to opravovat nemuselo.

    Ano, opraveno to bude, až se to přesune do /usr. Vymýšlení berliček typu musíme přesunout do / tohle, tohle, tamto a ještě támdlencto, jo a estě onohle, toho už mají maintaineři evidentně plné zuby. Nedává to vůbec žádný smysl.

    P.S. ZFS nepoužívám. Jestli je vám tak nepochopitelné, že k tomu, abyste zprovoznil LVM2, potřebujete userspace utilitu, tak už fakt nevím, jak to vysvětlit.

  • 21. 7. 2012 22:24

    M. Prýmek

    >> Ano, opraveno to bude, až se to přesune do /usr.

    No asi máme trochu jinou představu o pojmu "opravit"...

    >> Vymýšlení berliček typu musíme přesunout do / tohle, tohle, tamto a ještě támdlencto, jo a estě onohle, toho už mají maintaineři evidentně plné zuby.

    Co to je za ptákovinu? V / jsou samozřejmě všechny věci, potřebné k dalším fázím bootu STANDARDNĚ.

    Imho normální boot prostě vypadá takhle:
    1. zavaděč, který umí pracovat s médiem M1 (disk, nfs, ...) načíst filesystém FS1 (ext, zfs, lvm pičfs)
    2. skrz médium M1 se z FS1 načte kernel a provede základní inicializace
    3. vše ostatní (/home, /var, /usr, ...) je na médiu M2 s FS2 a jelikož už mám kernel a všechny moduly, bez problému si to namountuju a nastartuju libovolně bloatwarové služby z /usr

    Nevidím, žádnou tak zásadní výhodu, která by vyvážila kopec nevýhod, když do tohodle přidám ještě stadium 1a "natáhnu z FS1 médiem M1 jakýsi rádobyroot".

    >> Jestli je vám tak nepochopitelné, že k tomu, abyste zprovoznil LVM2, potřebujete userspace utilitu, tak už fakt nevím, jak to vysvětlit.

    To s tím ale právě vůbec nesouvisí. Je nějaký důvod to nevyřešit tak, že:
    1. / je minimalistický a na nějakém rozumnějším FS, pro který existuje rozumný loader
    2. zbytek už si zprovozním jakkoli

    Jde jenom o to, jestli řešení s initrd je elegantnější než tohle. A já tvrdím, že není. A tvrdím to ze zkušenosti, protože s Linuxem se mi tisíckrát stalo "myslel jsem, že to nabootuje, ale nenabootovalo", zatímco s FreeBSD se mi stejně hodněkrát stalo "myslel jsem, že to nenabootuje, ale nabootovalo".

    Tím končím, zjevně se neshodneme a já nemám potřebu někoho přesvědčovat. Jenom jsem chtěl naznačit, že lidi, kteří znají jenom Linux mají tendenci linuxová řešení považovat za řešení sine qua non.

    HOWGH.

  • 21. 7. 2012 22:36

    Lol Phirae (neregistrovaný)

    Ano, tohle absolutně nikam nevede. Není žádná definice toho, co to je potřebné k dalším fázím bootu STANDARDNĚ.. Někdo si dá / na ext2, někdo si ho dá na LVM2, někdo si / zašifruje a klíč má na SD kartě. Jestli vaším "řešením" je "standardně" nic z toho nepodporovat, resp. znemožnit, tak tohle "řešení" si prosím nechte v BSD, nemám zájem.

    P.S. LVM2 není filesystém.

  • 21. 7. 2012 22:52

    M. Prýmek

    Ať si šifruje co chce, ať si bootuje třeba přes médium "poštovní holub", to je úplně jedno - pořád má ten samý problém: z hardwaru X dostat nějaká data a rozumět jejich struktuře. Čili tak jako tak - ať si kdo chce co chce říká, ať si mamka slzy utírá - musí mít loader, který umí s tím HW pracovat a rozumí struktuře dat na médiu, odkud tahá ten initrd image. Oproti normálnímu mountu to má AFAIK jedinou výhodu: initrd je jeden soubor, takže ho můžu tahat jednodušeji (např. prvních X bloků média) než je přímé přimountování nějakého FS ***z toho SAMÉHO média***.

    P.S. průměrně inteligentní člověk snad z výše napsaného pochopí, že pojmem "FS" v tomhle kontextu myslím "strukturu dat na mediu" a kolik je tam mezivrstev nás nezajímá. Takže že LVM není FS sice kupodivu vím, ale to je v tomhle případě irelevantní, proto jsem si to dovolil zkrátit.

  • 21. 7. 2012 23:31

    M. Prýmek

    Když mám root na LVM, tak přece taky potřebuju (nebo aspoň ještě do nedávna tomu tak bylo) mít aspoň /boot na nějaké normální ext partišně, nebo ne?

    Potom stojí za zamyšlení, proč vlastně na té partišně nemít celý (minimalistický!) root...

  • 21. 7. 2012 23:42

    Lol Phirae (neregistrovaný)

    Když mám root na LVM, tak přece taky potřebuju (nebo aspoň ještě do nedávna tomu tak bylo) mít aspoň /boot na nějaké normální ext partišně, nebo ne?

    Už ne... (Ne, že bych to doporučil)

    Potom stojí za zamyšlení, proč vlastně na té partišně nemít celý (minimalistický!) root...

    No ale vždyť ho tam máte v tom initramfs!

  • 21. 7. 2012 23:49

    M. Prýmek

    Ach jo, já už fakt končím.

    Jestli Grub umí číst data z LVM, tak LVM nemůže být důvodem, proč mít initrd.

  • 22. 7. 2012 0:02

    M. Prýmek

    Tečka na závěr :)

    Zjevně se najdou i lidi, kteří pochopili:

    Sometimes Linus (Greg KH, ...) like to say how great the haphazard/random development model is, and how every architecture mistake can be quickly and easily fixed inside kernel tree. The whole '/lib/modules' idea is a mistake, I should be able to place kernel and it's modules in one partition and rootfs in another, and vary the kernel without the slightest change to rootfs. It does not work now because before we can mount rootfs (in order to see /lib/modules), many modules need to load. Yes, with messy initrd we can do it. But this 'lib/modules' idea was a mistake.

    http://kerneltrap.org/node/7874

    Good point! Nebylo by od věci použít třeba /boot/kernel/* :)))

  • 22. 7. 2012 2:17

    Pavel Šimerda

    „Jestli Grub umí číst data z LVM, tak LVM nemůže být důvodem, proč mít initrd.“

    Přesně tak, Grub 2 je schopný přečíst LVM a tudíž je schopný přečíst kernel, initrd a cokoli dalšího. Potřeba/nepotřeba initrd s grubem nesouvisí.

  • 22. 7. 2012 2:13

    Pavel Šimerda

    „P.S. ZFS nepoužívám. Jestli je vám tak nepochopitelné, že k tomu, abyste zprovoznil LVM2, potřebujete userspace utilitu, tak už fakt nevím, jak to vysvětlit.“

    To je ostatně nepochopitelné pro mě. Teda rozumím tomu, že LVM vyžaduje userspace utilitu, jen nerozumím tomu, proč.

  • 22. 7. 2012 2:11

    Pavel Šimerda

    „Jenže je tam jeden drobný rozdíl, který nebereš v úvahu“

    Bacha, tys dával najevo, že nevidíš rozdíl vůbec a že bys byl rád, aby ti byl vysvětlen. Nikde jsem netvrdil, že pokrývám rozdíly všechny.

    „Nebo jaký konkrétní problém tahle šaráda (UsrMove) řeší, kromě toho, že má Linux rozbité bootování bez /usr?“

    Tenhle přesun žádný zásadní problém neřeší, to jsem považoval za všeobecnou znalost.

    „A co konkrétně řeší initrd, co by nešlo udělat jinak?“

    Umožňuje s relativně malým kernelem bootovat na libovolném stroji, tedy nemusí být kernel zkompilovaný až u uživatele na míru danému hardware a zároveň nemusí mít zakompilované všechny možné ovladače. Umožňuje bootování z různých partition, které kernel sám o sobě neumí použít jako rootfs ani následně připojit, jako třeba LVM a šifrované oddíly. Při troše snahy umí initrd
    bootovat komplet ze sítě.

  • 22. 7. 2012 9:37

    M. Prýmek

    >> Bacha, tys dával najevo, že nevidíš rozdíl vůbec a že bys byl rád, aby ti byl vysvětlen.

    Pro pochopení byla klíčová věta "ale opravdu nechapu logiku uvazovani "nechceme to davat do /, tak to kopirujeme do initrd"."

    To, že initrd se vytváří automaticky a / vytváří autoři OS není argument, protože výběr programů do / dělám jednou, ale initrd musím vytvářet pro každý stroj a po každém updatu.

    >> Tenhle přesun žádný zásadní problém neřeší, to jsem považoval za všeobecnou znalost.

    Fedoří dokument vypočítává několik problémů, které to má řešit - a všechny považuju za pochybné (líbil se mi jeden komentář kohosi "dělá to na mě dojem, že někdo tohle chce udělat a seč může pro to hledá argumenty libovolné kvality").

    ==

    Ad "co řeší initrd": co píšeš, přece není doslovně pravda. Nikdy nemůžu bootovat z média, které neumím použít, to dá rozum. Vždycky musím od někud načíst kernel a initrd. A to je právě ta klíčová otázka: proč na tom místě (který musí loader umět používat!) místo kernel+initrd nemám prostě normální partišnu - buď jenom s /boot, nebo rovnou s celým / ?

    Není přece např. pravda, že initrd je potřeba pro bootování šifrovaného systému - vždycky musím mít nějaké nešifrované úložiště, ze kterého natáhnu kernel+initrd. A to úložiště musí být dostatečně jednoduché (nešifrovaná oblast s jednoduchým FS), aby ho uměl použít loader.

    Initrd prostě **nutné** není. Je to jenom jeden ze způsobů řešení bootování - a já si myslím, že dost nemotorný a čím dál překombinovanější. Z mýho pohledu jeho největší nevýhoda je, že si na něj lidi zvyknout a začnou ho považovat za nutnost/standard (to se píše i v tom dokumentu o UsrMove: "budete sice muset použít initrd, ale to už stejně používáte tak jako tak"). To není dobrá situace a dost to zavání windowsismem.

  • 22. 7. 2012 13:06

    Pavel Šimerda

    „Pro pochopení byla klíčová věta "ale opravdu nechapu logiku uvazovani "nechceme to davat do /, tak to kopirujeme do initrd"."“

    Takhle se initrd ani nepoužívá.

    „Fedoří dokument vypočítává několik problémů, které to má řešit“

    Přesně tak. A žádný z nich nepovažuju za *zásadní* problém.

    „dělá to na mě dojem, že někdo tohle chce udělat a seč může pro to hledá argumenty libovolné kvality“

    Pro každou změnu se hledají pro a proti.

    „A to je právě ta klíčová otázka: proč na tom místě (který musí loader umět používat!) místo kernel+initrd nemám prostě normální partišnu - buď jenom s /boot, nebo rovnou s celým / ?“

    K čemu by to bylo? Bootloader by mohl přistupovat ke kernelovým modulům, jenže je k ničemu nepotřebuje a neumí je používat. Kernel by k nim přistupovat nemohl, takže je nemusíš přesouvat, ale můžeš je rovnou smazat.

    „Není přece např. pravda, že initrd je potřeba pro bootování šifrovaného systému“

    Momentálně pokud vím, tak kernel nemá v sobě žádné UI (když nepočítáš sysrq), takže pokud je šifrovaný filesystém chráněný heslem, je potřeba před jeho připojením mít k dispozici UI, které řeší userspace, který se obvykle přibaluje ve formě initrd.

    „vždycky musím mít nějaké nešifrované úložiště, ze kterého natáhnu kernel+initrd“

    To obvykle musíš.

    „Initrd prostě **nutné** není.“

    Ani jsem nikdy nikde netvrdil, že je.

    „To není dobrá situace a dost to zavání windowsismem.“

    Argumentum ad fenestram. Jak krásné.

  • 22. 7. 2012 14:54

    M. Prýmek

    Zkusím to říct ještě jinak: zkus si představit, že jsi nikdy žádné initrd neviděl.

    Máš zadání: chci mít důležité části systému na RAID26, který je děsně složitý.

    Jak bys to vyřešil?

    Řešení 1:
    Máš separátní partišnu s nějakým rozumným FS (třeba ext2), kam dáš /boot (kam logicky dáš kernel i se všemi moduly a nebudeš ho rafinovaně dávat půlku do /boot a zbytek do /lib/modules). Pak boot bude vypadat takhle: bootloader umí číst ext2, natáhne a spustí kernel, který si načte všechny potřebný moduly pro RAID26 a z něho spustí /sbin/init. Pokud je potřeba v téhle fázi něco v userspace, pak to logicky patří do /boot a nikam jinam. Zvolený FS musí umět číst i loader i kernel, ale to nevadí, protože je to FS jednoduchý a ve všech scénářích stejný.

    Řešení 2:
    Vyrobíš BloatedLoader(R) (prakticky vzato druhý speciální kernel), který umí číst RAID26. Pomocí něj natáhneš z RAID26 kernel a initrd. A budeš prohlašovat, že to je boží řešení, protože můžeš bootovat, z čeho chceš, a že pro bootování z RAID26 je to nutnost, protože RAID26 je taaaak složitý a vyžaduje user-space utility.

    Chytře zamlčíš nedostatky:
    1. kód pro čtení RAID26 musíš mít jednak v loaderu, jednak v kernelu (de facto totiž udržuješ dva různé kernely se stejnou schopností (číst RAID26), ale úplně jiným kódem)

    2. musíš udržovat ekosystém pro srpávnou volbu toho, co je v initrd potřeba, a pro jeho vygenerování

    3. musíš myslet na to, abys initrd vygeneroval vždycky, kdy je to potřeba

    4. když disk z počítače vyndáš a dáš jinam, tak nenabootuje, protože v initrd není to, co tam mít potřebuješ

    5. jo a jen tak mimochodem - dost pravděpodobně pořád budeš potřebovat nějakou formu té spešl partišny z Řešení 1, protože kód BloatedLoaderu je tak velký (nezapomeňme, že je to druhý kernel), že se ti do miniaturního bootsektoru nevejde a odněkud ho načíst potřebuješ

    No takže si zvolíš Řešení 2, budeš se tvářit, že je to jediný možný řešení, protože máš přece RAID26! a když ti někdo řekne, že systém X umí taky bootovat z RAID26 a initrd k tomu nepotřebuje, opáčíš mu, že tě jeho X-ová dogmata nezajímají...

  • 22. 7. 2012 14:58

    M. Prýmek

    Jo a abych nezapomněl: Řešení 2 má ještě tu báječnou výhodu, že initrd musí kompletně celý překopírovat do paměti. Nejenom, že to bude nějakou dobu trvat, ale hlavně to bude potřebovat větší množství paměti na ramdisk.

  • 22. 7. 2012 17:29

    Lol Phirae (neregistrovaný)

    bootloader umí číst ext2, natáhne a spustí kernel, který si načte všechny potřebný moduly pro RAID26 a z něho spustí /sbin/init. Pokud je potřeba v téhle fázi něco v userspace, pak to logicky patří do /boot a nikam jinam.

    Gratuluji, právě jste vytvořil duplicitní / s tím, že to má ten ohromný "benefit", že to není v ono hrozném fujtajbl initramfs, kterému nerozumíte, ale v /boot. To jsme to ale vyřešili. Ufff.

  • 22. 7. 2012 17:54

    M. Prýmek

    Jaký duplicitní / ?

    Prostě věci, které jsou potřeba k bootu*, jsou v /boot a NIKDE JINDE. Od toho ten adresář (na rozumně čistém systému) je.

    * to za normálních okolností znamená jenom kernel a jeho moduly, případně ještě nějaký last-stage zavaděč.

    Jasně, pokud potřebuju k namountování / miliony user-space utilit, tak by tohle schema nebylo dobrý, ale pak je otázka, jestli vůbec fs, který potřebuje user-space utility (k namountování!) je rozumně navržený.

  • 22. 7. 2012 17:55

    M. Prýmek

    Předem pro hnidopichy: když tady píšu "k bootu", tak ti myslím "k bootu až do fáze spuštění /sbin/init, tj. k natažení jádra, modulů a přimountování /"

  • 22. 7. 2012 18:03

    Lol Phirae (neregistrovaný)

    Jaký duplicitní / ?

    No ten, kam jste přesunul všechno nutné pro boot z toho /, protože initramfs je prostě hrozně fuj fuj blééé.

  • 22. 7. 2012 19:41

    Pavel Šimerda

    Tvůj popis řešení místo reality popisuje především tvé dojmy. Zatímco implementace RAID ti na dvou místech vadí, implementace ext2 ti na dvou místech přijde samozřejmá.

    Způsob, jakým je to řešeno v linuxu je hodně univerzální. Protože každý, kdo nasazuje či distribuuje systém založený na linuxovém jádře, má jiné potřeby. Zakázat initrd z nějakých dogmatických důvodů je nesmysl. V některých případech je to užitečná věc (i kdybych uvedl jen network boot do nějaké aplikace přímo v initrd, třeba instalátoru).

    Linux přistupuje k diskovému prostoru výhradně pomocí driverů. Tudíž je nutné drivery buď zakompilovat do kernelu, nebo mu je předat v archivu.

    Alternativou by bylo tuhle vlastnost Linuxu změnit a umožnit mu používat nějaké rozhraní BIOSu či dalších bootloaderů pro přístup k disku. Stále bys ale musel zakompilovávat všechny FS, které očekáváš, že budou na disku použity.

    Univerzalita vylučuje, že by ten FS musel být za všech okolností ext2. Takže bootloader tak jako tak bude muset obsahovat podporu použitého FS.

    Je zajímavé s jakou samozřejmostí připouštíš duplikaci implementace FS a jak se stejnou samozřejmostí shazuješ duplikaci implementace RAID. Je z toho jasně vidět, že celý tvůj myšlenkový pochod je už ovládnutý touhou podpořit předem danou pravdu a ne se dobrat nějakého rozumného výsledku. Ale máš možnost to změnit.

    Takže řešení 1 stojí přesně na tom samém, co kritizuješ na řešení 2.

  • 22. 7. 2012 19:58

    M. Prýmek

    > Tvůj popis řešení místo reality popisuje především tvé dojmy.

    Jestli myslíš Řešení 1, tak to je realita, jak se bootuje v BSD. A afaik i v Solarisu do verze 10. Takže tuhle poznámku nechápu.

    > Zakázat initrd z nějakých dogmatických důvodů je nesmysl. V některých případech je to užitečná věc

    Souhlasím. Ale těch případů, kdy je to opravdu potřeba, je minimum. Neříkám, že initrd je potřeba dogmaticky zakázat, ale že ve většině případů není důvod ho dogmaticky nasazovat.

    > Univerzalita vylučuje, že by ten FS musel být za všech okolností ext2.

    Ještě jednou a už fakt naposledy: kernel a initrd se musí natahovat z úložiště, se kterým musí umět pracovat loader. Tu "univezalitu" můžeš za takové podmínky dosáhnout jednou ze dvou možností:
    1. loader umí číst všechny možné filesystémy
    2. loader jich umí jenom pár a kernel a initrd musí být uložen na jednom z nich

    Grub například umí tyhle: FAT, FFS, ext2 + čtení konkrétních bloků z disku.

    Sorry, ale fakt nikde nevidím univerzalitu, vidím 3 podporované FS (+RAW).

    Říkám velmi jednoduchou věc: místo toho, abych na tyto PODPOROVANÉ FS dal kernel+initrd, raději bych z nich rovnou namountoval /boot nebo /. A tímpádem se zbavil initrd, přičemž ona UNIVERZALITA NÁSLEDUJÍCÍCH STÁDIÍ BOOTU ZŮSTANE ÚPLNĚ STEJNÁ. Pokud mi nerozumíš v tom, že ta univerzalita je stejná, potom to utněme, protože líp svůj názor už vysvětlit neumím.

  • 22. 7. 2012 20:08

    Lol Phirae (neregistrovaný)

    Grub například umí tyhle: FAT, FFS, ext2 + čtení konkrétních bloků z disku.

    To bude asi nějaký speciální BSD grub. Pro normální grub doporučuju přečíst dokumentaci.

    raději bych z nich rovnou namountoval /boot nebo /.

    Dík, já bych zase raději nic podobného nedělal, protože mám jeden /boot pro několik distribucí, tudíž myšlenka mountovat z bootloaderu / je úplně nepoužitelná.

  • 22. 7. 2012 20:09

    Pavel Šimerda

    „Takže tuhle poznámku nechápu.“

    To jsem si všiml. Takže jinak. Tvůj způsob popisu odráží dojmy, ne skutečné vlastnosti. Zatímco jednou je duplicita implementace diskového formátu samozřejmostí, podruhé je neodpustitelnou chybou.

    Tenhle přístup je značně dogmatický a v podstatě nemá smysl, abych s tebou jakkoli polemizoval, dokud nebudeš mít chuť hodnotit obě možnosti stejně kriticky (a beze strachu, že bys došel k jinému závěru než dosud).

    „ale že ve většině případů není důvod ho dogmaticky nasazovat.“

    Tedy bys jeho konfiguraci odstranil z instalátorů distribucí? Může být, ale je potřeba posoudit důsledky na celý ekosystém.

    „Ještě jednou a už fakt naposledy“

    Já budu jenom rád, když to pochopíš :).

    „Sorry, ale fakt nikde nevidím univerzalitu, vidím 3 podporované FS (+RAW).“

    Pak nezbývá, než tě odkázat do dokumentace současné verze GRUBu.

    http://www.gnu.org/software/grub/manual/html_node/Features.html

    „Říkám velmi jednoduchou věc: místo toho, abych na tyto PODPOROVANÉ FS dal kernel+initrd, raději bych z nich rovnou namountoval /boot nebo /.“

    Nevím, proč mě nutíš to psát znovu, ale dobře. Když Linux startuje, nemá k dispozici žádné otevřené filesystémy.

    Mountovat / v bootloaderu je nesmysl, protože / si mountuje kernel. Naopak /boot se za běhu systému vůbec nepoužívá, nemusí být vůbec mountovaný, a
    dávat do něj cokoli, co může systém za běhu potřebovat je z tohoto pohledu pitomost, protože dosud tam nic takového není.

  • 22. 7. 2012 20:36

    M. Prýmek

    >> Tvůj způsob popisu odráží dojmy, ne skutečné vlastnosti.

    Vlastnosti čeho?

    >> Zatímco jednou je duplicita implementace diskového formátu samozřejmostí, podruhé je neodpustitelnou chybou.

    Není žádnou chybou duplikovat jeden FS (viz níž), ale je imho úplně zbytečný duplikovat kód dvaceti filesystémů.

    >> Pak nezbývá, než tě odkázat do dokumentace současné verze GRUBu.

    Omlouvám se, google má na prvním místě manuál pro verzi 0.4, to jsem si nevšiml. No takže Grub jde cestou od bodu 1 k bodu 2 v předchozím příspěvku. To není žádná výhra, protože problémem dvojky je to duplikování driverů.

    >> Nevím, proč mě nutíš to psát znovu, ale dobře.

    Nenutím, pouze asi píšu nesrozumitelně, nebo v tom hledáš něco složitějšího, než tam je...

    Pokud budu mít bootovací partišnu s jednoduchým FS (např ext2), tak z ní loader natáhne kernel. KERNEL (!!!!!) si tu partišnu namountuje (driver toho jednoduchýho fs má natvrdo), natáhne z ní libovolný potřebný moduly a poté už bootuje stejně jako s initrd.

    Ta deklarovaná univerzálnost je ÚPLNĚ STEJNÁ, prostě místo initrd je bootovací partišna. Výhoda bootovací partišny je jasná:
    1. neduplikují se drivery. Loader umí jenom (např.) ext2. Všechno ostatní umí kernel.
    2. nic se nerozbaluje do ramdisku -> rychlejší boot, míň paměti
    3. není potřeba vytvářet žádný image s jakýmikoli duplikovanými soubory. To, co se namountuje, tam už zůstane namountovaný až do vypnutí počítače. (kromě speciálních případů, kdy je potřeba něco přemountovat, ale to jsou okrajový specialitky)

    Nevýhody jsou taky jasný:
    1. / musí být na jednoduchým FS, kterému jednoduchý loader rozumí
    2. tímpádem se v / musí udržovat pořádek a nesmí se zasírat blbostma
    3. je potřeba jedna partišna navíc (pokud mám GPT nebo BSD partišny, žádný problém to není)
    4. pokud z nějakýho důvodu potřebuju v / držet nějaký data, vyžadující speciální zacházení (např. šifrovaný /etc), musí se při nejbližší příležitosti tenhle adresář přemountovat z jinýho úložiště.

    4 vypadá hrozivě, ale není to vůbec žádnej problém, protože přemountovat to můžu hned - klidně jako hnedka první věc po spuštění /sbin/init


    Tak pokud si už rozumíme a chceš pokračovat v diskusi, omezme se prosím na téma "proč je bootovací partišna špatná a v čem je initrd "partišna" lepší" a vyhněme se prosím větám typu "popisuješ dojmy".

    Pokud si pořád nerozumíme, navrhuju diskusi ukončit.

  • 22. 7. 2012 20:47

    Lol Phirae (neregistrovaný)

    Pokud budu mít bootovací partišnu s jednoduchým FS (např ext2), tak z ní loader natáhne kernel. KERNEL (!!!!!) si tu partišnu namountuje (driver toho jednoduchýho fs má natvrdo), natáhne z ní libovolný potřebný moduly a poté už bootuje stejně jako s initrd.

    Hůůůůůůů, to jsme se ale posunuli, že? Jak se to liší od stávajícího stavu?

    P.S. Bootloader nepotřebujete žádný, pokud máte UEFI. Opět to neřeší nic ve vztahu k danému problému. Bootloader si sice natáhne kernel z FAT32, ale ten sám o sobě např. z LVM2 nebo z / šifrovaného přes LUKS nic nepřečte.

  • 22. 7. 2012 20:57

    Lol Phirae (neregistrovaný)

    Znova opakuju, že s UEFI nepotřebujete žádný další loader pro načtení kernelu - "problém" duplikace driverů neexistuje. Další dva body - stále z toho LVM2 nebo šifrovaného / nejste schopen nabootovat. Tak vážně nevím, co jste vyřešil nebo vylepšil.

  • 22. 7. 2012 21:08

    M. Prýmek

    > Znova opakuju, že s UEFI nepotřebujete žádný další loader pro načtení kernelu

    Souhlasím. UEFI odstraňuje problém duplikace kódu. Ostatní platí dál.

    > stále z toho LVM2 nebo šifrovaného / nejste schopen nabootovat.

    Cituju z předchozího příspěvku: "Pokud budu mít bootovací partišnu s jednoduchým FS (např ext2), tak z ní loader natáhne kernel. KERNEL (!!!!!) si tu partišnu namountuje"

    Co přesně teda má znamenat věta "z šifrovaného / nejste schopen nabootovat."? Nerozumím jí. Co přesně nejsem schopen udělat v situaci namountovaného / (tedy v situaci kvalitativně lepší než s namountovaným initrd)?

  • 22. 7. 2012 21:12

    Lol Phirae (neregistrovaný)

    Situace namountovaného / vůbec nenastane, což jsem snad napsal již dostatečně jasně a několikrát. Kernel si bez initramfs žádný šifrovaný / nenamountuje. UEFI loader už kernel natáhnul, leč je vám to prdlajz platné.

  • 22. 7. 2012 21:16

    M. Prýmek

    >> Kernel si bez initramfs žádný šifrovaný / nenamountuje.

    Snažím se vysvětlit alternativní řešení bootování bez potřeby initrd. Toto řešení jsem popsal a žádný "šifrovaný /" tam není. Nevím, o čem tedy diskutujete, ale zjevně ne o tom, co jsem napsal.

  • 22. 7. 2012 21:19

    Lol Phirae (neregistrovaný)

    Toto řešení jsem popsal a žádný "šifrovaný /" tam není.

    Bezva, ale já ho tady mám a vaše "alternativní" řešení je mi na prdlajz. Na vámi popsanou situaci žádný initrd nepotřebuju. Na šifrovaný / ho potřebuju, na LVM2 ho taky potřebuju. Vytváříte alternativní řešení neexistujícího problému.

  • 22. 7. 2012 21:31

    M. Prýmek

    No to je bezvadný. Místo nešifrovaného / máte nešifrované initrd.

    Tím bych se rád vrátil k tomu, co jsem taky už psal: "omezme se prosím na téma "proč je bootovací partišna špatná a v čem je initrd "partišna" lepší"".

    V čem je tedy nešifrované initrd lepší než nešifrované (opět: minimalistické!) / ?

    Jediná nevýhoda je snad v tom, že vše, co chci šifrovat (etc, home, usr, var) musím mít umístěné na jiném svazku než je /. Pokud máte dojem, že to je větší nevýhoda než jsou popsané nevýhody initrd, potom diskuse skončila, protože na to prostě máme jiný názor.

  • 22. 7. 2012 21:49

    Pavel Šimerda

    „No to je bezvadný. Místo nešifrovaného / máte nešifrované initrd.“

    Což je samo o sobě o mnoho lepší situace.

    „V čem je tedy nešifrované initrd lepší než nešifrované (opět: minimalistické!) / ?“

    Obsahuje jen to nejnutnější, takže je relativně malý, dá se zkomprimovat a je neměnný (obvykle se generuje až při update kernelu). Tudíž má podobné vlastnosti jako kernel samotný a nepředstavuje tak prakticky žádnou další přítěž.

    Malý neměnný kernel a malý neměnný initrd se pak dají zabezpečovat různě, od externího média, přes digitální podpis, až po chráněné interní úložiště. Možná vymyslíš pár dalších věcí.

    „Jediná nevýhoda je snad v tom, že vše, co chci šifrovat (etc, home, usr, var) musím mít umístěné na jiném svazku než je /.“

    Což je taky dost nepříjemná vlastnost.

    „Pokud máte dojem, že to je větší nevýhoda než jsou popsané nevýhody initrd“

    Jaké popsané nevýhody? Zatím vím o jedné jediné skutečné, že se initrd musí vůbec vytvořit. Pak o nepatrném zpoždění při bootu. A pak ještě domnělá výhoda v úspoře paměti, která je ale mylná, protože paměť naopak ušetří initrd.

    „potom diskuse skončila, protože na to prostě máme jiný názor.“

    Jedna věc je mít jiné potřeby, druhá věc je mít odlišný a dobře podložený názor, ale tohle bych viděl ještě na tu třetí možnost.

  • 22. 7. 2012 22:02

    M. Prýmek

    > Což je samo o sobě o mnoho lepší situace.

    V čem přesně? Opět opakuji: MINIMALISTICKÝ /. Čili vše hodné šifrování je někde jinde.

    > Obsahuje jen to nejnutnější, takže je relativně malý, dá se zkomprimovat a je neměnný

    Minimalistický / je neměnný zhruba stejně jako initrd. Proč jsou ostatní věci výhoda, tomu nerozumím.

    > Což je taky dost nepříjemná vlastnost.

    To je otázka názoru. home, usr, tmp ani var podle mě tak jako tak na / nemají co dělat. Problém je jenom to etc. Když chci šifrovat, budu holt mít asi tak jeden soubor duplikovaný. To je pořád imho menší daň než celá infrastruktura kolem initrd.

    > Jaké popsané nevýhody? Zatím vím o jedné jediné skutečné, že se initrd musí vůbec vytvořit. Pak o nepatrném zpoždění při bootu. A pak ještě domnělá výhoda v úspoře paměti, která je ale mylná, protože paměť naopak ušetří initrd.

    "Vůbec vytvořit" znamená udržovat nástroje k jeho vytvoření a udržovat jeho konfiguraci. Paměť se uvolní, to je pravda. Na normálním počítači nemá smysl řešit, na embedded může být problém.

    > ale tohle bych viděl ještě na tu třetí možnost

    Samozřejmě můžeš mít názor jakej chceš, já jsem rád, že jsme se teď konečně dostali k diskusi o důvodech a ne o dojmech, takže bych byl rád, kdybysme se zdrželi invektiv, je-li to možný.

  • 22. 7. 2012 22:19

    Pavel Šimerda

    „To je otázka názoru. home, usr, tmp ani var podle mě tak jako tak na / nemají co dělat.“

    Tento názor nesdílím a nevidím jediný důvod k tomu, aby to obecně platilo. V konkrétních případech vyčlením samostatné FS na to, co je pro mě zrovna praktické oddělit.

    „Když chci šifrovat, budu holt mít asi tak jeden soubor duplikovaný.“

    To o tom jednom souboru je jen zbožné přání.

    „"Vůbec vytvořit" znamená udržovat nástroje k jeho vytvoření a udržovat jeho konfiguraci.“

    Většina z toho se řeší stejně kvůli těm výjimečným případům, kde to bez nějaké formy initrd prakticky nejde (síťové instalace apod). Konfigurace v běžných případech je zcela automatická.

    „na embedded může být problém.“

    Na embedded lze obejít tím, že se initrd nepoužije a místo toho se kompiluje kernel na míru konkrétnímu modelu. Je to velmi oblíbená metoda.

    „takže bych byl rád, kdybysme se zdrželi invektiv, je-li to možný.“

    Nemám ve zvyku používat invektivy, kde to situace nevyžaduje, a ani netuším, proč bychom je měli používat tady.

  • 22. 7. 2012 22:36

    M. Prýmek

    > Tento názor nesdílím a nevidím jediný důvod k tomu, aby to obecně platilo.

    Ani já ne. Taky jsem napsal, že _podle mě_ tam nemají co dělat. Čili pro mě osobně je tenhle bod nulová nevýhoda. Pro někoho jiného to nevýhoda být může. Pořád si ale myslím, že podstatně menší než nevýhody initrd.

    (pro jistotu dodávám, že tahle nevýhoda platí jenom v případě šifrování a navíc nemusí být jít o 6 separátních partišen, některý věci stačí symlinkovat - např. na FreeBSD je home často symlink do /usr/home)

    > To o tom jednom souboru je jen zbožné přání.

    Vy jste tvrdil, že by něco muselo být duplicitní. Je na vás, abyste řekl, co. Pro jistotu jenom dodám: /etc se může přemountovat jako první věc po nahrání /sbin/initu, není důvod s tím otálet dýl.

    > Většina z toho se řeší stejně kvůli těm výjimečným případům, kde to bez nějaké formy initrd prakticky nejde (síťové instalace apod).

    Mně vytýkáte, že nejsem v realitě a sdílím tady dojmy... A řeknete tohle nepotrvzené nezdůvodněné tvrzení. Opět opakuji (jako protipříklad): FreeBSD bootuje ze sítě bez potřeby initrd.

    Takže jsme pořád u toho samého: co bez initrd nejde? Nebo aspoň jde výrazně komplikovaněji? V čem je teda ta opodstatněnost initrd?

    > Na embedded lze obejít tím, že se initrd nepoužije a místo toho se kompiluje kernel na míru konkrétnímu modelu. Je to velmi oblíbená metoda.

    No ale to je samo o sobě opět komplikace: v tomhle případě musím použít úplně jiný způsob bootu, než ten tzv. "univerzální". A samozřejmě budu muset řešit zpoustu komplikací, protože initrd se stalo "standardem" i v situacích, kde vůbec není potřeba, takže se obecně počítá s tím, že ho všichni mají.

    Jako klidně si mě měj za škarohlída, ale to je přesně to, o čem jsem mluvil na začítku: nějaká věc se vyřeší berličkou a potom se musí řešit situace, kdy je berlička podražena...

    > Nemám ve zvyku používat invektivy

    Dobře. Vyjádření "tohle bude ten třetí případ" a to těch dojmech a ne-realitě, nebudu brát jako invektivy.

  • 22. 7. 2012 22:42

    Lol Phirae (neregistrovaný)

    Pro jistotu jenom dodám: /etc se může přemountovat jako první věc po nahrání /sbin/initu, není důvod s tím otálet dýl.

    Prima, takže člověku, který chce komplet zašifrovat systém, jsme to zjednodušili tím, že místo /boot a / bude mít ještě dalších asi 10 oddílů včetně separátního /etc - protože initrd je hrozně fuj. :-)))

  • 22. 7. 2012 22:48

    M. Prýmek

    S dovolením už přestávám reagovat. Opět to samé: v řešení, které jsem uvedl, není žádný separátní /boot a řeč je o tom, že separátní musí být to, co je v / a zároveň to chci šifrovat. Deseti se dopočítat neumím.

  • 22. 7. 2012 22:52

    Lol Phirae (neregistrovaný)

    separátní musí být to, co je v / a zároveň to chci šifrovat. Deseti se dopočítat neumím.

    $ ls -1 /
    bin
    boot
    dev
    etc
    home
    lib
    lost+found
    media
    mnt
    opt
    proc
    root
    run
    sbin
    selinux
    srv
    sys
    tmp
    usr
    var
  • 22. 7. 2012 23:02

    Lol Phirae (neregistrovaný)

    Zopakujme si výchozí situaci, cituji: "člověku, který chce komplet zašifrovat systém"

  • 22. 7. 2012 23:33

    M. Prýmek

    > Zopakujme si výchozí situaci, cituji: "člověku, který chce komplet zašifrovat systém"

    Vzdávám se a uznávám, že tohle jsem nedomyslel: pro člověka, který chce šifrovat prázdný adresář /dev a adresáře /bin a /lib, jejichž obsah je volně ke stažení, skutečně tahle metoda není vhodná :)

    Pro takového člověka skutečně initrd bude nejspíš lepší variantou :)

  • 22. 7. 2012 23:02

    Pavel Šimerda

    „Vy jste tvrdil, že by něco muselo být duplicitní. Je na vás, abyste řekl, co.“

    Konfigurace sysvinit nebo systemd. Dá se zkoušet udělat nějaká berlička v initu,
    ale přijde mi jednodušší takové věci vůbec nedělat. Ale dobře.

    „FreeBSD bootuje ze sítě bez potřeby initrd.“

    initrd je jen obyčejný archiv s userspace. Nepředpokládám, že by mělo nějaký smysl bootovat kernel bez userspace. Jasně, dají se používat věci jako NFS, HTTPFS, ale v současné době je mnohem jednodušší prsknout tam ten jeden archiv.

    Opravuju tedy své tvrzení, že by to bylo přes síťový filesystém komplikovanější než s archivem.

    „Takže jsme pořád u toho samého: co bez initrd nejde?“

    Až na nešikovnou formulaci se sítí jsem od začátku tvrdil, že se bez initrd obejít dá. Nevím tedy, proč bych měl dokazovat opak.

    „Nebo aspoň jde výrazně komplikovaněji? V čem je teda ta opodstatněnost initrd?“

    Zde se musím opakovat. Úplně původní význam je odlehčení generického jádra, aby nemuselo obsahovat všechny moduly potřebné k bootování z různých zařízení. Šlo tedy hlavně o úsporu paměti.

    Dále initrd umožňuje před mountováním rootfs provést různé akce, které neimplementuje kernel. Připojení šifrovaného rootfs při zadání passphrase budiž konkrétním příkladem. Linuxové LVM rovněž není soběstačné (důvody neznám). Síťová konfigurace a další věci.

    Umožňuje rovněž elegantně předat po síti userspace pro instalaci nebo rescue systém třeba po FTP nebo HTTP.

    Obvykle se linux bez initrd používá jen s kernelem kompilovaným na míru dané HW sestavě, což je nepohodlné jak při instalci OS, tak při updatech, tak při výměně hardware a v enterprise sféře ještě chybí testování výsledné binárky.

    „v tomhle případě musím použít úplně jiný způsob bootu, než ten tzv. "univerzální"“

    Na embedded platformách tak jako tak ten klasický univerzální nebývá k dispozici a celý boot bývá nestandardní už jen tím, že se často používají zcela odlišné filesystémy na zcela odlišných úložištích.

    Navíc tvá výtka byla směřována optimalizaci paměti, což je další důvod, proč se stejně musí specifický build kernelu udělat. Možnost použít initrd je stále, jen to není zvykem.

    „nějaká věc se vyřeší berličkou a potom se musí řešit situace, kdy je berlička podražena...“

    V podstatě se na to díváš správně. Ale ptal ses na důvody a účel. Já je celkem znám, proto se snažím ti odpovídat.

    Další věc je, že mám pocit, že hodně vycházíš z dogmat FreeBSD. A FreeBSD není Linux a ty rozdíly jsou v mnoha případech zásadní. Už i samotný počet odlišných distribucí dělá svoje. Já jsem zase hodně navyklý na některé představy a dogmata kolem Linuxu a rád se dozvím něco, co současný linuxový svět přesahuje, ale musí to mít hlavu a patu.

    „Dobře. Vyjádření "tohle bude ten třetí případ" a to těch dojmech a ne-realitě, nebudu brát jako invektivy.“

    Díky a potvrzuju, že tak ani nebyly myšleny.

  • 22. 7. 2012 23:16

    M. Prýmek

    > Konfigurace sysvinit nebo systemd.

    No tak dobře, jeden soubor je zbožné přání, ve skutečnosti jsou to dva: /etc/rc a /etc/fstab :)

    > Opravuju tedy své tvrzení, že by to bylo přes síťový filesystém komplikovanější než s archivem.

    Tak na tom se můžeme shodnout: pokud chci bootovat ze sítě, ale nechci síťový filesystém, tak to pak bez image půjde těžko :)))

    > Úplně původní význam je odlehčení generického jádra, aby nemuselo obsahovat všechny moduly potřebné k bootování z různých zařízení.

    ...přičemž se tyto moduly přesunuly do loaderu, kde jsou duplicitní. Jak moc se tím ušetří paměti, to těžko posoudíme.

    Hrubě zorientovat se můžeme takhle: GENERIC jádro na FreeBSD má 11M. Kolik má Linuxové?

    > Dále initrd umožňuje před mountováním rootfs provést různé akce, které neimplementuje kernel. Připojení šifrovaného rootfs při zadání passphrase budiž konkrétním příkladem.

    To umožňuje bootovací partišna taky, tady žádná výhoda není.

    > Další věc je, že mám pocit, že hodně vycházíš z dogmat FreeBSD.

    Nechápu, co pořád máš s těmi dogmaty. FreeBSD používám jako příklad systému, kde se initrd nepoužívá a ptám se: "Čeho tak úžasného teda Linux tím initrd dosáhl"? A proč jej používá i v situacích, kde nemá žádné pádné opodstatnění?

  • 23. 7. 2012 0:17

    Pavel Šimerda

    „No tak dobře, jeden soubor je zbožné přání, ve skutečnosti jsou to dva: /etc/rc a /etc/fstab :)“

    To by se dalo považovat za fatální neznalost.

    „...přičemž se tyto moduly přesunuly do loaderu, kde jsou duplicitní. Jak moc se tím ušetří paměti, to těžko posoudíme.“

    Ušetří se paměť za všechny moduly, které se nepoužijou. Duplicitní z hlediska RAM nejsou. Zhlediska disku a no, ale to je prkotina.

    „Hrubě zorientovat se můžeme takhle: GENERIC jádro na FreeBSD má 11M. Kolik má Linuxové?“

    Na mém systému (64bit fedora) má méně než 5 MB (a osobně se mi to přijde zbytečně moc, pamatuju si ho kolem 1 MB). Na embedded platformách se obvykle pečlivěji konfiguruje a mívá něco přes 1 MB, pokud se nepletu.

    Pro zajímavost, můj initrd má 18 MB. Obojí je komprimované. Adresář s moduly má okolo 100 MB.

    „To umožňuje bootovací partišna taky, tady žádná výhoda není.“

    Popíráš již napsané, ale dobře tedy. Další lekce... ač přemýšlím, jestli tvé úmyslné ignorování již napsaného není samo o sobě urážkou.

    Jde o to, čemu říkáš bootovací partition. Třeba linuxová /boot partition se v systému vůbec nepoužívá, takže ta je ze hry. A bavíme se tedy o / partition.

    Bez initrd je nutnost mít rootfs mountovatelnou čistě pomocí parametru kernelu.

    * Je vyloučený rootfs na LVM (kvůli implementaci)
    * Je vyloučený šifrovaný rootfs (kernel neimplementuje passphrase, HW klíče a podobné věci)
    * Je komplikovaný boot s rootfs na síti (obvykle se dělá z userspace a ten bez initrd chybí)
    * Naroste velikost kernelu o hromadu modulů pro různé chipsety (kvůli diskům)

    Najdou se i další věci, ale tyhle jsou dejme tomu z mého pohledu klíčové.

    Mountovat jednotlivé podadresáře je komplikace pro administrátora. Použití initrd není.

    Překrývat etc je zbytečná komplikace oproti použití initrd. Navíc překrytý etc se nedá efektivně spravovat. Je to nehorázná prasárna, navíc by se to de facto spravovalo stejným způsobem jako teď initrd, který je ale naštěstí nepotřebuje vlastní partition.

    Držet v rootfs jen potřebné věci je prakticky nemožné, protože umístění souborů řeší distributor. Naopak initrd se generuje na konkrétním stroji podle potřeby (a dá se případně doladit aniž by se udělal bordel na disku).

    Dodělat IO do kernelu a umožnit zadávání passphrase k rootfs by bylo možné. Nicméně by to bylo duplicitní k init podpoře passphrase, protože nemusí být
    šifrovaná jenom root partition. Nehledě na to, že použití initrd umožňuje
    udržet kernel čistší, když toto implementovat nemusí.

    „Čeho tak úžasného teda Linux tím initrd dosáhl?“

    Mně výše uvedené (a po několikáté zopakované) jako opodstatnění pro initrd stačí. Navíc jak si utřiďuju myšlenky, abych to dokázal sepsat, tak se mi čím dál tím víc zdá initrd jako nejčistší možné řešení výše uvedených usecases.

    A jakékoli překrývání neprázdných adresářů a duplikace mezi RW filesystémy mi přijde čím dál tím víc jako extrémně špatné řešení.

    „A proč jej používá i v situacích, kde nemá žádné pádné opodstatnění?“

    Protože je to jednodušší než detekovat situace, kdy initrd není potřeba? Protože jeden způsob se na jedné distribuci lépe otestuje a je méně náchylný na chyby?

    Každopádně díky za inspiraci, takhle jsem se tím nikdy neprobíral, možná to časem zužitkuju v nějakém článku :).

  • 23. 7. 2012 0:35

    M. Prýmek

    > To by se dalo považovat za fatální neznalost.

    Dobře, nechám se poučit. Kde je problém?

    > Duplicitní z hlediska RAM nejsou. Zhlediska disku a no, ale to je prkotina.

    Jsou duplicitní z hlediska vývoje. O disku by mě fakt nenapadlo mluvit, tak padlej na hlavu nejsem.

    > Na mém systému (64bit fedora) má méně než 5 MB

    Bezva. 6M k dobru :)

    > jestli tvé úmyslné ignorování již napsaného není samo o sobě urážkou. Jde o to, čemu říkáš bootovací partition.

    Hele, popravdě mi trochu dochází trpělivost.

    Jako je hezký, že mě chceš poučovat o mých neznalostech, to se vždycky hodí, ale bez servitků řečeno, mě sere, když napíšeš tohle po tom, co jsem tady už X-krát popsal, co myslím bootovací partišnou.

    Sorry, takhle ne. Takže na zbytek nereaguju a tohle jsem jakože neslyšel, ok?

  • 23. 7. 2012 0:55

    Pavel Šimerda

    „Dobře, nechám se poučit. Kde je problém?“

    Třeba v tom, že init systémy na linuxu používají úplně jiné soubory a je jich podstatně víc.

    „Jsou duplicitní z hlediska vývoje. O disku by mě fakt nenapadlo mluvit, tak padlej na hlavu nejsem.“

    To bude únavou, zaměnil jsem v tvé větě loader za initrd. O duplicitě v loaderu už jsem psal. Tam jsou tvé požadavky na jeden FS a dva formáty disku v linuxovém ekosystému nesplnitelné. Nezávisle na initrd.

    „Hele, popravdě mi trochu dochází trpělivost.“

    To není můj problém. Já tu projevuju trpělivost v extrémním množství tím, že ti opakuju argumenty, které jsi se rozhodl ignorovat.

    „Sorry, takhle ne. Takže na zbytek nereaguju“

    Beru to jako výraz uznání. Vzhledem k tomu, jakou jsem si dal práci s pečlivým sepsáním argumentů, že jsi zjistil, že mám pravdu. I když způsob vyjádření je pro mě trošku nezvyklý.

  • 23. 7. 2012 1:22

    M. Prýmek

    > Třeba v tom, že init systémy na linuxu používají úplně jiné soubory a je jich podstatně víc.

    No dobře, tak teda ať neumřu blbej, které všechny soubory z /etc používá například takový Arch Linuxový init předtím, než spustí první řádku prvního startovacího skriptu?

    Já mám v /etc/inittab (kterej jsem nenapsal, ok, to bylo zásadní opomenutí :))) tohle:

    rc::sysinit:/et­c/rc.sysinit
    rs:S1:wait:/et­c/rc.single
    rm:2345:wait:/et­c/rc.multi
    rh:06:wait:/et­c/rc.shutdown
    su:S:wait:/sbin/su­login -p

    Jaké jiné soubory v /etc teda používá? A zopakuju ještě jednou: /etc může přemountovat HNED jako první věc.


    Jinak velmi děkuju za trpělivé vysvětlování a upozorňování na moje neznalosti, ale už mi to fakt přijde mírně v komické rovině. Takže za mě shrnuju takhle:

    Dobrali jsme se složitě k tomu, že initrd je dobré na to, že:

    1. umožňuje nemít některé věci natvrdo v kernelu, ale mít je jako modul. Odhadem se tím ušetří nějaký ty jednotky megabajtů. Což je v dnešní době velký úspěch.

    2. umožní Linuxu zprovoznit root na LVM, přestože FreeBSD má root na zfs i bez něj

    3. umožní Linuxu mít šifrovaný root, přestože FreeBSD ho má i bez něj: http://www.wanda25.de/geli.html

    4. šifrovaný disk bych sice mohl udělat i na Linuxu jinak, ale to bych měl duplicitních asi tak 5 (ať nežeru) souborů v /etc, což je děsná prasárna a komplikace.

    5. bootování ze sítě je na Linuxu bez initrd složité, přestože FreeBSD na to má jednu pár kilobytovou utilitku.

    Prostě initrd umožňuje obrovskou flexibilitu.

    A cena, která se za to platí, je jednoduchá (srovnej z hrůzostrašností v bodu 4!): 1. udržuju image toho, co už v systému mám.
    2. udržuju spousty sriptů a konfiguráků, abych věděl, co tam mám mít
    3. na generování potřebuju zvláštní software, kterej se čas od času ukáže jako naprd, tak pro jistotu napíšu novej
    4. občas se ukáže, že to zas tak geniální nápad nebyl, tak to radikálně změním i v kernelu

    Takže tímto děkuji za trpělivé poučování, pečlivé sepsání argumentů a zejména velmi důkladné naslouchání, přes všechny moje kolosální neznalosti.

    Dík, myslím, že už mi to opravdu došlo a nebude to potřeba znovu opakovat.

  • 23. 7. 2012 1:33

    M. Prýmek

    Jo a nezpomeňme ještě na poslední bod

    5. tato úžasná flexibilita je možná jenom díky tomu, že jsem všechen ten kód, co by bylo tak hrůzostrašné mít v jádře, napsal ještě jednou pro úplně jiný (mini)kernel, který se jmenuje Grub.

  • 23. 7. 2012 1:45

    Pavel Šimerda

    Arch Linux nepoužívám. Vše ostatní už jsem rozepsal do detailu i s odůvodněními, proč se některé věci řeší jiným způsobem než ve FreeBSD. Každopádně jsem si tím docela slušně utřídil myšlenky, za což ti děkuju. Pokud máš pocit, že to tobě nic nepřineslo, budiž.

    Co mě na tom všem překvapuje je, že máš tolik argumentů proti initrd a tolik argumentů proti množství oddělených modulů kernelu, že by člověk čekal, že mě to přesvědčí, že linuxový způsob je úplně mimo a řešení ve freebsd je jediné správné. Ale nestalo se tomu tak, a to ač mi freebsd jinak v mnohém vyhovuje.

  • 23. 7. 2012 1:54

    M. Prýmek

    > Arch Linux nepoužívám.

    Asi není potřeba používat Arch Linux na to, aby člověk pochopil, že když první řádek prvního spuštěného init skriptu přemountuje /etc, tak se z toho svět nezhroutí.

    Ale asi to tak není, jenom mám kolosální neznalosti :)

    > Co mě na tom všem překvapuje je, že máš tolik argumentů

    Ne. Mám jediný: je to zbytečně překombinované na to, že to neumí v podstatě nic zásadního, co by nešlo jednodušeji udělat jinak.

    Jestli máš pocit, že zaznělo hodně argumentů, tak to nebyly argumenty proti initrd, ale argumenty proti nepravdivým argumentům pro initrd.

    Proti mám opravdu jenom ten jeden.

    > řešení ve freebsd je jediné správné

    Není jediné správné. Žádné řešení není "jediné správné". Bootování ve FreeBSD je jiné, podstatně primitivnější a přesto umí zjevně plus mínus to samé.

    > že by člověk čekal, že mě to přesvědčí [...] Ale nestalo se tomu tak,

    A tak na tom zase není nic divného, člověk by taky čekal, že když mají Linuxáci tolik argumentů, proč je Linux lepší než Windows, tak to někoho přesvědčí... Ale nestalo se tomu tak. Na desktopu pořád jednotky procent :)

  • 22. 7. 2012 23:26

    M. Prýmek

    > a rád se dozvím něco, co současný linuxový svět přesahuje

    Jako to v tomhle tématu asi nečekej, FreeBSD určitě nemá nějaký geniální systém bootování, nad kterým by sis cvrknul :) (teda možná kromě toho, že část loaderu je napsaná ve forthu a proto je tak flexibilní a přitom malinká)

    Jestli v tomhle ohledu může FreeBSD nabídnout (podle mýho skromnýho pohledu, nejsem žádnej guru), tak právě to, že méně je někdy více...

    Ja totiž právě zas mám pocit, že udržování té děsivé infrastruktury kolem initrd nemá __hlavu a patu__ ;)

  • 23. 7. 2012 0:20

    Pavel Šimerda

    „Jako to v tomhle tématu asi nečekej, FreeBSD určitě nemá nějaký geniální systém bootování, nad kterým by sis cvrknul :) (teda možná kromě toho, že část loaderu je napsaná ve forthu a proto je tak flexibilní a přitom malinká)“

    Ono je dobré si uvědomovat, že Linux není BSD, že má zcela odlišný ekosystém, zcela odlišný způsob vývoje (myslím tím nejen kernel, ale i samotné distribuce)
    a vůbec spousta věcí se řeší úplně jinak.

    „Ja totiž právě zas mám pocit, že udržování té děsivé infrastruktury kolem initrd nemá __hlavu a patu__ ;)“

    Chápu, ale složitost infrastruktury se odvíjí právě od možností, jaké ten systém nabízí. A teď je postavený možná krkolomně, ale i tak natolik univerzálně, že
    není problém initrd rozšířit o jakýkoli usecase někdo vymyslí.

    Každopádně je dobré, že veškeré komplikace padaní na hlavu vývojářů distribucí a ne administrátorů systémů nebo uživatelů.

  • 22. 7. 2012 23:45

    M. Prýmek

    Jo a ještě ty embedded platformy jsem zapomněl, sorry za tři posty...

    Jasně, že embedded bootují hodně nestandardně. Ale spíš mi šlo o princip: je hezký, když máš jedno stupidně jednoduchý řešení (univerzální ;), který pak můžeš použít víceméně všude, právě proto, že je tak stupidní. Jakmile máš řešení překombinovaný, který má spoustu předpokladů a začne se masově používat, tak se zapomene na to, že tam ty předpoklady vlastně jsou (na normálních platformách se neprojeví).

    ...no a pak dochází k takovým věcem, jako že se zjistí, že vlastně nejde nabootovat, když není namountovaný /usr, což se do té doby považovalo za normální věc...

    ...no a aby to teda šlo, když to nejde kvůli těm zapomenutým předpokladům, tak se vymyslí další konina, která do systému zavede zase kupu dalších předpokladů. .. a celá tahle šará jde do čímdál většího kopru. Windows budiž odstrašujícím příkladem.

  • 22. 7. 2012 21:29

    Pavel Šimerda

    „Není žádnou chybou duplikovat jeden FS (viz níž), ale je imho úplně zbytečný duplikovat kód dvaceti filesystémů.“

    Jak myslíš. Ale pokud máš pocit, že je možné v celém linuxovém světě prosadit jedno konkrétní rozložení disku a jeden konkrétní filesystém, tak bych tě rád upozornil, že jsi na omylu.

    „KERNEL (!!!!!) si tu partišnu namountuje (driver toho jednoduchýho fs má natvrdo)“

    A kde má driver na řadič disku a související moduly? Popřípadě na řadič sítě, pokud by rootfs byl čistě náhodou ze sítě?

    „Ta deklarovaná univerzálnost je ÚPLNĚ STEJNÁ“

    Umět bootovat jen z jednoho FS nemá s univerzalitou nic společného.

    „2. nic se nerozbaluje do ramdisku -> rychlejší boot, míň paměti“

    Ve skutečnosti je to po bootu víc zabrané paměti (zakompilované drivery).

    „1. / musí být na jednoduchým FS, kterému jednoduchý loader rozumí“

    (jediný podporovaný fs, jediné podporované rozložení disku)

    Takovéhle požadavky linuxovému světu nevnutíš a nezabráníš použití alternativních FS a alternativních rozložení disku a tím i modulárních
    bootloaderů s podporou většího množství FS a rozložení.

    „3. je potřeba jedna partišna navíc (pokud mám GPT nebo BSD partišny, žádný problém to není)“

    Podle mě jsi zapoměl zdůvodnit, jaktože FS smí být pouze jeden, zatímco formátů disku smí být vícero.

    „4. pokud z nějakýho důvodu potřebuju v / držet nějaký data, vyžadující speciální zacházení (např. šifrovaný /etc), musí se při nejbližší příležitosti tenhle adresář přemountovat z jinýho úložiště.“

    V tom případě ale musím mít v /etc základní věci a tudíž bude celý ten podadresář duplikovaný. To mi přijde na údržbu podstatně složitější než initrd.

    „4 vypadá hrozivě, ale není to vůbec žádnej problém, protože přemountovat to můžu hned - klidně jako hnedka první věc po spuštění /sbin/init“

    Takže ještě budu muset řešit duplikování konfigurace sysvinit a/nebo systemd.

    „Tak pokud si už rozumíme a chceš pokračovat v diskusi, omezme se prosím na téma "proč je bootovací partišna špatná a v čem je initrd "partišna" lepší" a vyhněme se prosím větám typu "popisuješ dojmy".“

    Nejednalo se o útok, ale o to, že ty máš určitou představu, jak to někde funguje a jak to fungovat má. Tu představu považuješ do jisté míry za dogma.

    Pokud se chceš naučit něco nového o bootování na linuxu, máš možnost. Pokud mi chceš říct něco nového o tom, jak to bootování může fungovat, taky budu rád.

    Ale točit pořád dogmata:

    1) Zdrojový kód bootloaderu smí implementovat pouze jeden konkrétní filesystém.

    2) Zdrojový kód bootloaderu smí implementovat ... rozložení disku.

    3) Duplicita souborů v initrd je špatná.

    4) Duplicita konfigurace sysvinit/systemd v /etc je v pořádku.

    5) ...

    To je tak trochu o ničem, nemyslíš?

  • 22. 7. 2012 21:38

    M. Prýmek

    > ty máš určitou představu, jak to někde funguje a jak to fungovat má. Tu představu považuješ do jisté míry za dogma.

    Ne. Já zdůvodňuju, proč podle mění není initrd nutné a ve většině případů přináší víc komplikací než užitku.

    Dál se prosím omezme na téma "v čem je initrd lepší než minimalistická / partišna s nějakým jednoduchým filesystémem".

    Pokud si nerozumíme v tom, že věc z prvního odstavce jde redukovat na věc druhého odstavce, navrhuji diskusi ukončit.

  • 22. 7. 2012 21:43

    Lol Phirae (neregistrovaný)

    A čo si predstavujete pod takým pojmom "minimalistická partišna", Kefalín?

  • 22. 7. 2012 21:56

    Lol Phirae (neregistrovaný)

    Aha, no to jsme tedy opravdu moc nepokročili. Takže stávající / zduplikujeme do /boot, ano? A já měl dojem, že vám hrozně vadila ta duplikace. :P

    A není náhodou místo opětovného vymýšlení kola lepší přimountovat UEFI oddíl, zkopírovat tam ten kernel a initramfs, vytvořit jednořádkový /EFI/arch/linux­.conf a nabootovat? :-)

  • 22. 7. 2012 22:14

    M. Prýmek

    >> Takže stávající / zduplikujeme do /boot, ano?

    Prosím, opravdu se zkuste držet toho, co jsem napsal. O duplikaci něčeho taky myslím nebyla řeč.

  • 22. 7. 2012 21:54

    Pavel Šimerda

    „Ne. Já zdůvodňuju, proč podle mění není initrd nutné“

    Tak to je ovšem zvláštní věnovat tolik úsilí zdůvodňování něčeho tak samozřejmého, na čem se od začátku shodneme.

    „a ve většině případů přináší víc komplikací než užitku.“

    A tohle je takové statistické tvrzení, které vůbec nic nepřináší. Ono totiž moc nezáleží na tom, jestli je těch případů většina nebo menšina, ale jak moc jsou z hlediska vývoje toho systému významné.

    „Dál se prosím omezme na téma "v čem je initrd lepší než minimalistická / partišna s nějakým jednoduchým filesystémem".“

    K tomuhle tématu už jsem této diskuzi napsal vše potřebné.

  • 22. 7. 2012 22:08

    M. Prýmek

    > Tak to je ovšem zvláštní věnovat tolik úsilí zdůvodňování něčeho tak samozřejmého, na čem se od začátku shodneme.

    No ono to asi bude tím, že jsem reagoval většinu času na výtky, které byly pro věc nepodstatné a tímpádem jsme se k jádru dostali až teď.

    Stejně je ale zajímavé, že to je taková samozřejmost, když to "není realita" :)

    Btw, můžeš se pokusit to vysvětlit Lolovi, který s tím zjevně nesouhlasí.

  • 22. 7. 2012 22:20

    Pavel Šimerda

    „Btw, můžeš se pokusit to vysvětlit Lolovi, který s tím zjevně nesouhlasí.“

    To ti s radostí přenechám :).