Page suivantePage pr�c�denteTable des mati�res
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.
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 :
- Nous avons besoin d'acc�s en �criture sur : /dev, /var et /tmp.
- Nous utiliserons les m�mes solutions :
- pour /dev nous utiliserons Devfs
- pour /var et /tmp nous utiliserons un ramdisk partag� de 1 Mo.
/tmp est remplac� par un lien vers /var/tmp.
- le remplissage du ramdisk peut �tre fait aussi bien � partir
d'une archive que d'un r�pertoire template. Nous retiendrons l�
encore le r�pertoire template pour la simplicit� des modifications.
- Certaines applications ont besoin d'un acc�s � /home en �criture.
- Dans ce cas, on mettra le r�pertoire de l'utilisateur de ces
applications sous /var, et on finira de remplir /var � chaque boot.
- /etc/mtab doit �tre accessible en �criture :
- Cr�er un lien vers /proc/mounts et cr�er un fichier vide sous /proc,
comme d�crit pr�c�demment.
- Pour commencer, prenez une des machines que vous allez utiliser
et mettez dedans un gros disque et un graveur de cd.
- 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.
- 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.
- D�marrez sur la configuration de test.
- 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 :
- isofs compil� dans le noyau
- devfs compil�
- support du cdrom compil�
- tout ce dont vous avez besoin, compil� ou en module
- Configuration de la partition de test :
- cr�er l'utilisateur qui lancera les applications
- mettre son r�pertoire sous /var
- installer l'application (si n�cessaire)
- configurer l'application si n�cessaire
- configurer l'utilisateur de telle fa�on que l'application
d�marre automatiquement apr�s le login
- configurer linux pour d�marrer une session en tant
que cet utilisateur
- configurer tout ce qui doit encore �tre configur�
- V�rifiez que la configuration d�marre correctement sous l'application
et que tout fonctionne bien.
- Red�marrez sur l'installation principale et montez la partition de
650 Mo sur /test.
- 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
- 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
- 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`
- Enlevez la cr�ation de /etc/issue* de /test/etc/rc.local (�a
planterait � coup s�r).
- 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 /
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.
- r�cup�rer boot.img sur un cdrom redhat
- monter boot.img quelque part par loopback en tapant :
mount boot.img somewhere -o loop -t vfat
- enlever tout ce qui est dans boot.img sauf :
- copier le noyau de la partition de test vers boot.img
- 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>
- d�monter boot.img :
umount somewhere
- 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 :
- copier boot.img sur /test
- aller dans le r�pertoire ou vous voulez stocker l'image (en prenant
garde qu'il y ait assez de place sur la partition)
- g�n�rer l'image :
mkisofs -R -b boot.img -c boot.catalog -o boot.iso /test
V�rifier l'image iso
- monter l'image en loopback en tapant :
mount boot.iso somewhere -o loop -t iso9660
- v�rifier que le contenu est correct
- d�monter boot.iso :
umount somewhere
- 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
H� bien le titre de ce paragraphe a tout dit ! ;)
Page suivantePage pr�c�denteTable des mati�resHosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:34