MDK10.1 a pridani moduly do initrd

Miroslav BENES miroslav.benes na zdas.cz
Čtvrtek Leden 13 13:04:20 CET 2005


> BTW jak je ten initrd vlastně dělaný ?
> Na stroji s RH9.0 a kernelem 2.4 to byl zazipovaný 3MiB soubor 
> naformátovaný na ext2, Byla v něm jednoduchá struktura adresářů, 
> potřebné moduly a skriptík který je natahuje. Ruční editací se to dalo 
> docela dobře upravit podle potřeb.
>
> Ale na FC3 s kernelem 2.6 se to popsaným způsobem neotevře a tím pádem 
> nejdou ruční úpravy. Nebo je na to nějaký fígl ?
>
>

Nedalo mi to a tak jsem to vyzkoušel.
Ve FC3 se na initrd.img používá cpio archiv, zazipovaný pomocí gzip. 
Prozradil mi to příkaz file. Ještě že ho v systému máme :)

Zkusil jsem to jen tak nanečisto porovnat (vzal jsem pár modulů z jádra) 
a uložil jsem je jak ve starém (komprimovaný ext2) tak i v novém 
(komprimovaný cpio) tvaru.

Výsledek:
    tar          102400    (to je jen pro představu kolik jich vlastně bylo)
    cpio        85504      (je viditelně úspornější než tar)
    cpio.gz   24966
    ext2.gz   29326
    tar.gz    25579      (pro srovnání)

Příkaz gzip byl vždy spouštěn s parametrem "-9" (maximální komprese).

Takže ukládání pomocí cpio je o cca 15% úspornější než "klasický" postup 
s ext2, ale IMHO se s tím bude v případě úprav hůř manipulovat (rozbalit 
cpio, upravit, znova zabalit ..)


BTW tímto tématem jsem se /na kerenlu 2.4) zabýval před časem, protože 
jsem potřeboval zavádět jako jeden z prvních modulů ovladač na Promise 
(pseudo)RAID řadič, který mám mimo kernel.  Zajímavé je, že se mi to 
nakonec podařilo - tj. vyrobil jsem initrd, který se vešel na disketu 
spolu s kernelem (cca 1175 kiB). Nevím jak se mi to povedlo - disketa se 
dneska jeví jako nečitelná (linux hlásí FAT error a zobrazuje nesmysly, 
Wokna ji ukazují jako prázdnou), ale přitom funguje !

Poslední dotaz k tématu - jak se dá vyřešit problém s velikostí ? Tj. 
existuje nějaký standardní mechanismus, pomocí kterého by se 
dalojednoduše nakonfigurovat natahování initrd např. z druhé diskety ?









Další informace o konferenci Linux