Page suivantePage pr�c�denteTable des mati�res

5. Bonus : d�marrer depuis un cdrom

La plupart des op�rations ci-dessus sont valables pour d�marrer depuis un cdrom. Comme je voulais �galement documenter cette fa�on de booter, je le pr�cise ici pour �viter de taper trop de choses une seconde fois.

Pourquoi d�marrer depuis un cdrom ? C'est surtout int�ressant partout o� l'on veut faire tourner une application sp�cifique comme un kiosque, une base de donn�es de biblioth�que ou un cyber-caf�, et qu'on n'a pas de r�seau ou de serveur pour utiliser root par NFS.

5.1 Principe de base

C'est simple : d�marrer avec un cdrom en tant que racine. Pour que ce soit possible, nous utiliserons l'extension rockridge pour graver un syst�me de fichiers unix et l'extension eltorito pour rendre le cd amor�able.

Les choses ne peuvent �tre si simples...

Bien s�r cette configuration soul�ve quelques probl�mes. Ils sont � peu pr�s les m�mes que pr�c�demment :

  1. Nous avons besoin d'acc�s en �criture sur : /dev, /var et /tmp.
  2. Certaines applications ont besoin d'un acc�s � /home en �criture.
  3. /etc/mtab doit �tre accessible en �criture :

5.2 Cr�er une configuration de test

  1. Pour commencer, prenez une des machines que vous allez utiliser et mettez dedans un gros disque et un graveur de cd.
  2. Installez la distribution de votre choix et laissez une partition de 650 Mo pour le test. Cette installation servira � cr�er l'image iso et � graver le cd, aussi il faut installer les outils necessaires. Elle servira �galement � recommencer en cas de probl�me.
  3. Sur la partition de 650 Mo, installez la distribution de votre choix avec la configuration que vous voudrez avoir sur le cd. Ce sera la configuration de test.
  4. D�marrez sur la configuration de test.
  5. Compilez le noyau comme d�crit dans la section 3.1, en suivant toutes les �tapes. Les modifications pour devfs doivent �tre faites ici aussi. A l'�tape 3, ajoutez ce qui suit :
  6. Configuration de la partition de test :
  7. V�rifiez que la configuration d�marre correctement sous l'application et que tout fonctionne bien.
  8. Red�marrez sur l'installation principale et montez la partition de 650 Mo sur /test.
  9. Mettez ce qui suit dans un fichier /test/etc/rc.d/rc.iso (il sera ex�cut� au d�but de rc.sysinit pour cr�er /var) :
    #/var
    echo Creating /var ...
    mke2fs -q -i 1024 /dev/ram1 1024
    mount /dev/ram1 /var -o defaults,rw
    cp -a /lib/var /
    #restore devfs settings, needs proc
    mount -t proc /proc /proc
    /etc/rc.d/rc.devfs restore /etc/sysconfig
    umount /proc
    

  10. Editez /test/etc/rc.sysinit en commentant les lignes o� / est remont� en lecture-�criture et ajoutez les 2 lignes suivantes apr�s l'initialisation de la variable PATH :
    #to boot from cdrom
    . /etc/rc.d/rc.iso
    

  11. Copiez ce qui suit dans un script et ex�cutez-le : cela va cr�er un r�pertoire mod�le pour /var et des liens pour /tmp et /etc/mtab.
    #!/bin/sh
    echo tmp
    rm -fR /test/tmp
    ln -s var/tmp /test/tmp
    ###
    echo mtab
    touch /test/proc/mounts
    rm /test/etc/mtab
    ln -s /proc/mounts /test/etc/mtab
    ###
    echo var
    mv /test/var/lib /test/lib/var-lib
    mv /test/var /test/lib
    mkdir /test/var
    ln -s /lib/var-lib /test/lib/var/lib
    rm -fR /test/lib/var/catman
    rm -fR /test/lib/var/log/httpd
    rm -f /test/lib/var/log/samba/*
    for i in `find /test/lib/var/log -type f`; do cat /dev/null > $i; done
    rm `find /test/lib/var/lock -type f`
    rm `find /test/lib/var/run -type f`
    

  12. Enlevez la cr�ation de /etc/issue* de /test/etc/rc.local (�a planterait � coup s�r).
  13. Maintenant, d�marrez sur la partition de test : elle sera en lecture seule comme un cdrom. Si quelque chose ne fonctionne pas, red�marrez sur la partition de travail et r�parez puis r�essayez. On peut aussi remonter / en lecture-�criture, r�parer puis red�marrer directement sur la partition de test. Pour remonter / :
    mount -o remount,rw /

5.3 Cr�er le cd

Cr�er une image de d�marrage (image de boot)

D'abord, d�marrer sur la partition de travail. Pour cr�er un cd amor�able, nous aurons besoin d'une image d'une disquette de d�marrage. Mais copier par dd une zimage ne suffit pas parce que, au tout d�but du chargement de celle-ci, un pseudo lecteur de disquette est cr�� et le chargeur du syst�me ne s'y retrouve plus dans le cas d'un cd amor�able. Donc nous utiliserons plut�t syslinux.

  1. r�cup�rer boot.img sur un cdrom redhat
  2. monter boot.img quelque part par loopback en tapant :
    mount boot.img somewhere -o loop -t vfat
  3. enlever tout ce qui est dans boot.img sauf :
  4. copier le noyau de la partition de test vers boot.img
  5. editer syslinux.cfg pour ajouter ce qui suit, en rempla�ant zImage par le nom d'image appropri� :
    default linux
    label linux
    kernel zImage
    append root=/dev/<insert your cdrom device here>
    

  6. d�monter boot.img :
    umount somewhere
  7. Si /etc/mtab est un lien vers /proc/mounts, le d�montage ne va pas automatiquement lib�rer /dev/loop0 donc il faut le lib�rer en tapant :
    losetup -d /dev/loop0

Cr�er l'image iso

Maintenant que nous avons l'image de boot et une installation qui peut d�marrer sur un montage en lecture seule, il est temps de cr�er une image iso du cd :

  1. copier boot.img sur /test
  2. aller dans le r�pertoire ou vous voulez stocker l'image (en prenant garde qu'il y ait assez de place sur la partition)
  3. g�n�rer l'image :
    mkisofs -R -b boot.img -c boot.catalog -o boot.iso /test

V�rifier l'image iso

  1. monter l'image en loopback en tapant :
    mount boot.iso somewhere -o loop -t iso9660
  2. v�rifier que le contenu est correct
  3. d�monter boot.iso :
    umount somewhere
  4. si /etc/mtab est un lien sur /proc/mounts, lib�rer /dev/loop0 :
    losetup -d /dev/loop0

Graver le cd

Si cdrecord est install� et configur� :

cdrecord -v speed=<desired writing speed> dev=<path to your writers generic scsi device> boot.iso

5.4 D�marrer sur le cd et le tester

H� bien le titre de ce paragraphe a tout dit ! ;)


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:34