| CD bootable avec divers utilitaires | ||
|---|---|---|
| Précédent | Chapitre 3. Création d'un CD Bootable | Suivant |
Dans le cas d'un ramdisk initial, le programme que Linux exécute est /linuxrc, et non plus /sbin/init. Nous écrirons donc un script shell /linuxrc qui permet de déterminer où trouver le CDROM, puis indiquer au noyau que son système de fichiers racine est le CD, et où le trouver.
Une fois /linuxrc terminé, le noyau démonte le système de fichiers en mémoire, et monte son système de fichiers réel, que nous lui avons indiqué plus tôt.
- /linuxrc -----------------
#!/bin/sh
# Recherche du CD-ROM
/bin/mount -n proc /proc -t proc
/bin/findcd > /proc/sys/kernel/real-root-dev
/bin/umount /proc
----------------- /linuxrc -
- /bin/findcd ----------------
#!/bin/sh
if [ "`cat /proc/ide/ide0/hda/media 2> /dev/null`" = "cdrom" ] ;
then echo "0x0300" ;
elif [ "`cat /proc/ide/ide0/hdb/media 2> /dev/null`" = "cdrom" ] ;
then echo "0x0340" ;
elif [ "`cat /proc/ide/ide1/hdc/media 2> /dev/null`" = "cdrom" ] ;
then echo "0x1600" ;
elif [ "`cat /proc/ide/ide1/hdd/media 2> /dev/null`" = "cdrom" ] ;
then echo "0x1640" ;
fi
---------------- /bin/findcd -
Les autres fichiers nécessaires au système de fichiers sont :
/bin/cat
/bin/echo
/bin/mount
/bin/sh
/bin/umount
/lib/ld-linux.so.2
/lib/libcrypt.so.1
/lib/libc.so.6
/dev/console
/dev/null
/dev/hda
/dev/hdb
/dev/hdc
/dev/hdd
/proc
Pour créer ce système de fichiers, le peupler puis le compresser :
cd ~
mkdir ramdisk
cd ramdisk
cp ~/linuxrc .
mkdir bin dev lib proc
cp `which cat` `which echo` `which mount` `which umount` ~/findcd bin/
cp `which ash` bin/sh
cp /lib/ld-linux.so.2 /lib/libc.so.6 /lib/libcrypt.so.1 lib/
mknod dev/console c 4 0
mknod dev/hda b 3 0
mknod dev/hdb b 3 64
mknod dev/hdc b 22 0
mknod dev/hdd b 22 64
mknod dev/null c 1 3
cd ~
dd if=/dev/zero of=/dev/ramdisk bs=1k count=2048
mke2fs -vm0 /dev/ramdisk 2048
mount /dev/ramdisk /floppy
cp -dR ~/ramdisk/* /floppy/
umount /floppy
dd if=/dev/ramdisk bs=1k count=2048 | gzip -v9 > ~/ramdisk.gz
| Précédent | Début du document | Suivant |
| Création d'un CD Bootable | Début du chapitre | syslinux |