Installation Linux sur ThinkPad iSeries 1300 avec Millenium
10/08/2002
Ce portable IBM qui se voulait familial cumule toutes les difficultés
par l'absence de lecteur disquette, de port série, de carte réseau
ainsi que par l'impossibilité de booter sur le lecteur de DVD. Les
seuls liens avec l'extérieur sont la ligne téléphonique
(d'un Lucent winmodem AMR impossible à utiliser sous Linux pour l'instant)
et le port parallèle. La seule raison de l'acquisition d'un tel appareil,
c'est qu'il était bradé et que je ne pouvais payer plus (mais
quelle perte de temps) !
Windows Millenium ne permettant plus l'accès direct au Dos un
certain nombre d'opérations deviennent impossibles (comme de charger
Linux avec loadlin.exe). Le seul accès au Dos est le cdrom de restauration
qui est le seul à pouvoir booter. Lorsqu'on arrive au premier menu,
il suffit de faire Esc pour se retrouver sous Dos (avec la difficulté
que le cdrom de boot qui est en A: est masqué par une commande subst
renvoyant à une ramdisk qui est en D: ! Il faut donc annuler cette
commande en tapant "subst a: /D" qui annule la substitution de a: à
d: permettant d'avoir accès ainsi à la copie des fichiers systèmes
avec la commande SYS. Le reste du cdrom est en X: !!).
A ce niveau on peut tenter une installation de linux avec loadlin.exe en tapant :
X:
cd dosutils
autoboot
A quelque chose près, selon les distributions linux. Il se trouve
que cela marche avec Mandrake 7.0 ou 7.1 mais avec les plus récents
Mandrake 8.0 et Red Hat 7.3 on obtient le message :
UFS : unable to mount root fs on 03:02
La solution que j'ai trouvé (pas forcément la plus simple!)
a été d'installer d'abord la Mandrake 7.1 puis, à partir
de linux et de lilo, de simuler une disquette avec une partition du disque
dur afin d'installer les versions suivantes (ça marche dans ce cas).
La première étape est le partitionnement du disque dur. Opération
délicate où le risque de perdre toutes ses données est
grand. Commencer donc par une sauvegarde (c'est en voulant faire une sauvegarde
sur CD-Writer que j'ai bousillé mon disque dur et que je me suis lancé
dans cette installation!!!). Ensuite, il faut exécuter Defrag.
Normalement, avec le FDISK du Dos on ne peut pas faire grand chose sinon
effacer la partition principale, en perdant les données, pour refaire
plusieurs partitions. A éviter donc et surtout ne jamais répondre
Oui (ou Y) à la gestion de blocs plus grands que 512 pour les grands
disques. Certaines versions ont un bug, il faut donc taper un N majuscule
car, même si un "n" est transformé en "N" à l'écran,
il peut ne pas être pris en compte ensuite...
Heureusement il y a d'autres solutions. Les distributions Linux sont livrés
avec l'utilitaire fips.exe (dans le répertoire dosutils) qui permet
scinder la première partition. C'est une bonne solution mais qui est
très limitée puisqu'on ne peut ni couper d'autres partitions
éventuelles, ni supprimer des partitions (ce pour quoi il faut utiliser
FDISK).
Une alternative intéressante est l'utilitaire FDISK
de FreeDos bien qu'il permette des configurations non-conformes pouvant
poser problèmes à certains systèmes. J'ai apprécié
le programme PRESIZER permettant de redimentionner des partitions et de les
bouger de façon très simple et assez bien sécurisé.
Le Disk Editor
que j'ai trouvé n'écrivant pas sur le disque avec cette version
démo (cratique) ne sert qu'à vérifier les secteurs et
comprendre la documentation sur leur organisation (c'est long et fastidieux).
Il m'a été nécessaire d'effacer toutes les partitions
(alors que le disque de restauration n'y arrivait pas) avec le petit programme
DANGER
bien utile mais qui efface tout dès qu'on le lance (seulement une
fois décompressé bien sûr). Avec tous ces outils et après
différents essais, j'ai donc partionné mon disque ainsi :
C: IBM_PRELOAD 2 G partition dos primaire active FAT 32
D: BOOT2 15 M partition dos primaire (non active) FAT 14
E : Partition Dos Extended 5 G
Inutile de créer des unités logiques dans E: (faire Esc), on
peut le faire si on veut. Toujours faire un SCANDISK sur C: après
partitionnement (inutile et dangereux pour les autres mais il vaut mieux
formater D:, éventuellement avec les pistes systèmes en se
mettant sur A/ et en tapant FORMAT D: /S).
Une fois les partitions crées (et le système restauré
si le partitionnement a été destructif), j'installe Mandrake
7.1 (qui copie les fichiers loadlin sur c:\Mandrake avant de lancer cdrom.bat).
installation minimale dont le seul but et d'installer lilo et de créer
un disque de boot sur D: On peut lui laisser faire un partitionnement automatique
sur la partition extended (il faut supprimer alors la partition extended
pour libérer l'espace disponible). Bien vérifier que /mnt/windows et /mnt/boot2 ne sont pas touchées.
Ecran : Generic lcd 800x600 ou IBM TFT-panel 800-600, attention pas de résolution 32 bits, ni 24.
(ne pas tester il y a une chance sur deux pour que cela plante. On n'a pas
besoin à se stade du graphisme et il vaut mieux utiliser Xconfigurator).
Une fois créé copier la disquette de démarrage de l'installation
voulue (Mandrake 8.2 ou Red Hat 7.3) sur /dev/hda2 :
dd if=/mnt/cdrom/images/boot.img of=/dev/hda2
(rawrite sous dos refuse de fonctionner avec un disque dur exigeant a: ou b:, ce qui n'est pas le cas sous linux)
puis configurer lilo :
vi /etc/lilo.conf
ajouter :
other=/dev/hda2
label = boot
Ce qui devrait suffire. Sinon on peut ajouter :
loader=/boot/chain.b (appel bios)
table=/dev/hda ou bien unsafe (l'un ou l'autre, pas les deux)
map-drive = 0x80
to = 0x81
Attention ne pas mettre de delay, et surtout pas à 0. Un délais
à 0 avec windows en système par défaut rend Linux inaccessible
(même avec la touche shift) et donc la modification de lilo... Préférer
démarrer avec la touche shift donnant accès au choix du système
d'exploitation avec tout le temps qu'on veut (ce qui ne marche pas si on
met un délais).
Ne pas oublier de charger lilo après modifs en tapant :
/sbin/lilo
On est prêt à installer les nouvelles versions. Il suffit de
choisir boot à l'invite de lilo au démarrage de l'ordinateur.
En cas de problème, on peut restaurer ou changer le secteur de boot au choix :
- /sbin/lilo -u
- dd if=/boot/boot.0300 of=/dev/hda bs=446 count = 1 (dangereux)
ou sous dos en faisant
FDISK /MBR qui supprime lilo et donc l'accès à Linux mais ne
supprime pas les partitions ni leur contenu. C'est un dernier recours qu'il
faut éviter et qui peut faire perdre les données en cas de
mauvaise sauvegarde du MBR (secteur de boot).
Eviter d'utiliser le partitionnement automatique de RedHat ou DiskDruid ou
le FDISK de Sun proposé (trop puissant avec une interface minimale
dangereuse). Partitionner avant (avec Mandrake 7.1 dans mon cas) et se contenter
d'indiquer les points de montage (/ et /home).
Hélas, Linux n'est pas vraiment opérationnel sur cette machine
(je ne peux faire marcher avec ni mon Lucent winmodem AMR, ni mon CD-Writer
HP, ni mon imprimante Brother WL-660, ni la carte son...). Il faut changer
tous ces éléments ! A moins que ces drivers ne finissent par
être disponibles...
Table des partitions
Commence en 1be
Il y a 4 fois 16 octets pour les 4 partitions possibles, donnant le début et la fin des secteurs (1-63 dans mon cas)
55 AA sont toujours les 2 derniers octets du secteur racine.
Pour chaque partition, descripteur :
octets
1 amorçable si 80
1 premier secteur
2 secteur et cylindre de début
: cc ss ss ss cc cc cc cc (! cc=no cylindre, ss=no secteur 1-63)
1 1=FAT12 bits, 4=FAT16, 5=Extended, 6=FAT32, 12=FAT32 L
1 numéro de tête (FE=254)
2 secteur et cylindre de fin (FF 2F)
4 numéro du premier secteur de la partition
4 Nombre de secteurs
Secteur d'amorçage :
3 EB xx 90 ou E9 xx xx
8 MSDOS5.0
2 512
1 secteurs par unité
2 1
1 2
2 512
2 nombre de secteurs
1 F8
2 secteurs par FAT
2 secteurs par piste
2 secteur par têtes
4 nombre de secteurs cachés
4 nombre total de secteurs
2 80=C: 81=D: numéro de disque
1 29
4 no de série
10 Label
8 FAT12 ou FAT16
Index