Revision History | |
---|---|
Revision 1 | 3/11/2003 |
Installation système, Pb carte Raid. | |
Revision 2 | 24/11/2003 |
Installation BackupPC | |
Revision 3 | 08/12/2003 |
1er sauvegardes réussies | |
Revision 4 | 20/12/2003 |
RedHat -> Mandrake : Pb carte Raid | |
Revision 5 | 05/01/2004 |
Mandrake -> Suse |
Table of Contents
List of Tables
Ce document décri l'installation d'une machine dont le disque dur n'est pas reconnu en standart avec Suse. Je suis passé par 3 installations (RH, Mandrake, Suse) pour des raisons politiques sans importances (si j'avais eu du temps j'aurais fait une Gentoo dans la foulée ...) Je décri aussi le mirroring du site de Suse.
Le PDF n'est pas disponible car les tableaux ne passent pas !
Table of Contents
Il s'agit d'un PC en rack 1u :
Marque : SuperMicro
Modèle : P4SGR/P4SGE Bios 1.1a
Processeur : Celeron 2GHz
Mémoire : 256Mo de type DDR266
Bios : Phoenix v6.00PG
Carte réseau : Intel Pro 1000 (utile car non reconnue lors de l'installation de Suse.)
Note : Pas d'alimentation redondante.
Table of Contents
Suite aux récentes prises de positions litigieuses de Red Hat, le problème se pose du choix du système : RHE, Suse ou Mandrake ? (Je penche pour Mandrake.)
Pour la carte RAID Promise SX6000 : elle n'est pas reconnu par RH9. Il faut créer une disquette avec le driver du site de Promise : http://www.promise.com/support/download/download2_eng.asp?productId=86&category=All&os=100.
Sous MS-windows, cela nécessite le programme rawrite qui peut être trouvé ici : http://www.tux.org/pub/dos/rawrite/. (Sous Linux dd suffit.)
Quand on boot avec le CD de RH9, il faut taper linux dd à l'invite du boot et inserer la disquette contenant le driver (il est sur \\SvBackup\Drivers\Promise SX6000\.) Suivre les instructions pour charger le driver. Ce driver ce retrouvera ensuite dans la liste des devices drivers qu'on pourra ajouter. En effet : Red Hat ne détecte pas de disques. Quand il le propose, il faut donc ajouter puis choisir le device suivant : Promise SuperTrack Driver v1.34 build 1.
Je me suis créé un compte personnel sur RHN pour pouvoir faire les mises-à-jour. Il faut être patient, mais ça marche. (Conseil : mettre à jour les packages par groupe de 3 ou 4 maximum.)
Attention : la première mise à jour concerne l'appli de mise à jour elle même, à recuperer sur le site de RH ... Suivre les instructions du site de RH (enregistrer les RPM sur le disque et les installer.)
Table of Contents
Le site de Promise ne fourni pas d'image disque directement utilisable pour l'installation de Mandrake. Il faut donc créer cette disquette à la main. Sur le principe, il faut compiler le driver à partir de ses sources : http://www.promise.com/support/download/download2_eng.asp?productId=86&category=All&os=100 sur une machine en Mdk9.2 (car la compilation nécessite la présence des sources du même kernel qui sera utilisé lors de l'instalation, à savoir 2.4.22) puis le mettre sur une disquette. Enfin, booter sur le CD d'install avec l'option linux updatemodules ou expert.
Récupération des sources du kernel : urpmi kernel-source.
Récupération des sources du pilote dans /usr/src/st6000src_1.34 :
curl http://www.promise.com/support/file/driver/1_st6000src_1.34.zip > st6000src_1.34.zip cd /usr/src unzip st6000src_1.34.zip
Compilation du pilote : Il faut suivre les instructions du fichier README.txt. Notamment, il faut commencer dans le kernel par make xconfig puis make dep avant de compiler le pilote, même si on ne veut pas utiliser ce kernel ! Ensuite dans les sources du pilote et faire make KERNEL_SOURCE_DIR=/usr/src/linux. Cela doit créer un fichier pti_st.o.
Création de la disquette
Le systeme de fichier sur la diquette doit être ext2 (et non fat ou vfat par défaut.) Il faut donc prendre quelques précautions :
mkfs.ext2 /dev/fd0 # crée le système de fichier mount -t etx2 /dev/fd0 /mnt/floppy # monte la disquette en présisant le type (plus prudent)
Copier le fichier pti_st.o sur la disquette.
Dans le cas d'une installation avec l'option "expert", seule la présence du fichier pti_so.o est requise. Ensuite lorsqu'il le demande il faut choisir scsi_mod.o pour acceder au disque.
Pour créer une disquette "updatemodules" (voir : http://cvs.mandrakesoft.com/cgi-bin/cvsweb.cgi/~checkout~/gi/mdk-stage1/doc/UPDATEMODULES?rev=1.4) il faut ajouter un fichier to_load contenant le simple mot : pti_st (des lignes vides provoquent des erreurs, mais ne gènent pas l'install.)
Ne pas oublier de démonter la disquette avant de la retirer : umount /mnt/floppy !
Pour se conformer aux normes du groupe, on utilise une distribution Suse.
Il n'existe pas de CD d'installations à télécharger (comme pour Mandrake, Red Hat, Gentoo ...) On télécharge juste un petit CD de boot et on lui indique un FTP (ou TFTP, NFS ... ) où trouver le reste de l'installation. En l'occurence, on utilise un mirroir local bien plus rapide que le FTP de Suse !
ftp://ftp.suse.com/pub/people/hvogel/Update-Media-HOWTO/index.html : Comment créer une disquette contenant les drivers. (Il est aussi possible de les mettre sur le FTP d'install.)
http://sdb.suse.de/sdb/en/html/keylist.BOOT.html : Pour les problèmes relatifs au boot ...
lire le README dans les sources du pilote Promise !
http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/custom-guide/s1-custom-kernel-modularized.html
La machine ne voit pas de disque dur, seule la carte RAID-IDE qui n'est pas reconnue en standart ! D'où la difficulté : le BIOS de la carte RAID est juste capable de booter le MBR, pour le reste, il faut se débrouiller.
Le site de Promise ne fourni pas d'image disque directement utilisable pour l'installation de Suse 9.0 (Il existe pour d'anciennes versions.) Il faut donc créer cette disquette à la main. Sur le principe, il faut compiler le driver à partir de ses sources : http://www.promise.com/support/download/download2_eng.asp?productId=86&category=All&os=100 sur une machine en Suse 9.0 (car la compilation nécessite la présence des sources du même kernel qui sera utilisé lors de l'instalation, à savoir 2.4.21) puis le mettre sur une disquette. Enfin, booter avec le CD d'installation en appuyant lorsqu'il le propose sur F3 : "Driver update".
Création de la disquette : Identique à la création pour Mandrake. Il faut voir aussi le modèle des disquettes d'installation Suse. L'important est d'avoir le module sur la disquette.
A la fin de l'install, il faut stopper le reboot automatique et ouvrir une console ou redemarrer sur le CD de boot en mode rescue pour avoir une console.
L'opération consiste alors à mettre les drivers nécessaires dans le fichiers initrd.img et à relancer LILO (ou GRUB) (inutile si la taille du fichier n'a pas trop changé.) Le fichier /boot/initrd.img contient un système de fichier compressé. On peut donc le décompresser et le monter sur un répertoire, ajouter des fichiers puis le démonter et le recompresser.
Aller dans /boot
Créer un répertoire initrd.dir
recopier le ficher /boot/inird-x.xx.xx-xx.xx.img dans /boot/inirdrd-x.xx.xx-xx.img.gz (noter le .gz en plus.)
décompresser l'image : gunzip inirdrd-x.xx.xx-xx.img.gz
monter l'image : mount inirdrd-x.xx.xx-xx.img initrd.dir -o loop
Aller voir dans /boot/initrd.dir/ recopier les modules et changer le script linuxrc pour charger les nouveaux modules.
Démonter le système de fichier : umount initrd.dir et recompresser l'image : gzip -9 -n inirdrd-x.xx.xx-xx.img. recopier l'image compressée dans /boot à la place de l'ancienne.
Dans le doute, si fichier image a trop changé, il faut relancer LILO. Pour cela il faut écrire le fichier /etc/lilo.conf sur le modèle d'une autre Suse. En effet, en bootant en mode rescue, on n'a pas de lilo.conf.
Attention : pour mettre à jour le kernel, il faut récuperer les sources, configurer, compiler et ajouter le pilote de Promise recompilé pour le nouveau kernel.
Voici ce qui a été fait étape par étape :
Récuperer les sources du kernel dans /usr/src/linux-xx.xx ... et les sources du pilote Promise dans /usr/src/st_6000src_x.xx
Eventuellement, nettoyer l'environnement : make clean ; make mrproper dans src/linux (cela détruit la dernière configuration) et rm *.o dans src/st_6000src. Effacer les traces de précédents essais : quelques fichiers dans /boot/ et un répertoire dans /lib/modules/, plus des entrées dans le menu /boot/grub/menu.lst.
Tout ce qui sui ce passe dans /usr/src/linux... : Changer le numéro de version du kernel vi Makefile changer EXTRAVERSION en tout début de fichier : il suffit de remplacer "custom" par la date, ou un numéro qu'on incrémente à chaque essai.
Pour ne pas partir de zéro, il est possible de récuperer la dernière bonne configuration : les fichiers sont /boot/config-x.xx.xx qu'il suffit de copier dans .config.
Lancer la configuration : make xconfig. C'est la partie la plus délicate => Faire un chapitre à part ! Citons déjà les point les plus importants : autoriser le RAMDISK pour initrd ! En effet : le pilote Promise est livré sous forme de module à compiler : il doit donc se trouver dans le ramdisk créé au démarrage pour pouvoir être chargé dans le kernel et donner accès au disque dur !
Lancer make dep ; make clean. Puis make bzImage, puis make modules et make modules_install. Vérifier que les deux dernières commandes se finissent bien : ce sont les parties les plus susceptible de génerer des erreurs. Dans ce cas revenir au point 2 et essayer de modifier la config.
Aller dans les sources du pilote Promise et lancer make KERNEL_SOURCE_DIR=/usr/src/linux-x.xx.xx pour le compiler.
Copier le fichier pti_st.o compilé dans /lib/module/x.xx.xx-xx.x/kernel/drivers/scsi/. (Ce répertoire est créé par make modules_install.)
Retourner dans les sources linux pour lancer make install ! Si la commande se fini bien, il est possible de rebooter pour tester.
Il est possible de vérifier si le pilote est bien dans l'image disque qui est chargé en ram au démarrage.
Aller dans /tmp
Créer un répertoire initrd.dir
recopier le ficher /boot/inird-x.xx.xx-xx.xx.img dans /tmp/inirdrd-x.xx.xx-xx.img.gz (noter le .gz en plus.)
décompresser l'image : gunzip inirdrd-x.xx.xx-xx.img.gz
monter l'image : mount inirdrd-x.xx.xx-xx.img initrd.dir -o loop
Aller voir dans /tmp/initrd.dir/lib si il se trouve un fichier pti_st.o ... si il n'y est pas, il est inutile d'essayer de booter avec ce kernel.
Note : le fichier /etc/modules.conf doit contenir une ligne alias scsi_hostadapter pti_st. Il n'y a pas à la modifier. Ce fichier contient, à priori les modules a charger au démarrage.
Afin de beneficier de l'isolation des systèmes de fichier sans être frustré par la suite de ne plus pouvoir les redimensionner : j'ai utilisé le système Logical Volume Manager. Il est proposé en standart et certains l'utilisent avec BackupPC (notamment pour les SnapShot.)
Voici donc la configuration initiale :
Table 5.1. df -h
SysFichier | Taille | Utilisé | Dispo. | Util% | Monté sur |
---|---|---|---|---|---|
/dev/sda1 | 194M | 12M | 173M | 7% | /boot |
/dev/Volume00/LogVol00 | 993M | 114M | 829M | 13% | / |
/dev/Volume00/LogVol02 | 2.9G | 1.4G | 1.5G | 48% | /usr |
/dev/Volume00/LogVol03 | 993M | 21M | 922M | 3% | /home |
/dev/Volume00/LogVol04 | 993M | 20M | 923M | 3% | /tmp |
/dev/Volume00/LogVol05 | 2.9G | 113M | 2.7G | 5% | /var |
/dev/Volume00/LogVol06 | 97G | 33M | 92G | 1% | /var/backuppc |
Le nom complet de la machine est svbackup01.padrol.fr. Specifier le domaine permet d'éviter certains messages d'avertissement (notamment pour l'envoi des mails.)
Un job cron met à jour toute les nuits le mirroir de Suse, pour pouvoir faire les installations et mise-à-jour. Le script est dans /root/cronjobs/mirror-suse.sh et rapporte son activité dans mirror-suse.log.
Un pure-FTP tourne pour servir de mirroir de Suse. (Rappel : la racine du ftp est dans /srv/ftp.)
Table of Contents
Le site de Suse est souvent débordé. On fait donc un mirroir sur une machine locale avec rsync. On n'a pas pu faire de rsync directement sur le site de Suse. On utilise un miroir de cette liste : http://www.suse.de/en/private/download/ftp/index.html. Un cron lance toute les nuits les commandes suivantes :
#!/bin/sh # # Synchronisation des FTP Suse pour installer et surtout mettre à jour plus rapidement cette distrib. # #mirroir=mirrors.mathematik.uni-bielefeld.de::pub/linux/suse/ftp.suse.com/pub/suse mirroir=fr2.rpmfind.net::linux/SuSE-Linux rsync -vrzl --delete ${mirroir}/i386/update/9.0/ /srv/ftp/suse/i386/update/9.0 # # Sans doute inutile, le repertoire de base qui ne doit pas changer, à priori. # #rsync -vrzl --delete ${mirroir}/i386/9.0/ /srv/ftp/suse/i386/9.0
Concernant les options de rsync :
Permet de supprimer les fichiers qui ne sont plus sur le serveur.
Liste les fichiers copiés
Recrée les liens symboliques.
Compresse
Récursif
Ce mirroir est partagé en FTP (on pourrait aussi utiliser TFTP, NFS, SMB ... car on reste sur des IP internes) avec pure-FTP (serveur FTP par défaut, léger et très sécurisé.)