Booter windows 98 avec un serveur PXE à base de raspberry pi

Booter windows 98 avec un serveur PXE à base de raspberry pi - Divers - Linux et OS Alternatifs

Marsh Posté le 23-10-2016 à 14:53:20    

Bonjour à tous. Avant de vous marrer, oui il existe encore des gens qui installent windows 98 en 2016 :D  
J'ai un vieux pentium 2 (ainsi que plein d'autres vieux ordis) qui possède une carte réseau 3Com 3c905b-tx sur laquelle j'ai mis une rom de boot PXE. Sur le raspberry pi, j'ai tout configuré pour le boot pxe, et ça fonctionne très bien ... mais seulement pour les images de disquettes ... c'est déjà pas mal pour lancer memtest, formater le hdd ou lancer tout autre utilitaire de diagnostic pour tester le bon fonctionnement du vieux matos que je peux mettre dedans, mais j'aimerai maintenant pouvoir me passer des CDs ... parce que je peux ^^ (et parce que c'est lent :o). Mais le problème comme j'ai dit, c'est que ça ne fonctionne pas ... (et j'ai essayé avec d'autres images et ça semble être la même chose peu importe l'image iso du CD)
 
Voici le fichier de configuration "default" dans le dossier "pxelinux.cfg" :
 

Code :
  1. include menu.cfg
  2. default vesamenu.c32
  3. prompt 0
  4. timeout 0
  5. MENU BACKGROUND background.png
  6. label dos
  7.     menu label Windows 98SE
  8.     kernel other/memdisk
  9.     append iso raw initrd=other/Win98SE.iso
  10.    
  11. label dos
  12.     menu label Disquette Windows 98
  13.     kernel other/memdisk
  14.     append initrd=other/Win98Flop.img


 
J'ai aussi essayé ceci :

Code :
  1. label 98
  2.     menu label Windows 98SE
  3.     kernel other/memdisk
  4.     APPEND --config-file="ls other/Win98SE.iso || find --set-root other/Win98SE
  5.     .iso;map --heads=0 --sectors-per-track=0 other/Win98SE.iso (0xff) || map
  6.      --heads=0 --sectors-per-track=0 --mem other/Win98SE.iso (0xff);map --ho
  7.     ok;chainloader (0xff)"


sans plus de succès ...
 
Merci de votre aide :jap:

Reply

Marsh Posté le 23-10-2016 à 14:53:20   

Reply

Marsh Posté le 23-10-2016 à 15:03:58    

t'as essayé le topic unique du raspberry pi ?

Reply

Marsh Posté le 23-10-2016 à 15:15:39    

Non, je viens pas trop par ici, je reste surtout sur le topik du vieux matos (je vous laisse deviner pourquoi ^^) du coup je ne savais pas vraiment qu'il en existait un ... Sorry for that.

 

Néanmoins je ne pense pas que le problème soit lié au fait que ce soit un raspberry pi ou que l'ordinateur cible soit un vieux pentium 2, à mon avis c'est plus lié à la configuration de quelque-chose (ou à la ligne "APPEND" dans le fichier "default" ) vu que pour les images de disquettes cela fonctionne très bien


Message édité par dxceor2486 le 23-10-2016 à 15:15:58
Reply

Marsh Posté le 23-10-2016 à 15:25:31    

Drapeau, j'ai pas la solution mais ça m’intéresse [:dawa]


---------------
HWBot | Conso GPU | Who's who PSU | Mes BD \o/ | GReads | MSpaint
Reply

Marsh Posté le 23-10-2016 à 16:09:05    

