Hát, az lett, hogy 1000 és 1 dolgom lett, ez meg amolyan 'hobbi', szóval félre lett téve. De sajnis nem áll módomban jelentős javulásról beszámolni. B-(((
A /dev alá betettem a mem-et és a kmem-et is, nem segített.
Ma már sajna nincs időm kipróbálni az initramfs-t, ráadásul debian woody-n nincs is ilyen csomag, ha jól látom. Lehet, hogy otthon még rápróbálok sarge-dzsal. A leírás tényleg jónak tűnik.
Bocs, de rosszul olvastad: /dev/fd PER [0-2] -t írtam, ami nem a floppy, hanem az stdin/stdout/stderr elérhetősége (nem csak /dev/stdin stb van, hanem ezek is). Amúgy noha nekem úgy tűnik, hogy ez az initramfs tán már a fény az alagút végén, de megint megkérdezem - és a /dev/mem -mel mi a helyzet?
Szvsz ez nem az, ez az intird támogatás. A hibaüzeneted is pont ezt mondja - initramfs-t keres, de initrd-t talál, aztán pánikol. Guglizz az initramfs-re!
This package contains tools to create an initramfs archive for prepackaged Linux kernel. The initramfs is an cpio archive. At boot time, the kernel unpacks that archive, mounts and uses it as initial root filesystem.
Ennyire nem értek hozzá, de itt lehet a kutya elásva:
checking if image is initramfs...it isn't (no cpio magic): looks like an initrd
Azaz initramfs-t keres (talán a root=/dev/ram miatt) de nem azt talál. Innentől már sötétben tapogatózom, de mit szól a root=/dev/hdc paraméterhez, ha már a cd-n úgyis rajta van minden?
Beszéljük át ezt az egészet, mert szerintem bennem van a hiba.
Úgy tudom, a linux boot folyamata kb. ez:
kernel behúzása kernel behúzza az initrd-t kernel felmountolja a rootfs-t (root= paraméter alapján) kernel futtatja a /sbin/init-et /sbin/init felolvassa a /etc/inittab-ot stb. stb.
Ami viszont van:
0) bootloadernek az isolinux-ot használom, hogy ne kelljen floppy boot image-ből dolgoznom
1) betöltődik a kernel Loading vmlinuz.................
2) betöltődik az initrd.gz Loading /isolinux/initrd.gz ....................... ready
3) kitömöríti Uncompressing Linux...
4) bootolás OK, booting the kernel. Linux version 2.6.12.3 blablablabla
5) aztán menet közben (proci, pnp, usb stb detektálás) Kernel command line: initrd=/isolinux/initrd.gz ramdisk_size=32768 rw root=/dev/ram init=/bin/bash BOOT_IMAGE=vmlinuz [...] checking if image is initramfs...it isn't (no cpio magic): looks like an initrd [...] Aztán már csak a kernel pánik....
Azt nem értem, hogy ha az initrd.gz-t be tudja tölteni és húzza fel a modulokat (megvan a hálókártya, az usb, meg minden), akkor azt honnan teszi és hol van az a pont, amikor a root-ot kezdni keresni? És miért nem találja meg, amikor a boot CD rootjában benne van minden, ami az initrd-ben is benne van (sbin/init, inittab, fstab, stb. stb.).
(LFS = linux from scratch) - még jó, hogy pontosítottál :-)))
A hibaüzeneted nekem akkor szokott előjönni, ha az fstab ill. a lilo.conf bejegyzései nem passzolnak össze a tényleges filerendszerrel - másutt keresi a / -t mint ahol az van. Esetleg ebbe az irányba indulhatnál el - hol van a / ? Hol keresi az a bootloadered?
(Valamilyen levlistán mintha olvastam volna olyasmit is, hogy valakinek a devfs hiányzott az fstabból)
Nem vágom, hogy Linuxban hogy is van ez, de nekem mindenképpen hiányzik egy /dev/mem, és /dev/kmem - ezeket a lenti listában nem látom. Esetleg /dev/fd/[0-2] .
Igazából az érdekelne, hogy szerintetek mi lehet a gond az alant leírt módszerrel, mert ezt még sehol senki nem tudta megmondani. Először úgy gondoltam, hogy a CD_ROOT-ba csak az isolinux könyvtárat teszem, mert abban van az initrd.gz, ami maga a RAMDISK-es ROOT lesz. De aztán a CD_ROOT-ba is átpakoltam mindent, amit az initrd-be szántam, hátha... Hát nem...
A leírásokkal (mint pl. a LFS) az a bajom, hogy úgy kezdődnek 'lopj 2 tojást'. Mindegyik innen-onnan leszedhető scriptekkel meg toolokkal operál, pedig egy LFS-től nem ezt várnám (LFS = linux from scratch).
Nulla, azaz 0 értelme volt a válaszomnak, hiszen te init=/bin/sh-t adtál meg; nem biztos azonban, hogy szimbólikus linket szeret a kernel init paraméterként, próbáld meg az init=/bin/bash megadásával. Nálam sajna (Athlon64, 64 bites Debian) nem megy a vmware, úgyhpgy tesztelni nem tudom.
Szeretnék egy olyan boot CD-t csinálni, ami kissé Live CD jellegű is, tehát diskless, meg van tömve egy csomó általam hasznosnak ítélt cuccal, be lehet vele bootolni itt a cégnél előforduló vasak többségén, ISOLINUX-ot használ, ramdiskből fut és nem valamelyik létező mini distrot használom fel hozzá.
Elolvastam pár leírást és az alábbiakra jutottam:
--- előkészítés:
00) forgatni egy megfelelő kernelt
01) csinálok egy könyvtárat, amibe belerakom a majdani / (gyökér) könyvtárat (bin, etc, isolinux, root, sbin, usr, var, stb. stb.). A könyvtár neve: cd_root
02) csinálok egy tök ugyanilyet, csak az 'isolinux' könyvtár nélkül, ez lesz az initrd rootja (könyvtár: initrd_root). Ezt az initrd könyvtárat szeretném majd mint a ramdisk-be töltött ROOT-ot látni.
03) a cd_root/isolinux könyvtárban lesz egy initrd.gz nevű file, ebbe fogom belerakni a 2-esben említett cuccokat
04) cd_root/isolinux/isolinux.cfg megszerkesztése
default linux display uzenet.txt
label linux kernel vmlinuz append initrd=/isolinux/initrd.gz ramdisk_size=32768 rw root=/dev/ram init=/bin/sh