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 |