# 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
Avant de modifier les fichiers de configuration, sauvegarder l'état de la VM :
virsh snapshot-create --domain ms-dos6.22
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
MS-DOS 6.22 n'est pas fournit par défaut avec le support de la souris. Le projet 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
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:
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
Une fois la configuration validée, on peut supprimer le ou les snapshots :