Egy minimális inittab fájl például így nézhet ki:
id:2:initdefault:
si::sysinit:/etc/rc
1:2345:respawn:/sbin/getty 9600
tty1
2:23:respawn:/sbin/getty 9600
tty2
passwd -- felhasználók listája,
home könyvtárak, stb.
group -- felhasználói csoportok
shadow -- felhasználók jelszavai.
Nem kötelező ezt használni.
termcap -- a terminál képesség-adatbázisa.
rc - a következőket kellene tartalmaznia:
#!/bin/sh
/bin/mount -av
/bin/hostname Kangaroo
/bin és /sbin
Ide kell bemásolni az alapműveleteket:
- init, getty login, mount, parancsértelmező,
(sh, bash, stb.) - ls, mv, cat és a dd
/lib - Ki kell adni a következő parancsot:
% ldd /sbin/mke2fs
libext2fs.so.2 => /lib/libext2fs.so.2
(0x40014000)
libcom_err.so.2 => /lib/libcom_err.so.2
(0x40026000)
libuuid.so.1 => /lib/libuuid.so.1
(0x40028000)
libc.so.6 => /lib/libc.so.6
(0x4002c000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2
(0x40000000)
Az összes megjelenő fájlt be kell másolni a /lib
könyvtárba.
Modulok.
Ha moduláris a kernel, a modulokat el kell helyezni a /lib/modules könyvtárba. Célszerű még bemásolni a insmod, rmmod , lsmod, modprobe, depmod és aswapout parancsokat.
/var - El kell benne készíteni a log, és run
könyvtárakat, a run-ban az utmp könyvtárakat
Ekkor le kell futtatni a:
chdir /mnt; chroot /mnt /sbin/ldconfig
parancsot, ami újragenerálja az mnt/etc/ld.so.cache fájlt.
Az fájlrendszer feltöltése
Le kell az fájlrendszert csatolni, átmásolni egy fájlba, majd betömöríteni
umount /mnt
dd if=/tmp/fajlnev bs=1k | gzip
-v9 > rootfs.gz
Ekkor létrejön a rootfs.gz fájl, ami tartalmazza
a tömörített fájlrendszert.
Kernel választása
Egy olyan kernelt kell lefordítani, ami minél
egyszerűbb és minél kisebb. Emellett feltétlenül
tartalmaznia kell a memórialemez és az ext2 támogatást.
Lemez elkészítése
A kernelt érdemes lilo-val telepíteni,
ekkor később lehetőségünk van további paraméterek
beállítására.
Először el kell készíteni bdlilo.conf fájlt
a követkető sorokkal:
boot =/dev/fd0
install =/boot/boot.b
map =/boot/map
read-write
backup =/dev/null
compact
image = KERNEL
label = Bootdisk
root =/dev/fd0
Most létre kell hozni egy kernel fájlrendszert:
Először ki kell számítani a KERNEL_BLOKK méretét,
a kernel image méretét vegyük KB-ban és adjunk hozzá 50-et.
Egy lemezen készítsük el a kernel fájlrendszert:
mke2fs -i 8192 -m 0 /dev/fd0
KERNEL_BLOKK
Ezután be kell mountolni:
mount /dev/fd0 /mnt
Letörölni a lost+found könyvtárat, és
létrehozni a boot, és dev könyvtárakat,
majd a dev könyvtárba belemásolni a következő
eszközöket
cp -R /dev/{null,fd0,cdrom,hdc}
/mnt/dev
a boot könyvtárba pedig átmásolni a gyökér
/boot könyvtárából a boot.b fájlt.
Utoljára bele kell másolni a kernelt, és a bdlilo.conf
fájlt a diszketta gyökérkönyvtárába
Ekkor kész a kernel fájlrendszer, csak a lilot-kell
lefuttatni:
lilo -v -C bdlilo.conf -r /mnt
Memórialemez szó beállítása
A kernel image belsejében van a memórialemez szó, ami
megadja, hogy hol található a gyökér fájlrendszer, több más paraméterrel együtt. A szó az rdev utasítással érhető el, és a következőképpen kell értelmezni:
Az fájlrendszer közvetlenül a kernel után kerül, tehát az eltolás az első szabad blokkra (aminek meg kell egyeznie a KERNEL_BLOKK-al) fog mutatni. A 14. bit 1, a 15. nulla.
Például, tegyük fel, hogy egy lemezt készítünk, és a gyökér fájlrendszer a 253. (decimális) blokknál kezdődik. A memórialemez szó értékének 253-nak (decimális) kell lennie, a 14. bitet 1-re, a 15. bitet 0-ra kell állítani. Ahhoz, hogy kiszámítsuk az értéket, egyszerűen csak össze kell adni a decimális számokat.
253 + 2^14 = 253 + 16384 = 16637.
Ekkor le kell futtatni a következő parancsot
rdev -r /dev/fd0 ÉRTÉK
most le lehet csatolni a lemezt.
Elkészült a használható boot floppy.
A gyökér fájlrendszer átvitele.
A gyökérfájlrendszert a következőképpen kell
fel felírni lemezre
dd if=rootfs.gz of=/dev/fd0
bs=1k seek=KERNEL_BLOKK
Ekkor elkészült a boot floppy.
Boot floppy felmásolása CD-re
Hajtsuk végre a következő parancsot:
dd if=/dev/fd0 of=boot.img bs=10k
count=144
Ekkor a bootfloppy tartalma a boot.img image fájlba másolódik.
Másoljuk a boot.img fájlt egy könyvtárba,
ez lesz az ISO fájlrendszer forrása
Ekkor adjuk ki a:
mkisofs -r -b boot.img -c boot.catalog -o bootcd.iso .
parancsot ami létrehozza a bootcd.iso fájlt. Ezt a fájlt
írjuk ki CD-re és kész a boot cd.
Forrás:
Tom Fawcett: Bootdisk-howto (http://tldp.org/HOWTO/Bootdisk-HOWTO)
Készítette: Faragó Szabolcs
- A hozzászóláshoz be kell jelentkezni
- 9007 megtekintés
Hozzászólások
Amúgy szerintetek egy ilyenre milyen kernelt érdemes tenni? Gondolom nem a legújabb 2.6 -os sorozatot, hanem valami régebbit... vagy a 2.6 -ost is le lehet csupaszítani annyira, hogy ne foglaljon sok helyet? És melyik kernel lehet a jobb? Ami moduláris, vagy inkább a "mindent bele" statikus ?
- A hozzászóláshoz be kell jelentkezni
Aha... akkor elmondanád itt részletesen azt, hogy mi is változott a fenti íráshoz képest...?
Hogy az "új" módon is lehessen készítgetni... :)
- A hozzászóláshoz be kell jelentkezni
Szerintem ha boot-cd -t keszítünk, többminden is kerülhet a fájlrendszerbe, illetve a kernelbe... nem kötelező szerintem az egésznek egy floppy -n elférnie, a cd-n úgyis van hely... :)
- A hozzászóláshoz be kell jelentkezni
> Például, tegyük fel, hogy egy lemezt készítünk, és a
> gyökér fájlrendszer a 253. (decimális) blokknál kezdődik.
Ezt az értéket honnan lehet megtudni? Mármint ami a példában 253. Vagy ahány blokk (vagyis ahány kilobyte) a kernel mérete+1 ?
- A hozzászóláshoz be kell jelentkezni