[TUTO] Lecteurs et images de disquettes 3.5" sous un Linux recent

Pas de discussions dans cette catégorie, simplement des réponses à des questions précises et/ou récurrentes.

Modérateurs : Carl, Papy.G, fneck

Répondre
gotcha
Messages : 197
Enregistré le : 30 mars 2017 11:39
Localisation : Alpes (38)

[TUTO] Lecteurs et images de disquettes 3.5" sous un Linux recent

Message par gotcha » 28 oct. 2018 09:17

Il est rare si ce n'est impossible de pouvoir mettre des lecteurs de disquettes 3.5" interne sur un PC moderne (avec Windows 7 ou Windows 10).
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
# S'il n'y a rien, le module n'est pas chargé
# Il peut être chargé manuellement, comme ceci:

Code : Tout sélectionner

sudo modprobe floppy
# Mais on veut qu'il se charge automatiquement au boot

# 1- Ajouter 'floppy' à la fin de /etc/modules pour chargement automatique

Code : Tout sélectionner

sudo nano /etc/modules
Il doit y avoir la ligne suivante:

Code : Tout sélectionner

floppy
# Sur ma distrib, le module floppy est carrément 'backlisté'. Ça veut dire que même en le rajoutant à /etc/module,
# 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
Il doit y avoir quelque chose comme ça;

Code : Tout sélectionner

#blacklist floppy
# On reboot pour vérifier que tout est ok

Code : Tout sélectionner

sudo reboot
# Vérifier que le module est bien chargé

Code : Tout sélectionner

lsmod | grep floppy
# On peut aussi vérifier que /dev/fd0 existe bien (il n’apparaît que quand le module est chargé)

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
# Si on veut 'monter' les disquettes dans le répertoire /media/floppy0 (qu'il faut créer préalablement une fois pour toute),
# 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
# Il faut se mettre dans le groupe 'floppy' pour avoir pouvoir monter lecteur de disquette
# Liste tous mes groupes

Code : Tout sélectionner

groups
# Si on n'est pas déjà le groupe floppy, on le rajoute

Code : Tout sélectionner

sudo usermod -a -G floppy <username>
# Se delogger, se relogger et vérifier qu'on est bien dans le groupe floppy

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
# Une fois l'utilisation terminée, il faut 'démonter' la disquette avant de l'enlever physiquement

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
# Dans mon cas, ça donne ça:

Code : Tout sélectionner

brw-rw---- 1 root [b]disk[/b] 2, 0 oct.  28 08:26 /dev/fd0
# 2 - Ajouter le user au groupe 'disk'

Code : Tout sélectionner

sudo usermod -a -G disk <username>
# Se delogger et se relogger et vérifier qu'on est bien dans le groupe 'disk'

Code : Tout sélectionner

groups
Note sur le groupe 'disk': Quand on est dans le groupe 'disk', il faut faire attention car on a alors accès aux disques à bas niveau.
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
# B- Copier une image (.img) sur une disquette physique

Code : Tout sélectionner

dd if=./<mon image>.img of=/dev/fd0
# Note, je ne pense pas que faire une telle image est suffisante pour copier les protections
# 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 2: Mettre la disquette 1 du DOS dans le lecteur

É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
QEMU boot sur ma disquette et on peut commencer à installer le DOS.

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 5: on sort de la console avec CTRL-ALT-& sur un clavier français et on continue l'installation. On recommence l’étape 4 pour chaque nouvelle disquette.

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
Ensuite, on reboote sur le disque dur (virtuel). Si on veut accéder une nouvelle disquette, on continue à aller dans la console de qemu et d'informer qemu

Code : Tout sélectionner

(qemu) change floppy0 /dev/fd0
Modifié en dernier par gotcha le 04 déc. 2018 11:44, modifié 32 fois.
Amstrad CPC addict :mrgreen:

Avatar du membre
fneck
Site Admin
Messages : 12271
Enregistré le : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: [TUTO] Lecteur de disquette sous un Linux récent

Message par fneck » 28 oct. 2018 11:38

Merci pour le tuto.
C'est intéressant de faire des trucs sous Linux, tout le monde ne maîtrise pas bien, moi le premier d'ailleurs 8)

gotcha
Messages : 197
Enregistré le : 30 mars 2017 11:39
Localisation : Alpes (38)

Re: [TUTO] Lecteur de disquette sous un Linux récent

Message par gotcha » 28 oct. 2018 16:10

fneck a écrit :
28 oct. 2018 11:38
C'est intéressant de faire des trucs sous Linux, tout le monde ne maîtrise pas bien, moi le premier d'ailleurs 8)
Linux est sympa surtout pour développer (tout est gratuit) et quand on veut 'jouer' avec des systèmes de type embarqués tels que de Raspberry PI.
Il est aussi pas mal pour des ordinateurs un peu plus anciens car on trouve des distributions plus légères que Windows.

Par contre, c'est quand même moins ergonomique que Windows et il ne faut pas avoir peur de mettre les mains dans le système. :D
Modifié en dernier par gotcha le 28 oct. 2018 16:13, modifié 1 fois.
Amstrad CPC addict :mrgreen:

gotcha
Messages : 197
Enregistré le : 30 mars 2017 11:39
Localisation : Alpes (38)

Re: [TUTO] Lecteur de disquette sous un Linux récent

Message par gotcha » 28 oct. 2018 16:12

Bon, après avoir fait pas mal d'essais, j'ai rajouté la section 'lecteur de disquette et machine virtuelle' au tutoriel.

Même si j'ai réussi a faire ce que je voulais, il est clair que vouloir travailler avec un lecteur de disquettes interne de nos jours devient un peu compliqué. Et je ne pense pas que ça va s’améliorer avec le temps :roll:
Amstrad CPC addict :mrgreen:

gotcha
Messages : 197
Enregistré le : 30 mars 2017 11:39
Localisation : Alpes (38)

Re: [TUTO] Lecteurs et images de disquettes sous un Linux recent

Message par gotcha » 04 déc. 2018 11:44

Bon, j'ai tenté de brancher un lecteur 5.25 sur ce PC qui a un port Floppy, mais en fait, le BIOS ne supporte que les lecteurs 3.5" (legacy floppy).
Donc pour faire ou écrire des images de disquette 5.25", il n'y a à mon avis plus que la solution Kryoflux ou équivalent.
Amstrad CPC addict :mrgreen:

Avatar du membre
DataPro
Messages : 1754
Enregistré le : 07 févr. 2011 17:03
Localisation : France - Auvergne

Re: [TUTO] Lecteurs et images de disquettes 3.5" sous un Linux recent

Message par DataPro » 14 déc. 2018 08:24

De même que l'on peut récupérer un PC d'avant 2010, il est toujours possible de récupérer un PC antérieur aux années 2000.
Ce n'est pas la chose la plus difficile qui soit d'ailleurs, la vraie difficulté étant plutôt de mettre la main sur une unité de disquettes 5"1/4
Je craque pour les office-ladies comme pour les oldies.
Recherche: cartouches Mattel Intellivision Imagic (loose)

Répondre