J'ai aussi essayé le boot PXE (avec iPXE au lieu de pxelinux).
Le boot sur un CD est possible, tant que l'OS reste en mode 8088. Une fois passé en mode 386, il perd une partie des variables set par le BIOS.
Pour mon installation pseudo-automatique, j'ai mis un disque iSCSI avec les fichiers d'install de DOS, Win3x, Win9x et quelques outils pour partitionner/formater les disques.
iPXE attache le disque iSCSI, mais boote sur une image de disquette (j'en ai une avec DOS 6.2 et une autre avec DOS 7 FAT32-compliant), sur lesquelles il y a un pauvre menu batch pour choisir quoi installer.
Une fois qu'on a select une option et choisi les bonnes lettres de lecteur, le script copie les fichiers sur le disque local, puis execute l'installeur depuis le disque local.

 

Par contre, je n'ai pas essayé de booter en PXE avec une Raspberry PI. Es-tu sûr que c'est bien du "vrai" PXE (les stations Sun utilisent un ersatz de dhcp et de TFTP pour booter sur le réseau).

 

Si jamais ton système fonctionne aussi avec des 386 et des 486 (iPXE merde en beauté :o, peut-être que RPL passerait), je serais aussi curieux d'essayer, c'est à cause de ces vieilles daubes que je dois garder des disquettes :o.

 

edit: j'avais mal lu, je croyais que tu voulais aussi faire booter ta Raspberry PI avec PXE, il me semble avoir vu passer ça dans la config de U-Boot :o.

Message cité 1 fois
Message édité par Manisque le 23-10-2016 à 16:10:56

---------------
Si tu bois froid juste après le potage chaud, ça va faire sauter l'émail de tes dents - Monorailcat iz ohverin
Reply

Marsh Posté le 23-10-2016 à 21:37:54    

[:homdex] aussi, car c'est tout à fait le genre de bricolage qui pourrait m'intéresser d'ici quelques temps... par contre à voir en choix entre du transfert en HTTP ou iSCSI.
Quand je lis "parce que c'est lent", hmm à voir derrière quel protocole est utilisé.


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
Reply

Marsh Posté le 23-10-2016 à 22:17:59    

Non mais je parle de la lenteur ... pour les CDs ^^
 
J'avais calculé que le réseau en 100Mbps en débit équivaudrait à ... un lecteur CD 100x (bon si le PC arrive à maintenir les 100Mbps continuellement seulement) mais avec le réseau, y'a aussi pas de délai d'attente pour que le CD redémarre du coup c'est encore mieux de ce côté là aussi. Cerise sur le gâteau, c'est silencieux <3

Reply

Marsh Posté le 27-10-2016 à 22:18:24    

Manisque a écrit :

J'ai aussi essayé le boot PXE (avec iPXE au lieu de pxelinux).
Le boot sur un CD est possible, tant que l'OS reste en mode 8088. Une fois passé en mode 386, il perd une partie des variables set par le BIOS.
Pour mon installation pseudo-automatique, j'ai mis un disque iSCSI avec les fichiers d'install de DOS, Win3x, Win9x et quelques outils pour partitionner/formater les disques.
iPXE attache le disque iSCSI, mais boote sur une image de disquette (j'en ai une avec DOS 6.2 et une autre avec DOS 7 FAT32-compliant), sur lesquelles il y a un pauvre menu batch pour choisir quoi installer.
Une fois qu'on a select une option et choisi les bonnes lettres de lecteur, le script copie les fichiers sur le disque local, puis execute l'installeur depuis le disque local.
 
Par contre, je n'ai pas essayé de booter en PXE avec une Raspberry PI. Es-tu sûr que c'est bien du "vrai" PXE (les stations Sun utilisent un ersatz de dhcp et de TFTP pour booter sur le réseau).
 
Si jamais ton système fonctionne aussi avec des 386 et des 486 (iPXE merde en beauté :o, peut-être que RPL passerait), je serais aussi curieux d'essayer, c'est à cause de ces vieilles daubes que je dois garder des disquettes :o.
 
edit: j'avais mal lu, je croyais que tu voulais aussi faire booter ta Raspberry PI avec PXE, il me semble avoir vu passer ça dans la config de U-Boot :o.


 
Et sinon, je suis assez intéressé de savoir comment tu as fait pour faire un serveur RPL, car je ne trouve pas grand chose à ce sujet sur le net, et encore moins comment le faire sur un serveur comme un raspberry pi ... Ou même que tu détaille un peu plus comment tu as fait pour ton installation pseudo-automatique ^^

Reply

Marsh Posté le 28-10-2016 à 19:34:13    

Bon j'ai essayé de bidouiller à côté pour avoir une disquette de boot DOS en utilisant cette méthode : http://www.netbootdisk.com/pxeboot.htm
ça marche (ENFIN une disquette qui marche !!) mais ... j'ai pas assez de ram pour lancer l'installateur de 98 :cry: (je parle bien évidemment des 640 premiers ko, sinon je vois mal comment 98 pourrait ne pas se lancer avec 128mo de mémoire dispo XD)

Message cité 2 fois
Message édité par dxceor2486 le 28-10-2016 à 23:04:44
Reply

Marsh Posté le 30-10-2016 à 18:46:51    

dxceor2486 a écrit :


 
Et sinon, je suis assez intéressé de savoir comment tu as fait pour faire un serveur RPL, car je ne trouve pas grand chose à ce sujet sur le net, et encore moins comment le faire sur un serveur comme un raspberry pi ... Ou même que tu détaille un peu plus comment tu as fait pour ton installation pseudo-automatique ^^


 
Pour le serveur RPL, j'ai utilisé un truc déjà existant : http://gimel.esc.cam.ac.uk/james/rpld/
J'ai eu un peu de mal à le compiler (en fait en ne faisant pas de make clean, les trucs dont la compilation plante sont déjà là :D). Ça fonctionne sur mon pc (desktop, vu l'utilisation occasionnelle du machin), compilé en amd64, mais j'ai pas essayé de le compiler en MIPS (ni en ARM) pour mon routeur.
 
J'avais détaillé la config côté client et serveur sur ce site.
 
L'installation automatique, je trouvais ça trop moche pour le partager :o, mais si tu insistes, le code est ici.
 

dxceor2486 a écrit :

Bon j'ai essayé de bidouiller à côté pour avoir une disquette de boot DOS en utilisant cette méthode : http://www.netbootdisk.com/pxeboot.htm
ça marche (ENFIN une disquette qui marche !!) mais ... j'ai pas assez de ram pour lancer l'installateur de 98 :cry: (je parle bien évidemment des 640 premiers ko, sinon je vois mal comment 98 pourrait ne pas se lancer avec 128mo de mémoire dispo XD)


 
J'ai eu ce souci avec l'installeur de Win 3.x, un des soucis venait du chainload de plusieurs bootloaders (j'ai déjà la ROM PXE de 3Com qui chainloade iPXE et j'avais essayé de faire le menu avec syslinux et loadlin :o).
Du coup à part virer le maximum d'intermédiaires, tu peux aussi nettoyer l'image sur laquelle tu boote, pour tenter de virer les programmes TSR et les drivers inutiles comme le lecteur CD).
Es-tu sûr d'avoir quand même chargé Himem ? Sans ça, l'installation échoue à coup sûr.


