{{tag>application virtualisation vm kvm qemu dos}}
====== KVM : Installer MS-DOS 6.22 ======
:TODO_DOCUPDATE:
# creation du disque
mkdir ~/KVM/ms-dos6.22
cd ~/KVM/ms-dos6.22
qemu-img create -f qcow2 vda 500M
Création de la VM avec **virt-install** :
virt-install --name dos \
--metadata title="MS-DOS 6.22",description="Microsoft DOS 6.22" \
--osinfo msdos6.22 \
--machine pc --cpu 486 --memory 64 --vcpu 1 \
--graphics vnc \
--sound sb16 \
--install no_install=yes \
--boot fd,hd,bootmenu.enable=on \
--disk device=floppy,bus=fdc \
--disk path=/home/yoann/KVM/ms-dos6.22/vda,format=qcow2 \
--disk device=cdrom,bus=ide \
--autoconsole graphical
La procédure d'installation se lance automatiquement lors de la mise sous tension de la VM.
Pour charger la deuxième disquette demandée par l'installateur :
virsh change-media --domain ms-dos6.22 fda --eject
virsh change-media --domain ms-dos6.22 fda --source /home/yoann/KVM/install_files/ms-dos6.22-d2.ima --insert
On procède de la même manière pour introduire l' image de la disquette 3. En fin de procédure, on retire la dernière disquette
Retirer la disquette 1 présente dans la configuration de la VM. Le lecteur fda est préservé mais sera vide au prochain démarrage :
virsh change-media --config --domain ms-dos6.22 fda --eject
# Pour vérifier que le lecteur est bien vide
virsh domblklist --domain ms-dos6.22
Arrêter la VM
# NB : pas d'effet de virsh shutdown
virsh destroy ms-dos6.22
Modifier la séquence de boot pour démarrer directement sur le disque interne :
virsh edit --domain ms-dos6.22
Tester le système :
virsh start ms-dos6.22
remote-viewver vnc://localhost
===== Support du CD-ROM =====
Avant de modifier les fichiers de configuration, sauvegarder l'état de la VM :
virsh snapshot-create --domain ms-dos6.22
En cas d'erreur, on pourra facilement retourner à l'état initial avec la commande ''virsh snapshot-revert''
Copier les pilotes ''OAKCDROM.SYS'' dans le dossier ''C:\DRIVERS\CDROM'' puis modifier le fichier ''C:\CONFIG.SYS'' Ajouter la ligne :
DEVICEHIGH=C:\DRIVERS\CDROM\OAKCDROM.SYS /D:CD01
Modifier le fichier AUTOEXEC.BAT, ajouter la ligne en début de fichier :
LH C:\DOS\MSCDEX.EXE /D:CD01
Redémarrer la VM depuis le système hôte :
virsh reset --domain ms-dos6.22
La VM détecte à présent le lecteur CDROM :
{{dos-boot-cdrom-detected.png}}
===== Support de la souris =====
MS-DOS 6.22 n'est pas fournit par défaut avec le support de la souris. Le projet [[https://cutemouse.sourceforge.net/|CuteMouse]] propose des pilotes compatibles, entre autre, avec l' environnement virtualisé KVM/QEMU.
cd /tmp
wget "http://cutemouse.sourceforge.net/download/cutemouse21b4.zip"
# Création d'une image disque
mkfs.msdos -C ctmouse2.1.img 1440
# Monter l'image et décompresser l'archive
sudo mount -t msdos -o loop,rw,uid=1000,gid=1000 ctmouse2.1.img /mnt/
unzip cutemouse21b4.zip -d /mnt/
sudo umount /mnt
Monter l'image disque précédemment créée dans le lecteur de disquette de la VM :
# Utiliser le chemin complet vers l'image
virsh change-media ms-dos6.22 fda /full/path/to/ctmouse2.1.img --insert
Depuis le système invité :
A:
CD BIN
CTM-FR
Ejecter le disque virtuel et redémarrer la VM :
virsh change-media ms-dos6.22 fda --eject
virsh reset ms-dos6.22
:TODO_DOCUPDATE:
TEST en cours
# Création d'une image disque
qemu-img create -f qcow2 ~/KVM/sysinstall/ms-dos6.22/drivers-disk.qcow2 1440
# Attacher l'image au lecteur de l'invité
virsh change-media --live ms-dos6.22 fda ~/KVM/sysinstall/ms-dos6.22/drivers-disk.qcow2
# Formater le disque depuis l'invité
FORMAT A:
===== Support du son =====
COPY A:\DRIVERS\SB16\SBBASIC.EXE C:\DRIVERS\SB16
C:
CD \DRIVERS\SB16
Déclarer la variable BLASTER dans config.SYS
EDIT CONFIG.SYS
erreur
Not enough conventionnal memory is available.
Remove some or all resident programs before running INSTALL.
Press a key to continue.
Après installation des pilotes et redémarrage de la VM, toujours pas de son.
Vérifier que qemu supporte pipewire :
qemu-system-x86_64 -audiodev help | grep pipewire
===== Suppression des snapshots =====
Une fois la configuration validée, on peut supprimer le ou les snapshots :
===== Applications =====
* MS Dos Shell
* Norton Commander
* Norton Backup
* [[https://winworldpc.com/product/lan-manager/2x|MS LAN Manager 2.2]]
[[https://dosdays.co.uk/dos_software_index.php|Liste d'applications et jeux DOS]]
===== Références =====
* [[https://blog.raduzaharia.com/system-emulation-using-qemu-ms-dos-on-a-80486-cpu-b477431064aa|QEMU : Installer DOS sur un système émulé 80486 (raduzaharia.com) (en)]]
* [[https://gunkies.org/wiki/Installing_MS-DOS_on_Qemu| Installer MS-DOS via QEMU (gunkies.org) (en)]]
* [[https://www.qemu.org/docs/master/ | Documentation en ligne QEMU (qemu.org) (en)]]
* [[https://people.redhat.com/~cohuck/2022/01/05/qemu-machine-types.html | Les types de machines de QEMU (redhat.com) (en)]]
* [[https://archive.org/download/msdos622fra|Disquettes d'installation MS-DOS 6.22 (archive.org) (en)]]
* [[https://www.chaoscontrol.org/stories/install-ms-dos-6.22-in-a-virtual-machine-for-fun-and-profit/|Installer MS-DOS 6.22 dans Virtualbox (chaoscontrol.org) (en)]]
* [[https://bugzilla.redhat.com/show_bug.cgi?id=672987|virt-install ne démarre pas depuis la disquette (redhat.com) (en)]]
* [[https://www.ndchost.com/wiki/libvirt/change-media|virsh : charger un média (ndchost.com) (en)]]
* [[https://stackoverflow.com/questions/2019463/shutdown-computer-in-ms-dos-using-acpi|Comment arrêter une VM sous DOS via ACPI (stackoverflow.com) (en)]]
* [[https://madsenworld.dk/con_auto/index-uk.htm | Guide de modification de CONFIG.SYS et AUTOEXEC.BAT (madsenworld.dk) (en)]]
* [[https://theblackzone.net/posts/2018/msdos622-in-qemu/|Installer MS-DOS 6.22 avec QEMU (theblackzone.net) (en)]]
* [[https://dfarq.homeip.net/using-a-cd-rom-drive-in-ms-dos/|Utiliser le lecteur CD-ROM sous DOS (dfarq.homeip.net) (en)]]
* [[https://www.richud.com/wiki/Ubuntu_Create_Floppy_Image|Création d'image disquette (richud.com) (en)]]
* [[https://www.philscomputerlab.com/creative-labs-drivers.html|Pilotes Sound Blaster (philscomputerlab.com) (en)]]
* [[https://askubuntu.com/questions/1314825/how-to-enable-sound-in-qemu|Comment activer le son dans QEMU ? (askubuntu.com) (en)]]
* [[https://libvirt.org/formatdomain.html#audio-backends|Les backends audio dans QEMU (libvirt.org) (en)]]
* [[https://discussion.fedoraproject.org/t/unable-to-properly-setup-sound-for-qemu-kvm/136152|Paramétrer le son pour une VM QEMU-KVM (fedoraproject.org) (en)]]
* [[https://blog.vmsplice.net/2011/04/how-to-pass-qemu-command-line-options.html|Comment passer des arguments à QEMU via libvirt ? (vmsplice.net) (en)]]
* 📹 [[https://www.youtube.com/watch?v=XEBMWiLBKuI|Installer une VM Windows 3.11 for Workgroups sur QEMU/KVM support réseau,son,SVGA (youtube.com, VolitankTech) (en)]]