Pourtant, un lecteur de disquettes est bien utile pour:
- refaire des disquettes 3.5" physiques à partir d'images trouvées sur internet, par exemple pour des ordinateurs plus vieux (années 80/90)
- faire des images de ses disquette 3.5"
- tester de vielles disquettes 3.5" dans une machine virtuelle old school' de type DOS.
Pour les images de disquettes, la solution haut de gamme (>100 euros) consiste à acquérir une carte Kryoflux. Il y a aussi les lecteurs de disquette 3.5" USB, mais qui ont certaines limitations quand on veut faire des images. Une solution intéressante consiste alors à utiliser un lecteur 3.5" interne sur un port Floppy, comme au bon vieux temps. Le problème, c'est que les ordinateurs récents n'ont plus de port floppy. Mais il n'y a pas si longtemps (moins de 10 ans), ont pouvait toujours voir ce type de port sur les cartes mère.
J'ai récemment récupéré un de mes anciens PC (Core 2 Duo de 2010), qui est suffisamment ancien pour toujours avoir un port floppy sur la carte mère, mais suffisamment récent pour accepter une distrib Linux moderne (gratuit et très bien pour bidouiller). Je lui ai installé Ubuntu MATE 18.04 LTS (la version 'MATE' a une interface graphique légère) et je lui ai rajouté un lecteur de disquette 3.5" interne. Globalement, j'ai assez galéré pour accéder au lecteur de disquette dans Linux lui même, pour manipuler les images de disquettes et aussi pour accéder directement le lecteur de disquette dans des machines virtuelles. Linux semble lui aussi ne plus vouloir supporter les lecteurs de disquettes en standard, et les logiciels de virtualisation ne sont pas beaucoup mieux .... Par contre, il reste quand même dans Linux un support de disquettes, il faut juste savoir le trouver. J'ai donc décidé de partager mes notes sur le forum.
Infos:
- j'utilise nano comme éditeur de texte, mais on peut utiliser vi, emacs etc...
- Je vais faire évoluer ce tuto au fur et à mesure que j'avance
########################################################################################
# 1 - Montage des disquettes dans un Linux recent
########################################################################################
# 1.1 - S'assurer que le floppy est bien activé dans le BIOS du PC
#=============================================================
# Au boot, aller dans le menu du bios et faire les changements nécessaires si besoin
# 1.2 - S'assurer que le module 'floppy' de Linux est chargé
#=============================================================
# Par défaut, les nouvelles distribs de Linux ne chargent plus nécessairement le module 'floppy' du système d'exploitation.
# On peut vérifier s'il est chargé avec la commande suivante:
Code : Tout sélectionner
lsmod | grep floppy
# Il peut être chargé manuellement, comme ceci:
Code : Tout sélectionner
sudo modprobe floppy
# 1- Ajouter 'floppy' à la fin de /etc/modules pour chargement automatique
Code : Tout sélectionner
sudo nano /etc/modules
Code : Tout sélectionner
floppy
# il ne se charge pas automatiquement. Il faut donc enlever 'floppy' de la blacklist, par exemple en le commentant.
Code : Tout sélectionner
sudo nano /etc/modprobe.d/blacklist-floppy.conf
Code : Tout sélectionner
#blacklist floppy
Code : Tout sélectionner
sudo reboot
Code : Tout sélectionner
lsmod | grep floppy
Code : Tout sélectionner
ls -l /dev/fd*
# 1.3 - Configuration du répertoire de montage des disquettes
#=============================================================
# Dans le monde Linux, 'monter' un disque ou une disquette consiste à le rendre visible dans l'arborescence de fichiers.
# Il faut s'assurer que le répertoire de montage pour les disquettes est bien configuré dans le fichier /etc/fstab
Code : Tout sélectionner
sudo nano /etc/fstab
# Il doit # y avoir quelque chose comme ça dans /etc/fstab:
Code : Tout sélectionner
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
# Liste tous mes groupes
Code : Tout sélectionner
groups
Code : Tout sélectionner
sudo usermod -a -G floppy <username>
Code : Tout sélectionner
groups
# 1.4 - 'Montage' et 'demontage' des disquette
#=============================================================
# Pour 'monter' une disquette insérée dans le lecteur (c'est à dire pouvoir l'accéder depuis Linux)
# Note: ne pas monter la disquette avec sudo, sinon, on n'a pas la permission
# d’écrire sur la disquette.
Code : Tout sélectionner
mount /media/fd0
Code : Tout sélectionner
umount /media/floppy
########################################################################################
# 2 - Création et écriture des images de disquette (img)
########################################################################################
# 2.1 -Configuration pour un accès à bas niveau du lecteur de disquettes
#=================================================================
# Malgré le fait qu'on est dans le groupe 'floppy' et qu'on peut monter des disquettes (avec mount),
# on n'a pas le droit d’accéder le lecteur de disquette à bas niveau, ce qui est nécessaire la commande 'dd'.
# Si on veut pouvoir faire des images de disquette ou en écrire, sans avoir besoin de faire 'sudo', il faut se mettre
# dans le groupe 'disk', qui est le groupe de /dev/fd0
# 1 - Vérifier le groupe de /dev/fd0
Code : Tout sélectionner
ls -la /dev/fd0
Code : Tout sélectionner
brw-rw---- 1 root [b]disk[/b] 2, 0 oct. 28 08:26 /dev/fd0
Code : Tout sélectionner
sudo usermod -a -G disk <username>
Code : Tout sélectionner
groups
The disk device nodes are group accessible to disk so that programs that need access to them will set their group ID to be disk. This group has write access to all the raw disk devices (/dev/hd* and /dev/sd*), so assigning users to group disk is both dangerous and a security risk.
# 2.2 - Création d'image de disquette à partir de disquette physique
# ou de disquette physique à partir d'image
#=================================================================
# Notes importantes:
# 1- il faut que la disquette ne soit pas montée dans Linux. Au besoin, la démonter.
# 2- quand on fait une image d'une disquette, il vaut mieux protéger la disquette en écriture car il est très facile d'inverser les
# options 'if' (input) et 'of' (output) et donc d'écraser la disquette qu'on cherche à sauvegarder
# A- Créer une image (.img) à partir d'une disquette physique
Code : Tout sélectionner
dd if=/dev/fd0 of=./<mon image>.img
Code : Tout sélectionner
dd if=./<mon image>.img of=/dev/fd0
# La copie doit être moins bas niveau qu'avec une carte Kryoflux
# (à creuser)
########################################################################################
# 3 - Accéder au lecteur de disquettes dans une machine virtuelle (DOS ou autre)
########################################################################################
Il est parfois pratique d'installer un système ancien comme DOS dans un PC moderne. Pour ça, on utilise la virtualisation. Les machines virtuelles crées peuvent utiliser des fichier images (.img pour les disquettes, .iso pour les CD), mais on peut vouloir aussi utiliser des supports physiques, par exemple tester ses disquettes 3.5" avant de les mettre sur un vrai ordinateur ancien. Le lecteur de CD est généralement bien supporté par les machines virtuelles, mais ce n'est pas (plus?) le cas du lecteur de disquette.
Il y a plusieurs bons logiciels de virtualisation, mais finalement, peu marchent bien quand on a un ordinateur un peu ancien avec un lecteur de disquette sur le port floppy:
- VMWare Player: C'est un bon logiciel, gratuit pour une utilisation non commerciale, mais les dernières versions (version 15 par exemple) demandent un support "Intel EPT" que n'ont que des processeurs récents. Par exemple, mon core 2 duo qui n'est pas si vieux, ne le supporte pas. Et vouloir installer une ancienne version pose souvent des problèmes de librairies avec une distribution Linux récente.Aussi, le ordinateurs avec les processeurs récents n'ont plus de port floppy sur la carte mère. Problème insoluble donc avec VMWare.
- VirtualBox: C'est un autre logiciel de virtualisation de référence. Par contre, si j'ai réussi a booter sur la 1ère disquette DOS, je n'ai pas réussi à passer à la 2ème disquette du DOS et donc à terminer l'installation. Le changement de disquette ne semble pas être bien géré.
Je me suis donc rabattu sur Qemu qui est un outil de virtualisation/simulation rapide. Il permet aussi de simuler des systèmes non Intel sur un PC. Dans mon cas, je veux juste l'utiliser pour simuler un ancien PC qui aura le DOS. Qemu est plus dans l'esprit Linux, c'est à dire qu'il ne propose pas d'interface graphique contrairement à VMWare et VirtualBox. Tout se passe avec des commandes texte. Cependant, ce n'est pas très compliqué une fois qu'on sait comment faire.
Dans cet exemple, je veux installer DOS 6.22 dans Qemu avec mes 4 disquettes 3.5" d’installation DOS.
Étape 1: créer un disque dur virtuel, par exemple de 200M
Code : Tout sélectionner
qemu-img create dos.img 200M
Étape 3: lancer qemu en spécifiant le système qu'on veut, dans mon cas:
- processeur 80386
- 16 Mo de mémoire
- clavier français
- une carte son et une carte graphique
- le disque dur que je viens de créer
- un lecteur de disquette (directement connecté au lecteur physique /dev/fd0)
- ordre de boot: A puis C
Code : Tout sélectionner
qemu-system-i386 -m 16 -k fr -rtc base=localtime -soundhw sb16,adlib -device cirrus-vga -hda dos.img -fda /dev/fd0 -boot order=ac
Etape 4: changer de disquette et en informer qemu
Quand DOS demande la disquette 2, ça devient un peu plus compliqué. Mettre la disquette 2 dans le lecteur ne suffit pas car il faut informer qemu (sinon, il garde en cache la disquette précédente).
Il faut aller dans la 'console' qemu en faisant CTRL-ALT-é sur un clavier français (le 'é' est la même touche que le '2' au dessus des lettres)
Là on demande simplement à qemu de recharger la nouvelle disquette.
Code : Tout sélectionner
(qemu) change floppy0 /dev/fd0
Etape 6: a la fin de l’installation, on retourne dans le console et on informe qu'on a enlevé la disquette.
Code : Tout sélectionner
(qemu) eject floppy0
Code : Tout sélectionner
(qemu) change floppy0 /dev/fd0