---------------
Si tu bois froid juste après le potage chaud, ça va faire sauter l'émail de tes dents - Monorailcat iz ohverin
Reply

Marsh Posté le 30-10-2016 à 18:46:51   

Reply

Marsh Posté le 02-11-2016 à 10:12:34    

Autre idée, Windows 98 n'a pas vraiment besoin du CD, une copie du principal répertoire sur disque dur suffit.  (  \WIN98 )
 
donc suffit d'une image de disquette DOS avec le packet driver pour la carte 3COM et un moyen de transfert (client FTP? client SSH il y en a un mais c'est lent)
une fois que tu as le répertoire \WIN98 entier sur disque dur (et pourquoi pas avoir lancé smartdrv.exe), il n'y a qu'à exécuter setup.exe.

Reply

Marsh Posté le 02-11-2016 à 10:19:03    

dxceor2486 a écrit :

Bon j'ai essayé de bidouiller à côté pour avoir une disquette de boot DOS en utilisant cette méthode : http://www.netbootdisk.com/pxeboot.htm
ça marche (ENFIN une disquette qui marche !!) mais ... j'ai pas assez de ram pour lancer l'installateur de 98 :cry: (je parle bien évidemment des 640 premiers ko, sinon je vois mal comment 98 pourrait ne pas se lancer avec 128mo de mémoire dispo XD)


 
ah wé le "keeppxe" ça marche mais ça bouffe au moins 200K de mémoire conventionnel avec le pilote universel en sus, donc si tu peux faire ce que tu fais avec le pilote de chez 3COM à la place ça bouffera dix fois moins;

