Portál AbcLinuxu, 7. května 2025 02:59

Dotaz: Jak se dostat k obsahu initrd souboru, jak přimountovat?

30.7.2008 15:30 Espinosa | skóre: 24 | blog: Espblog | London
Jak se dostat k obsahu initrd souboru, jak přimountovat?
Přečteno: 1036×
Odpovědět | Admin

Děkuji že jste otevřeli můj dotaz.

Mám na mysli samozřejmě initrd - initial RAM disk - používaný při bootování systému. Rád bych se podíval na jeho obsah. Měl by obsahovat nějaké ty základní moduly (ko soubory) a spustitelné utilitky, a právě o jednu z nich - resume - my jde. Rád bych zkontroloval její verzi, případně ji updatoval.

Z informací na internetu jsem se dozvěděl, že jedinou cestou jak zmiňovaný soubor "otevřít" je ho namountovat přes loopback device. Initrd může být zakomprimován, to samozřejmě vím jak rozbalit :) Horší je to s tím přimountováním. Jaký filesystém mám předat příkazu mount?

Jak jsem zatím postupoval: Aktuální inird pro můj /boot/initrd-2.6.25.9.dev1.img.gz (cca 1 MB) jsem si rozbalil do /temp/initrd-2.6.25.9.dev1.img (cca 1.8 MB). Zkouším mountovat jako:

umount -t tmpfs -o loop initrd-2.6.25.9.dev1.img /home/espinosa/temp/initrd

Výsledek:
tmpfs, ramfs - příkaz proběhne, v dmesg nic podezřelého, ale výsledný adresář je vždy prázdný.
ext2, romfs - hlásí vadný superblok, příkaz se neprovede.

Initrd samozřejmě prázdný není, pokud ho otevřu v raw editoru, jednoznačně vidím obsah, například i lidsky čitelný konfigurák, něco ohledně suspendu a resume hádám. Systém my s tímto initr bezpečně bootuje, takže ani tady chyba není.

Když se k obsahu inird dostane kernel při bootu tak bych snad měl i já jako uživatel :) Nevěděl by někdo poradit? Děkuji

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

Odpovědi

30.7.2008 16:00 lieko
Rozbalit Rozbalit vše Re: Jak se dostat k obsahu initrd souboru, jak přimountovat?
Odpovědět | | Sbalit | Link | Blokovat | Admin
cau

ja ked som editoval initrd tak som si zapisal tento postup, ze keby som to este potreboval, tak dufam ze pomoze
EXTRACT and EDIT INITRD.IMG (The Linux Filesystem)

Initrd sa nachadza v adresary /boot

# unpack the current initrd.img
mkdir /home/cdimgextract
cd /home/cdimgextract
gzip -dc < /home/isolinux/initrd.img | cpio -i
cd /home
# make any changes you need to the initrd.img in cdimgextract


REMAKE MODIFIED INITRD.IMG

cd /home/cdimgextract
# create the new initrd
rm -f /home/isolinux/initrd.img
find . | cpio -o -c | gzip -9 > /home/isolinux/initrd.img
# cleanup
cd /home
rm -rf cdimgextract
30.7.2008 16:05 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: Jak se dostat k obsahu initrd souboru, jak přimountovat?
Odpovědět | | Sbalit | Link | Blokovat | Admin
V initrd môže byť použitý aj napr. ext2 súborový systém (prípadne to môže byť cpio archív), takže najrozumnejšie je asi použiť file initrd-2.6.25.9.dev1.img (tak by sa malo dať zistiť, čo v tom súbore vlastne je)
30.7.2008 17:27 Espinosa | skóre: 24 | blog: Espblog | London
Rozbalit Rozbalit vše Re: Jak se dostat k obsahu initrd souboru, jak přimountovat?
On jde příkaz file použít in na diskové image?
file initrd-2.6.25.9.dev1.img
initrd-2.6.25.9.dev1.img: ASCII cpio archive (SVR4 with no CRC)
Wow, 'ASCII cpio archive'? Takže on to je zazipovaný CPIO archív? No to mě nenapadlo.
30.7.2008 17:37 Espinosa | skóre: 24 | blog: Espblog | London
Rozbalit Rozbalit vše Re: Jak se dostat k obsahu initrd souboru, jak přimountovat?
cpio -id < initrd-2.6.25.9.dev1.img
Tak tohle mi rozbalilo ten archív. Tak vida, žádný image disk, ale cpio archív a mountovat není (?) potřeba.

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.