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