Embedded Linux - boot z initramfs
Pavel Troller
patrol na sinus.cz
Středa Březen 25 11:25:17 CET 2015
> On Wed, 25 Mar 2015, Pavel Troller wrote:
>
>> Kernel mi stále vnucuje ideu použít vhodný parametr root=. Netušíte, jak
>> jej nastavit ? Většina různých tutoriálů pracuje s initrd, ten se pak uvádí
>
> Neni v takovem pripade root=/dev/ram0 ?
>
> https://www.kernel.org/doc/Documentation/initrd.txt
>
>> Zdraví Pavel
>
Zdravím,
toto by právě platilo v případě použití initrd. Samozřejmě jsem to ale i
zkoušel. Panic vypadá úplně stejně, až na to, že tam je navíc řádek, že v
zařízení /dev/ram0 nebyl nalezen žádný platný filesystem (a jaké všechny byly
zkoušeny).
Jde o to, že initramfs není ramdisk. Initramfs je taková zvláštnost,
v podstatě je to "disková cache bez disku" :-). Čili používá se rutin, které
by v tom jádře beztak byly a sloužily jako disk cache. Ten prostor se
předplní z toho CPIO archivu a díky tomu, že chybí disk "za tím", tak v té
RAM ty data prostě zůstávají a nemohou se nikam uložit. Když se pomocí scriptů
v initramfs uložených připraví opravdový disk, root partition se na něj
přemountuje z tohoto a z tohoto se napřed vše smaže (obyčejné rm -r *), čímž
se ta cache uvolní a s ní i veškerá RAM, ve které to bydlelo. To je o dost
jiný princip než initrd. To byl opravdu ramdisk, který měl svoji velikost a
zacházelo se s ním jako s jinými disky.
Zdraví Pavel
Další informace o konferenci Hw-list