Portál AbcLinuxu, 8. května 2025 02:31

Dotaz: Uvolnění initrd

31.3.2013 20:30 benn | skóre: 18
Uvolnění initrd
Přečteno: 258×
Odpovědět | Admin
Zdravím, v jednom zařízení jsem nucen použít initrd, kde namontuju požadovaný root a řízení pak předám na něj. To se mě podařilo. Postupoval jsem podle: http://www.mjmwired.net/kernel/Documentation/initrd.txt. V linuxrc initrd mám:

#!/bin/ash

export PATH="/bin:/sbin"
mount -v proc /proc -n -t proc
mount -v sysfs /sys -n -t sysfs

sleep 5

mkdir /new_root
mount -o rw /dev/sda /new_root
cd /new_root
mount -o bind /dev dev/

mkdir initrd
pivot_root . initrd
exec /usr/bin/chroot . /sbin/init 3  <dev/console >dev/console 2>&1

echo " --------------------------------- START FREEING ---------------------"
/bin/umount /initrd
/sbin/blockdev --flushbufs /dev/ram0
echo " --------------------------------- FREEING DONE ---------------------"
Je evidentní, že exec se neukončí a ramdisk stále zůstavá v paměti. Nesetkal se někdo, jak správně předávat řízení požadovanému rootu z initrd s jeho uvolněním?

Zatím v tomto případě mám cvičně orig. root na /dev/sda. Je tam ARCH linux a v initrd používám busybox poslední verze.


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (benn (tazatel))
31.3.2013 22:02 xľľ
Rozbalit Rozbalit vše Re: Uvolnění initrd
Odpovědět | | Sbalit | Link | Blokovat | Admin
Initrd sa uvľnuje až z finalného init sktriptu (už zo skutočného rootu). Tie 2 príkazy na konci vyzerajú správne, ale mali by byť na inom mieste - niekde v init-skriptoch.

Všetko, čo je za tým execom sa nespustí, pretože exec spustí /sbin/init bez možnosti návratu.
3.4.2013 23:10 benn | skóre: 18
Rozbalit Rozbalit vše Re: Uvolnění initrd
Dík za nakopnutí, už se mě to podařilo odmontovat. Nakonec jsem zjistil, že jej stejně musím zakompilovat do jádra, takže jsem jej aspoň zmenšil na 400kB. A pivot_root jsem zaměnil za switch_root.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.