Introduction
Avez vous vu ces sites o� l'on vous promet une version utile de Linux sur une ou deux disquettes ? Elle n'ont g�n�ralement que peu de programmes ou de possibilit�s. Je vais vous montrer comment cr�er une disquette boot/root qui contient presque tout ce que vous utilisez ou avez besoin.
Avant tout, vous avez besoin d'une ou deux disquettes vierges selon la quantit� de logiciel que vous allez mettre dans votre version de Linux. Grossi�rement, votre version de Linux sera juste constitu�e d'une disquette boot/root et peut �tre d'une autre d'utilitaires. Si ces termes ne vous disent rien, je vous sugg�re de consulter le chapitre 2 du Bootdisk-HOWTO avant de commencer.
Allons y. Voici les �tapes �l�mentaires pour faire votre version de Linux sur disquettes :
- Compiler un noyau minimal personnalis�.
- Cr�er un syst�me de fichier pour votre disquette
- Tout copier sur la ou les disquette(s)
Compiler le Noyau
A cause de la taille de la disquette limit�e � 1.44 Mega-octets (1440 Kilo-octets) de donn�es, vous ne pouvez pas simplement y copier votre noyau original. D'abord, r�cup�rez les sources du noyau et d�compactez les dans /usr/src/linux. Ensuite, passez la commande suivante depuis ce m�me r�pertoire :
make config
Dans cette phase de configuration, n'incluez que ce dont vous avez vraiment besoin. Sur le mien je n'ai que les supports pour ext2, les disquettes et PPP. Votre param�trage peut �tre diff�rent selon ce que vous installez. Ensuite, lancer la commande :
make dep; make clean; make zImage
make zImage est tr�s important ! Il compresse le noyau final. Une fois cette commande termin�e, le noyau devrait se trouver dans le r�pertoire /usr/src/linux/arch/i386/boot avec le nom zImage.
Le Syst�me de Fichier: Pas n'Importe Quels Vieux Fichiers
Maintenant nous devons cr�er le syst�me de fichier pour la disquette. Plut�t que de copier directement tout le tas sur la disquette, nous allons compresser tous les programmes. Ceci rendra un peu plus difficile les modifications permanentes. D'abord, nous passons la commande :
dd if=/dev/zero of=DEVICE bs=1k count=3000
O� DEVICE est le chemin de l'endroit o� vous allez conserver le syst�me de fichiers non compress� sur votre disque dur. Entrez ensuite la commande ci-dessous et pressez Entr�e apr�s avoir remplac� DEVICE par le chemin des fichiers non compress�s sur votre disque dur :
mke2fs -m 0 DEVICE
Si make2fs vous demande si vous voulez vraiment faire cela, r�pondez oui.
Nous avons alors � monter le nouveau syst�me de fichier. Puisqu'il est � l'int�rieur d'un fichier normal, le "p�riph�rique loopback" doit �tre compil�e dans le noyau pour pouvoir le monter. Si votre noyau (pas celui cr�e pour la disquette, mais celui de votre syst�me) ne supporte pas cette option, alors recompilez le. Vous devez r�pondre (Y)es (ou (M)odule) � cette question:
Loopback device support (CONFIG_BLK_DEV_LOOP) [M/n/y/?]
lors de la configuration du noyau. Remarquez que vous recompilez VOTRE noyau normal, pas celui de la disquette ; il vous faudra donc inclure tous les pilotes et utilitaires que vous avez d�j�. Si le p�riph�rique loopback est compil� comme un module, n'oubliez pas de l'installer (modprobe loop).
mount -t ext2 DEVICE /mnt
Si le programme mount se fait prier, essayez:
mount -o loop -t ext2 DEVICE /mnt
Maintenant vous devez copier tous les fichiers dont vous avez besoin sur votre nouveau syst�me de fichiers. D'abord, faites un cd vers /mnt. Cr�ez les r�pertoires suivants :
/dev
/proc
/etc
/bin
/lib
/mnt
/usr
Occupons nous des fichiers dans /dev en tapant ce qui suit :
cp -dpR /dev /mnt/dev
Si vous manquez de inodes, allez dans /mnt/dev et supprimez les fichiers de p�riph�riques dont vous n'avez pas besoin. Une fois les fichiers de /dev copi�s, passons � /etc. Par pr�caution, copiez tous les fichiers de /etc vers /mnt :
cp -dpR /etc /mnt/etc
Puis copiez tout le r�pertoire /lib vers /mnt:
cp -dpR /lib /mnt/lib
Pour /bin, copiez seulement les choses dont vous pensez avoir besoin vers /mnt.
Tout Copier Sur Votre Disquette
Maintenant nous devons tout copier sur la ou les disquette(s). Pour cela nous devons compresser le syst�me de fichier avec les commandes suivantes:
cd /
umount /mnt
dd if=DEVICE bs=1k | gzip -9 > rootfs.gz
Il est important � ce point de v�rifier la taille du noyau. Allez en /usr/src/linux/arch/i386/boot et passer une commande ls -l. Ensuite, vous devez diviser la taille du noyau par 1024. Par exemple, si la taille de mon noyau est de 250000 octets, alors le r�sultat est 245 Ko. Utilisez le nombre total de Kilo-octets que vous calcul�s pr�c�demment avec la valeur de n'importe quelle commande qui disait ROOTBEGIN. Copiez le noyau sur la disquette avec la commande suivante :
dd if=zImage of=/dev/fd0
Cette commande �crira le noyau sur la disquette. Entrez ensuite la commande ci-dessous pour dire au noyau de trouver le syst�me de fichier sur la disquette :
rdev /dev/fd0 /dev/fd0
Maintenant vous avez un peu de calcul en hexa � faire. Ajoutez 4000 � l'�quivalent hexa de ROOTBEGIN (qui est F5 dans cet exemple). Convertissez la r�ponse sous forme d�cimale et ins�rez la dans la commande suivante � la place de 16629:
rdev -r /dev/fd0 16629
Finallement, copiez le syst�me de fichier sur la disquette avec la commande :
dd if=rootfs.gz of=/dev/fd0 bs=1k seek=ROOTBEGIN
Le syst�me de fichier root sera copi� sur la disquette derri�re votre noyau. Vous avez fini ! Pour la seconde disquette, le processus est plus simple. Copiez juste les fichiers que vous voulez sur la disquette. Toutefois, afin de pouvoir utiliser les fichiers qui sont sur cette seconde disquette, vous devrez entrer la commande suivante apr�s avoir boot� avec la disquette :
mount /dev/fd0 /usr
Une derni�re remarque : si vous bricolez un peu tout �a, vous serez probablement capable de faire une version de Linux que vous pourrez diffuser au public en tant que " distribution " � part de Linux. Juste une id�e :)
|