Passer ses partitions en ext3 avec un noyau 2.2 [back]

J'utilise de vieilles Sun sous debian potato ou woody comme serveurs. Ces machines ne possèdant ni usb, ni carte accélératrice 3D style geforce12000, un noyau 2.4 est un encombrement inutile. De ce fait, je concerve un noyau 2.2, mais ces machines étant des serveurs, je souhaitais tout de même passer en ext3.

Afin de vous éviter d'avoir à glaner des informations plus ou moins à jour, voici un mini "howto" basé sur mon expérience avec mes Suns.
--======== * ========--

Première étape: Récupération des sources d'un noyau 2.2 stable (ici, le 2.2.22):
$ cd /usr/src
$ wget http://www.kernel.org/pub/linux/kernel/v2.2/linux-2.2.22.tar.gz
$ bunzip2 linux-2.2.22.tar.gz
$ tar xf linux-2.2.22.tar
		
Normalement, la suite du process ne dépend pas de la version du noyau 2.2 téléchargé.

Seconde étape: Récupération du patch ext3 pour noyaux 2.2
$ wget ftp://ftp.fr.kernel.org/pub/linux/kernel/people/sct/ext3/v2.2/ext3-0.0.7a.tar.bz2
$ bunzip2 ext3-0.0.7a.tar.bz2
$ tar xf ext3-0.0.7a.tar
		
Nota: cette version a été créée pour un noyau 2.2.19, mais fonctionne trés bien sur ses successeurs.

Troisième étape: Patchage des sources du noyau
$ cd linux
$ cat ../ext3-0.0.7a/linux-2.2.19.kdb.diff | patch -sp1
$ cat ../ext3-0.0.7a/linux-2.2.19.ext3.diff | patch -sp1
Nota: Le second patch lève une erreur qui est tout à fait normale si vous n'utilisez pas un noyau 2.2.19! En effet, si vous éditez le Makefile.rej, vous-vou appercevez que l'erreur concerne le patchage de l'intitulé du noyau...

Quatrième étape: Compilation du noyau patché
$ make config && make dep && make vmlinux && make modules && make modules_install && cp vmlinux /boot/linux2222
Nota: si vous avez déjà recompilé votre noyau (même si ce n'était pas la même version de noyau 2.2 que cette fois ci), vous pouvez réutiliser la même configuration de modules. Pour celà, recopiez le fichier ".config" de la racine de vos précédentes sources dans celles que vous venez de télécharger:
$ cp ../linux2219/.config .

Si vous n'avez pas ou plus de fichier de config et que vous ne voulez / savez pas le refaire, je vous propose celui que j'utilise pour mes serveurs mono-processeurs (Sun Sparc, attention) : .config
Dans un cas comme dans l'autre, il vous faudra remplacer "make config" par "make oldconfig" dans la ligne de commande ci-dessus.


Cinquième étape: Ajout du nouveau noyau dans silo.conf
$ vi /etc/silo.conf
Chez moi, le contenu de ce fichier ressemble à ceci:
partition=2
root=/dev/sda2
timeout=100
image=2/boot/linux2222
label=linux2222
image=2/vmlinuz
label=linux
image=2/boot/linux2220
label=linux2220
read-only
		
Dans ce cas, le nouveau noyau (ici le 2.2.22) sera chargé par défaut.
Une fois le fichier sauvé, tapez:
$ silo
afin de regénérer l'amorçage.

Sixième étape: On teste le nouveau noyau!
$ reboot
Nota: si la machine ne boote pas, c'est certainement que vous avez oublié une étape ci-dessus ou que vous avez ignoré des messages d'erreurs. Réeffectuez les opérations précédentes plus attentivement. Si jamais vous rencontrez un pb insoluble, ou une incompatibilité avec votre version/machine mailez-moi: Yann Marigo
Pour rebooter sous votre ancien noyau, tapez linux (ou le label donné à votre ancienne version de noyau) à l'invite lilo ou silo.


--======== * ========--
Si votre machine boote sans problème, il ne vous reste plus qu'à convertir les partitions existantes en ext3 !

Septième étape: Convertir ses partitions
Tapez:
$ tune2fs --help
Si l'option "-j" n'existe pas, il va falloir upgrader tune2fs:
$ cd /usr/src
$ wget http://download.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz
$ gzip -d e2fsprogs-1.29.tar.gz
$ tar xf e2fsprogs-1.29.tar
$ cd e2fsprogs-1.29
$ mkdir build
$ cd build
$ ../configure && make && make check && make install
Une fois que tune2fs accepte l'option "-j" (création d'un journal), tapez:
$ tune2fs -j /dev/sdxx
pour du scsi ou
$ tune2fs -j /dev/hdxx
pour de l'ide.

huitième étape: On met à jour fstab
$ vi /etc/fstab
		
Remplacer ext2 par ext3 et veiller à ce que toutes les partitions soient vérifiées en cas de mauvais démontage (plantage/coupure de courant). Pour exemple, voici celui d'une de mes machines:
/dev/sda2       /               ext3    defaults,errors=remount-ro      0	1
/dev/sda3       none            swap    sw				0       0
/dev/sdb1       /var            ext3    defaults                        0	2
proc            /proc           proc    defaults                        0	0
/dev/fd0        /floppy         auto    defaults,user,noauto            0	0
/dev/cdrom      /cdrom          iso9660 defaults,ro,user,noauto         0	0
		

Neuvième étape: Mettre à jour silo/lilo
TODO: car


--======== * ========--
© 2002, Yann Marigo - Cet article est sous FDL.

Page testée sous Mozilla et IE5

[back]