CD bootable avec divers utilitaires
PrécédentChapitre 3. Création d'un CD BootableSuivant

Ramdisk

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 :

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édentDébut du documentSuivant
Création d'un CD BootableDébut du chapitresyslinux