Reply

Marsh Posté le 02-11-2016 à 19:21:41    

blazkowicz a écrit :

Autre idée, Windows 98 n'a pas vraiment besoin du CD, une copie du principal répertoire sur disque dur suffit.  (  \WIN98 )
 
donc suffit d'une image de disquette DOS avec le packet driver pour la carte 3COM et un moyen de transfert (client FTP? client SSH il y en a un mais c'est lent)
une fois que tu as le répertoire \WIN98 entier sur disque dur (et pourquoi pas avoir lancé smartdrv.exe), il n'y a qu'à exécuter setup.exe.


 
C'est exact, mais techniquement, le réseau avec DOS, c'est un peu la misère (aussi bien en termes de config que d'occupation mémoire basse). Avant d'avoir cet affreux bricolage, je bootais Linux en PXE + NFS, puis j'en profitais pour formater le disque et copier les fichiers d'install.
 
Du coup, maintenant j'utilise iSCSI uniquement pour avoir accès à un disque partagé en réseau depuis DOS, sans avoir besoin de configurer le réseau avec DOS.


---------------
Si tu bois froid juste après le potage chaud, ça va faire sauter l'émail de tes dents - Monorailcat iz ohverin
Reply

Marsh Posté le 03-11-2016 à 03:43:08    

Le iSCSI ne marchait pas dans mon cas  (je l'ai fait marcher avec virtualbox pour une linux) mais il y avait SSH pour DOS, avec SCP pour les transferts de fichier, et PKZIP côté DOS pour décompresser une archive.


Message édité par blazkowicz le 03-11-2016 à 03:45:03
Reply

Marsh Posté le 19-11-2016 à 11:07:21    

Tiens j'avais commandé une boot ROM pour carte 3com (j'ai pas trouvé ce fichier sur internet). Ce que je ne savais pas, c'est qu'elle viens avec tout un packaging ! Dedans se trouve un manuel, de la paperasse, la rom (encore heureux) et une disquette de configuration.

 

Et dans le manuel j'ai repéré quelque-chose de fort intéressant :
http://image.noelshack.com/fichiers/2016/46/1479549924-img-20161119-105612.jpg

 

Si j'ai bien compris, c'est démarrer windows 95 depuis une image sur un autre ordinateur !

 

EDIT :
bon je me suis mis un peu à expérimenter le RPL ...
Visiblement rpld est dispo dans les dépôts de debian et il s'installe sur mon rpi.

 

J'ai fait ce fichier de config (pour essayer de booter avec une image de test contenant la disquette de boot de windows 98):

Code :
  1. HOST {
  2.         ethernet = 00:20:af:c8:5e:d7;
  3.         FILE {
  4.                 path="/rplboot/images/DOS7.img";
  5.                 offset=0x200;
  6.                 length=0x5A0;
  7.                 load=0x92000;
  8.         };
  9.         execute=0x92000;
  10.         pacing=2000;
  11. };
 

Problème : quand je lance rpld, il ne se passe rien, on pourrait penser qu'il se lance en arrière plan, mais même pas, quand je regarde dans htop, on peut voir qu'il ne s'exécute pas ...

Message cité 1 fois
Message édité par dxceor2486 le 19-11-2016 à 20:25:16
Reply

Marsh Posté le 19-11-2016 à 23:57:48    

dxceor2486 a écrit :


Problème : quand je lance rpld, il ne se passe rien, on pourrait penser qu'il se lance en arrière plan, mais même pas, quand je regarde dans htop, on peut voir qu'il ne s'exécute pas ...


 
Il faut bien etre root :o
 
Chez moi, ca fonctionne avec cette ligne de commande :

./rpld -C rpld.conf.gpxe -i wlan0 -f


 
Et en effet, en simple user, le programme quitte sans aucun message d'erreur...
 
Pour le reste, je serais incapable de dire si les adresses du bootloader sont correctes ou non...


---------------
Si tu bois froid juste après le potage chaud, ça va faire sauter l'émail de tes dents - Monorailcat iz ohverin
Reply

Marsh Posté le 20-11-2016 à 00:16:59    

Bon eh bien je viens d'essayer avec

 

sudo rpld -C /etc/rpld.conf -i eth0 -f

 

L'ordi démarre, affiche l'écran de recherche du serveur, et au lieu de rester à chercher trouze milliards de serveurs, il passe à un écran avec un curseur clignottant, et l'ordinateur se met à faire un bruit atroce avec le buzzer. En gros ça marche pas, mais au moins on avance et ça c'est bien !

 

Merci beaucoup :jap:
Maintenant va falloir expérimenter avec la config des adresses ... (j'ai fait ça un peu au pif en fait)

Message cité 1 fois
Message édité par dxceor2486 le 20-11-2016 à 00:17:24
Reply

Marsh Posté le 20-11-2016 à 08:47:11    

dxceor2486 a écrit :

Bon eh bien je viens d'essayer avec
 

sudo rpld -C /etc/rpld.conf -i eth0 -f


 
L'ordi démarre, affiche l'écran de recherche du serveur, et au lieu de rester à chercher trouze milliards de serveurs, il passe à un écran avec un curseur clignottant, et l'ordinateur se met à faire un bruit atroce avec le buzzer. En gros ça marche pas, mais au moins on avance et ça c'est bien !
 
Merci beaucoup :jap:
Maintenant va falloir expérimenter avec la config des adresses ... (j'ai fait ça un peu au pif en fait)


 
C'est déjà un pas de plus :o.
J'avais regardé ce lien : http://www.huweb.hu/maques/rpl.htm (certaines références ne sont trouvables que sur archive.org).
 
L'autre ruse pour trouver les adresses d'offset est de chercher le mot 0x55AA (flag de boot des x86) avec un éditeur hexa.
Après quand tu n'as aucune idée, une boucle en bash pour balayer les adresses peut faire l'affaire :D.


---------------
Si tu bois froid juste après le potage chaud, ça va faire sauter l'émail de tes dents - Monorailcat iz ohverin
Reply

Marsh Posté le 20-11-2016 à 10:00:24    

Bon si je met un offset, le pc coince sur le "_" clignotant. Si je n'en met pas, il me dit "invalid system disk
Replace the disk, and then press any key"
L'offset est mis à 0x1FE (j'ai trouvé 0x55AA à cette adresse là)
J'ai mis comme longueur 0x5A0. Je ne sais absolument pas si c'est bon, mais si je met un gros chiffre (comme 0x168000 pour 1.44mo), il affiche un nombre qui grandis sur l'écran de boot rpl et s'arrête à 300 et des poussières et impossible de redémarrer le pc sans l'éteindre et le rallumer

 


Edit: en mettant b40 (soit le double de 5a0) pour la taille, ça affiche à nouveau juste le curseur


Message édité par dxceor2486 le 20-11-2016 à 10:04:45
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed