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