Je dépose ça ici pour mes propres besoins et si ça peut servir à quelqu'un... J'ai rien inventé ou presque, mais ça prend du temps de trouver toutes les infos sur le net donc voici une petite compilation...
Problème: Pour ouvrir un fichier (Bonjour les formats propriétaires non documentés...
) il faut faire tourner un vieux logiciel qui nécessite Windows 98. Non, pas XP, ça ne marche pas. (Wine j'ai pas testé honnêtement, faudrait voir, mais par expérience ça ne marche pas toujours non plus.)
Solution: Une machine virtuelle - mais c'est pas aussi simple.
Logiciels: KVM+QEMU
Host/Hôte: Debian 10
Détails du problème pour info: Quand on démarre le logiciel (sous XP) il y a une erreur "pas assez de mémoire". En fait c'est le contraire, il y en a plutôt trop ou disons le logiciel veut utiliser je ne sais quel interface DOS et sous XP ben ça ne marche plus (pour rappel, XP utilise une nouvelle architecture, contrairement à W98 qui est une espèce de surcouche DOS). Diminuer la quantité de RAM ne règle pas le problème.
XP peut être installé et utilisé avec KVM/QEMU et libvirt virt-manager (donc l'interface graphique) sans problème, par contre W98 ne veut pas, soit ça refuse de démarrer soit ça crashe pendant l'install. Il faut faire les choses à la main, en console comme un vrai geek.
Supposition: On a un ISO du CD d'installation de Windows win98.iso et la clé de licence qui va bien. Tout ça doit exister sur le net mais bon, c'est illégal de le prendre là-bas!
J'ai utilisé un vieux CD que j'avais encore (Ah souvenirs...
).
Création d'un disque dur virtuel:
qemu-img create -f qcow2 w98.cow 512M |
(Je pense que l'extension devrait être qcow2 plutôt, enfin bref.)
Démarrer la VM:
qemu-system-x86_64 -cdrom win98.iso -boot order=d -drive file=w98.cow -m 512 -device sb16 -display vnc=127.0.0.1:0 |
Se connecter depuis une autre console:
(Si vncviewer n'est pas installé: sudo apt install tigervnc-viewer)
(On peut aussi ne pas spécifier -display etc car il va créer une interface VNC par défaut, mais en utilisant IPv6 - donc ::1:5900 - ce qui est bloqué par mon iptables. Faudra que je revois ça un jour.)
Installation classique de W98, si ça plante faire Ctrl+C dans la première console et redémarrer la VM (re-exécuter qemu-system-etc).
Une fois l'installation faite on peut changer l'ordre de boot et "éjecter" le CD d'installation, donc:
qemu-system-x86_64 -boot order=c -drive file=w98.cow -m 512 -device sb16 -display vnc=127.0.0.1:0 |
Si on veut "insérer" un autre CD logiciel.iso:
qemu-system-x86_64 -cdrom logiciel.iso -boot order=c -drive file=w98.cow -m 512 -device sb16 -display vnc=127.0.0.1:0 |
Si on veut transférer des données dans le système utiliser un ISO qu'on peut créer avec Xfburn p.ex. Commande comme indiquée.
Si on veut avoir une meilleure résolution et plus de couleurs:
qemu-system-x86_64 -boot order=c -drive file=w98.cow -m 512 -device sb16 -vga cirrus -display vnc=127.0.0.1:0 |
(remarquez l'ajout du paramètre -vga cirrus)
Sous W98 il faut forcer l'installation d'un pilote Cirrus livré sur le CD d'install et changer résolution+nombre de couleurs. Si on se retrouve avec une espèce de grillage sur l'écran désactiver l'accélération matérielle sous W98.
Par ailleurs le -device sb16 c'est une carte son, si on en a pas besoin on peut virer cette partie.
Si on veut sortir des données de la VM: Les sauvegarder dans la VM p.ex. directement sur C:, ensuite éteindre W98 (!) et dans le système hôte:
sudo modprobe nbd max_part=8
sudo qemu-nbd --connect=/dev/nbd0 w98.cow sudo mount /dev/nbd0p1 /mnt |
On peut accéder à C: sous /mnt pour copier les données.
Enfin:
sudo umount /mnt
sudo qemu-nbd --disconnect /dev/nbd0 |
Voilà. Sans garantie toussa. 
Message édité par rat de combat le 20-11-2020 à 16:02:45