Creation d'une installation sur une cf-card pour mon serveur.

Attention: document en cours de rédaction

Le projet


remplacer le disque dur de mon serveur par une cf-card (256 ou 512mo) via un adaptateur ide/cf (en vente sur le net, ou chez ryxeo.com (pub gratuite)

Prérequis


Installation

p
$ qemu-img create hda.img 1g
$ qemu -hda ./hda.img -cdrom ./debian-31r3-i386-binary-1.iso -k fr -boot d
A partir de là, je suis les instructions dans la fenêtre de qemu, et répond aux questions posées:

L'installation est presque finie. Je redémarre, avec qemu, mais cette fois ci sur le pseudo disque dur, et je passe aux aménagements perso pour terminer l'installation:

$ qemu -hda ./hda.img -cdrom ./debian-31r3-i386-binary-1.iso -k fr -boot c
J'ai enlevé les man, et quasi toutes les documentations. Aucun programme sous X, et pas de serveur X configuré, bien sur. De plus, je n'ai pas encore installé apache2 nin bind. Pour l'instant, l'installation fait 222 Mo. Ce qui est marrant, c'est que qemu m'a installé une interface virtuelle sur eth0 avec l'adresse 10.0.2.15, j'ai donc acces au net!

Voila, je suis content, j'ai presque tout. Comment je fais pour faire une image sur ma cf-card, autodemarrable? En premier, je vais recompiler un nouveau noyau avec quelques options en moins, et d'autre en plus. Pour cela, qemu n'est pas la meilleur chose, puisque c'est une émulation. Je vais donc monter mon système, avec l'interface loop, puis je me 'chroot' dedans:
$ cd /var/tmp/
$ su
# mount -o rw -o offset=32256 -o loop ./hda.img /mnt/
# chroot /mnt/
# locale-gen fr_FR.UTF-8

Là, je suis dans ma nouvelle installation 'virtuelle'. La comande local-gen permet d'éviter les message du genre

# aptitude upgrade
Reading Package Lists... Done
Building Dependency Tree
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B of archives. After unpacking 0B will be used.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LC_COLLATE = "C",
        LANG = "fr_FR.UTF-8"
    are supported and installed on your system.
Ensuite, il ne devrait plus y avoir ce problème. En dernier lieu, il faut monter /proc, et configurer /etc/resolv.conf de façon à bien positionner le dns, sinon, pas de réseau!
Je me place dans /usr/src/linux, puis j'utilise les outils habituels pour créer le nouveau noyau (il y a quelques erreurs du, entre autre, aux différences de locales, mais c'est sans importance):
# cd /usr/src/linux
# make menuconfig
# make-kpkg --initrd --append-to-version=.0.1 --revision=.ncc1701d.0.1 kernel-image
# exit
# qemu -hda hda.img -k fr -boot c
Une fois redémarré, plus qu'a installer le nouveau paquet
$ cd /usr/src
$ su
# dpkg -i kernel-image-2.6.17.0.1_.ncc1701d.0.1_i386.deb
# reboot
Et au prochain reboot, vous avez:
$ uname -r
2.6.17.0.1

Copie des fichiers de configuration de l'ancien serveur, sur le nouveau:
j'ai commencé par créer sur le (vieux) serveur, un répertoire de sauvegarde, nommé sauvegarde-config (très original, je sais), ou j'ai copié tous mes fichiers de configuration puis changé le propriétaire! Ensuite, j'utilise rsync sur la futur debian, en collaboration avec ssh (toujours en émulation avec qemu):

$ ~/
$ rsync -e ssh -vr admin@192.168.3.1:sauvegarde-config ./
C'est tout! Pas plus difficile que ça de récupérer des fichiers. Il ne reste plus qu'a copier tout au bon endroit, en faisant attention d'avoir bien copié TOUS les fichiers de configuration de la précédente version du serveur.

Mise en place des fichiers de configurations

je commence par modifier /etc/fstab pour correspondre à la future installation, je place /etc/resolv.conf de façon à allez sur le net tout de suite pour mettre à jour l'installation, installer de nouveau paquets, suppressions de paquets inutiles pour le serveur, ....