Migration de RedHat 7.0 à 7.3 sur un nouveau disque

Dernière mise à jour (Last update):

Matériel

L'installation du nouveau disque s'est déroulée sans incident, sauf que le lecteur CDROM, qui auparavant était tout seul sur le câble IDE secondaire, avait son cavalier positionné sur "maître". Ceci faisait que le BIOS ne reconnaissait ni nouveau disque ni lecteur CDROM. Après avoir remis le lecteur CDROM en esclave (grâce à la petite main de Marie, 9ans 1/2), tout allait bien.

Installation de RedHat 7.3

L'installation de RedHat 7.3 à partir du CDROM se déroule sans histoire. La carte video Trio S3, la carte Ethernet NETGEAR FA311, la carte son Ensoniq Creative Sound Blaster, et même le Winmodem Zoltrix Conexant HSF 56k (que je n'utilise pas) sont reconnues et traitées automatiquement. Je choisis une installation "station" et non "serveur". Je choisis une sécurité maximale et je n'active que ssh et apache comme services réseau, suivant les bons conseils de Brian Hatch (l'auteur de Halte aux Linux Hackers). Je choisis de ne pas laisser faire l'installateur RedHat pour Lilo. Je récupèrerai et complèterai l'ancienne configuration.

Je le laisse faire ses partitions dans les zones libres. Là je découvre sans trop de surprise que sur les 10Go de l'ancien disque, seuls 8Go étaient reconnus par RH 7.0. Je modifie dans Disk Druid la partition proposée pour l'installation de Linux en ne laissant que 20 Go. Il reste donc libres 20 Go sur le nouveau disque, et 2 Go sur l'ancien disque pour essayer d'autres systèmes d'exploitation; pourquoi pas HURD.

Je démarre avec le CD RadHat 7.3, mais cette fois je tape "linux rescue" pour configurer Lilo à la main. Je tape :
chroot /mnt/sysimage
comme suggéré pour accéder plus commodément au système de fichiers. Il faut déjà pouvoir accéder à l'ancien disque. Pour cela, je monte à la main l'ancienne racine sur l'ancien disque:
mkdir /mnt/root2
mount -t ext2 /dev/hdb1 /mnt/root2
J'édite /etc/lilo.conf en partant d'un copie de /mnt/root2/etc/lilo.conf (i.e. celui de l'ancien système RedHat 7.0 sur l'ancien disque). Je modifie d'abord l'entrée pour l'ancien système, qui était image=/boot/vmlinuz-2.2.16-22 , pour qu'il soit accessible d'ici. Puis j'ajoute l'entrée pour image=/boot/vmlinuz-2.4.18-3 . Comment j'ai trouvé ce qu'il faut mettre ? D'abord j'ai regardé dans /boot le nom de l'image compressée du système linux, vmlinuz-2.4.18-3. Ensuite la commande df me donne à quel device est associé la racine du système :

Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/hdc2 20157868 2025648 17108244 11% /

On aboutit à ceci pour /etc/lilo.conf :

boot=/dev/hda
timeout=50
linear
prompt
default=linux
vga=normal
read-only
map=/boot/map
install=/boot/boot.b
message=/boot/message

image=/mnt/root2/boot/vmlinuz-2.2.16-22
label=linux
read-only
root=/dev/hdb1

other=/dev/hda1
label=dos

image=/boot/vmlinuz-2.4.18-3
label=redhat7.3
read-only
root=/dev/hdc2

Matériel (bis)

Maintenant on peut démarrer sous le nouveau système RedHat 7.3 . Là il y a eu encore une péripétie: le CD d'installation RedHat reconnaissait le nouveau disque; mais au premier boot avec le nouveau disque, l'ordinateur reste coincé sur Lilo. Je ne sais pas quelle intuition m'a inspiré d'aller voir dans le BIOS pour supprimer la reconnaissance automatique du périphérique IDE et enregistrer dans le CMOS non-volatile les paramètres du disque. Et ça a marché!

Migration

Maintenant que je suis avec RH 7.3, il faut déjà pouvoir accéder à l'ancien disque. Pour cela, je monte à la main l'ancienne racine sur l'ancien disque:
mkdir /mnt/root2
mount -t ext2 /dev/hdb1 /mnt/root2

Puis je récupère la fin de l'ancien /etc/fstab (qui se trouve donc sous le chemin /mnt/root2/etc/fstab ) :
/dev/hdb1               /mnt/root2              ext2    defaults        1 1
/dev/hdb5 /mnt/home2 ext2 defaults 1 2
/dev/hdb6 /mnt/usr2 ext2 defaults 1 2

/dev/hda5 /mnt/windowsD vfat debug,noexec 1 2
/dev/hda1 /mnt/windowsC vfat debug,noexec 1 2

que je colle à la fin du nouveau /etc/fstab. Il ne reste plus qu'à créer les répertoires de montage:
mkdir /mnt/root2 /mnt/home2 /mnt/usr2 /mnt/windowsD /mnt/windowsC

puis à monter tout cela:
mount -a

et vérifier tout ça avec df :
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/hdc2 20157868 2025648 17108244 11% /
/dev/hdc1 49743 8655 38520 19% /boot
none 63284 0 63284 0% /dev/shm
/dev/hdb1 101075 81073 14783 85% /mnt/hdb1
/dev/hdb5 6272764 5803602 144249 98% /mnt/home2
/dev/hdb1 101075 81073 14783 85% /mnt/root2
/dev/hdb6 1492311 1342538 72663 95% /mnt/usr2
/dev/hda5 933120 798128 134992 86% /mnt/windowsD
/dev/hda1 1126752 1079776 46976 96% /mnt/windowsC


Je vais pouvoir mettre ensemble mes MP3 qui sont en partie sur le portable, en partie sur l'ancien disque. Pour cela il est bon de récupérer la configuration de gftp. Je copie donc la fin de :
/mnt/home2/$HOME/.gftp/bookmarks
dans $HOME/.gftp/bookmarks

Et maintenant il n'y a plus qu'à lancer gftp, et GuildFtpd sur la portable sous Windows, pour pouvoir remplir $HOME/mp3 . En fait pour aller chercher des choses sur Internet, je pourrai passer par là, puisque le portable sous Windows est connecté à Internet. Ca m'évitera de redémarrer avec l'ancien système RedHat 7.0 .

Partage connection Internet

Je commence par re-installer l'ADSL, suivant les explications très claires de Linux Gegeweb : il a la même configuration Internet que moi. Je récupère les fichiers de l'ancienne installation:
/etc/ppp/pap-secrets
/etc/ppp/chap-secrets
/etc/resolv.conf

Je n'ai pas fait la  Configuration PPPoE en mode console,  mais avec le GUI tkpppoe.

Maintenant pour le partage de connection Internet, pour l'instant j'ai appliqué les recettes de : IP Masquerade HOWTO / firewall-examples pour IPtables et un noyau 2.4 en créant les fichiers:

/etc/rc.d/rc.firewall-2.4
/etc/init.d/firewall-2.4

et en modifiant ceci :

EXTIF="ppp0"
INTIF="eth0"
IPTABLES=/sbin/iptables


Dans /etc/sysctl.conf j'ai changé ceci:
net.ipv4.ip_forward = 1

Le même effet immédiat étant obtenu par :
echo 1 > /proc/sys/net/ipv4/ip_forward
Et cela suffit, c'est la formule magique qui va faire suivre les paquets IP (IP forwarding). Pour être sûr d'avoir la sécurité maximum, j'attends de faire des tests d'intrusion avec NMap ou autre, de l'extérieur. A suivre ...

Avec Redhat 9

J'ai installé le pare-feu "préfabriqué" avec sécurité moyenne, et interface eth0 "de confiance". J'ai pris ici :
YoLinux: Using Linux and iptables / ipchains to set up an internet gateway for home or office
les deux lignes magiques que voici:
# Set up IP FORWARDing and Masquerading
/sbin/iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
/sbin/iptables --append FORWARD --in-interface eth0 -j ACCEPT

Installation de l'imprimante-scanner

Tout marche à merveille du premier coup. J'installe le pilote "HP OfficeJet Linux driver" (une version d' août!). Comme il y a un doute sur la compatibilité avec CUPS, j'utilise lpd. Il y a plusieurs étapes, mais c'est très bien expliqué. Et surtout Ghostscript de ReadHat 7.3 est déjà à la bonne version! Dans printtool je configure le pilote hpijs associé à mon modèle HP PSC 750 . Comme aussi XSane est dans la distribution, je peux immédiatement scanériser avec xscanimage .