Scroll to navigation

mtools(1) General Commands Manual mtools(1)

Nom

mtools — Utilitaires pour accéder à des disques DOS sous Unix

Introduction

mtools est une collection d’outils permettant aux systèmes de style Unix de manipuler des fichiers MS-DOS, c’est-à-dire lire, écrire et déplacer des fichiers dans un système de fichiers MS-DOS (en général une disquette). Lorsque cela a un sens, chaque programme tente d’émuler la commande MS-DOS équivalente. Cependant, les restrictions non nécessaires et les bizarreries de MS-DOS ne sont pas reproduites. Par exemple, il est possible de déplacer des sous-répertoires d’un sous-répertoire vers un autre.

mtools suffit pour accéder aux systèmes de fichiers MS-DOS. Par exemple, une commande telle que mdir a: fonctionne avec la disquette a: sans initialisation ou montage préliminaire (en supposant que le fichier par défaut /etc/mtools.conf fonctionne sur votre machine). Avec mtools, il est aussi possible de changer de disquette sans démontage et remontage.

Comment obtenir mtools

mtools peut être téléchargé à cette adresse (et à partir des miroirs) :


http://ftp.gnu.org/gnu/mtools/mtools-4.0.49.tar.gz

Les correctifs se nomment mtools-version-jjmm.taz, où version correspond à la version de base, jj au jour et mm au mois. À cause d’un manque de place, je ne laisse en général que le correctif le plus récent.

Il existe une liste de diffusion pour mtools à l’adresse info-mtools @ gnu.org (enlevez les espaces autour du « @ ». Je les ai placés ici pour tromper les robots de spam). Veuillez envoyer vos rapports de bogue à cette liste. Vous pouvez y souscrire à l’adresse https://lists.gnu.org/mailman/listinfo/info-mtools. Les annonces concernant les nouvelles versions de mtools sont également envoyées à la liste, en plus des groupes de discussion d'annonces de Linux. Les archives de cette liste se trouvent à l’adresse http://lists.gnu.org/pipermail/info-mtools/

Fonctionnalités communes à toutes les commandes de mtools

Options et noms de fichiers

Les noms de fichier MS-DOS se composent d’une lettre de lecteur suivie d’un deux-points « : », d’un sous-répertoire et d’un nom de fichier. Seul le nom de fichier est obligatoire, la lettre de lecteur et le sous-répertoire étant facultatifs. Les noms de fichier sans lettre de lecteur font référence à des fichiers Unix. Les noms de sous-répertoire peuvent utiliser le séparateur « / » ou « \ ». L’utilisation du séparateur « \ » ou de jokers nécessite de mettre les noms entre guillemets pour les protéger de l’interpréteur de commande. Les noms de fichier Unix avec jokers ne doivent, quant à eux, pas être entourés de guillemets, car nous voulons que l’interpréteur de commande les développe.

Les routines de « correspondance de motif » dans les expressions rationnelles respectent les règles de style Unix. Par exemple, « * » correspond à tous les fichiers MS-DOS, au lieu de « *.* ». Les bits d’attribut archive, caché, lecture seule et système sont ignorés lors de la recherche de correspondance de motif.

Toutes les options utilisent le - (moins) comme premier caractère, au lieu de /, comme vous pourriez vous y attendre sous MS-DOS.

La plupart des commandes de mtools acceptent plusieurs noms de fichier comme paramètres, ce qui ne respecte pas les conventions de MS-DOS, mais qui est plus commode pour l’utilisateur.

La plupart des commandes de mtools acceptent des options qui leur indiquent comment gérer les conflits de noms. Voir la section sur les conflits de noms pour plus de détails.

Toutes les commandes acceptent le drapeau -i qui permet de spécifier un fichier image (voir la section sur les lettres de lecteur).

Toutes les commandes acceptent le drapeau -V qui affiche le numéro de version, et la plupart d’entre elles acceptent le drapeau -v qui fait passer en mode prolixe. Dans ce dernier mode, les commandes affichent le nom des fichiers MS-DOS sur lesquels elles opèrent, sauf indication contraire. Voir la section Commandes pour une description des options spécifiques à chacune des commandes.

Lettres de lecteur

La signification des lettres de lecteur dépend de l’architecture cible. Cependant, sur la plupart des architectures cible, le lecteur A est le premier lecteur de disquette, le lecteur B le second lecteur de disquette (s’il existe), le lecteur J est le lecteur Jaz (s’il existe) et le lecteur Z est le lecteur Zip (s’il existe). Sur ces systèmes où le nom de périphérique est dérivé de l’identifiant SCSI, le lecteur Jaz est censé être en SCSI cible 4 et le lecteur Zip en SCSI cible 5 (réglages par défaut du fabricant). Sous Linux, les deux lecteurs sont censés être le second lecteur sur le bus SCSI (/dev/sdb). Les réglages par défaut peuvent être modifiés en utilisant un fichier de configuration (voir la section Configuration).

La lettre de lecteur deux-points « : » possède une signification spéciale. Elle est utilisée pour accéder aux fichiers image directement spécifiés sur la ligne de commande en utilisant l’option -i.

Exemple :


mcopy -i mon_fichier_image.bin ::fichier1 ::fichier2 .

Cette commande copie fichier1 et fichier2 depuis le fichier image (mon_fichier_image.bin) vers le répertoire actuel.

Il est aussi possible de spécifier un décalage dans le fichier image en incluant @@décalage dans le nom du fichier.

Exemple :


mcopy -i mon_fichier_image.bin@@1M ::fichier1 ::fichier2 .

Cette commande recherche dans l’image à partir du décalage 1 Mo, au lieu du début du fichier.

Tailles et décalages

Certaines commandes, comme mformat(1), permettent de spécifier une taille de disque dur.

La taille est un nombre suivi d’un suffixe d’unité facultatif.

Le nombre est interprété comme un nombre hexadécimal s’il commence par 0x, comme un nombre octal s’il commence par le chiffre 0 ou comme un nombre décimal s’il commence par tout autre chiffre.

Les unités suivantes sont prises en charge :

*   
S secteurs (de 512 octets)
*   
K Kilooctets
*   
M Mégaoctets
*   
G Gigaoctets
*   
T Téraoctets

Si aucune unité n’est spécifiée, l’unité par défaut dépend du contexte. L’option T de mformat(1) et l’option l de mpartition(1) présument « secteurs », alors que toutes les autre valeurs (l’option o de mshowfat(1), les options de configuration de lecteur offset et data_map) présument « octets ».

Répertoire de travail actuel

La commande mcd(1) permet de définir les périphérique et répertoire de travail actuel (relativement au système de fichiers MS-DOS), leur valeur par défaut étant A:/. À la différence de MS-DOS cependant, il n’existe qu’un seul répertoire de travail pour tous les lecteurs, et non un par lecteur. En outre, si vous définissez le lecteur ::/, mtools ne garde pas en mémoire le fichier image associé, mais seulement le fait que vous travaillez sur un fichier image.

Noms de fichier longs du style VFAT

Cette version de mtools prend en charge les noms de fichier longs de style VFAT. Si un nom de fichier Unix est trop long pour entrer dans un nom DOS court, il sera stocké comme nom long VFAT, et un nom court compagnon sera généré. Ce nom court correspond à ce que vous voyez quand vous examinez le disque avec une version de DOS antérieure à 7.0.


Nom long Nom MS-DOS Raison du changement --------- ---------- --------------------- voiciuntest VOICIU~1 nom de fichier trop long alain.knaff ALAIN~1.KNA extension trop longue prn.txt PRN~1.TXT PRN est un nom de périphérique .abc ABC~1 nom de fichier vide net+flou NET_FL~1 caractère illégal

Comme vous le voyez, les transformations suivantes sont effectuées pour obtenir un nom court :

*   
Les caractères illégaux sont remplacés par des caractères de soulignement. Les caractères illégaux sont ;+=[]',\"*\\<>/?:|.
*   
Les points en surnombre qui ne peuvent pas être interprétés comme séparateur principal entre le nom et l’extension sont supprimés.
*   
Un nombre ~n est généré.
*   
Le nom est raccourci pour respecter la limitation 8+3.

Le nom de fichier de style Unix initial (qu’il soit long ou court) se nomme aussi nom primaire, et le nom court dérivé se nomme aussi nom secondaire.


Exemple :


mcopy /etc/motd a:nomvraimentlong

mtools crée une entrée VFAT pour nomvraimentlong et utilise NOMVRAIM comme nom court. nomvraimentlong est le nom primaire et NOMVRAIM le nom secondaire.


mcopy /etc/motd a:motd

motd respecte les limites pour les noms de fichier MS-DOS. mtools n’a pas besoin de générer un autre nom. motd est le nom primaire et il n’y a pas de nom secondaire.

Pour résumer, le nom primaire est le nom long, s’il existe, ou le nom court s’il n’y a pas de nom long.

Bien que VFAT soit plus flexible que FAT, il y a tout de même des noms qui ne sont pas acceptables, même en VFAT. Il y a encore quelques caractères illégaux (\"*\\<>/?:|), et les noms de périphérique sont toujours réservés.


Nom Unix Nom long Raison du changement --------- ---------- --------------------- prn prn-1 PRN est un nom de périphérique ab:c ab_c-1 caractère illégal

Comme vous pouvez le voir, les transformations suivantes sont effectuées si un nom long est illégal :

*   
Les caractères illégaux sont remplacés par des caractères de soulignement
*   
Un nombre -n est généré

Conflits de nom

Lors de l’écriture d’un fichier sur disque, son nom court ou long peut entrer en conflit avec un fichier ou répertoire préexistant. Cela peut se produire pour toutes les commandes qui créent de nouvelles entrées de répertoire comme mcopy, mmd, mren, mmove. Quand un conflit de nom se produit, mtools demande ce qu’il doit faire. Il propose plusieurs choix :

Écraser le fichier préexistant. Il n’est pas possible d’écraser un répertoire avec un fichier.
Renommer le fichier nouvellement créé. mtools demande le nouveau nom de fichier.
Renommer le fichier nouvellement créé. mtools choisit un nom lui-même, sans rien demander.
Abandonner l’opération pour ce fichier et passer au suivant (s’il existe).

Pour choisir une de ces actions, saisissez sa première lettre à l’invite. Si vous utilisez une lettre minuscule, l’action ne s’appliquera qu’au fichier actuel ; si vous utilisez une lettre capitale, l’action s’appliquera à tous les fichiers et il ne vous sera plus rien demandé.

Vous pouvez aussi choisir une action (pour tous les fichiers) sur la ligne de commande, lors de l’invocation de mtools :

Écraser les noms primaires par défaut.
Écraser les noms secondaires par défaut.
Renommer les noms primaires par défaut.
Renommer les noms secondaires par défaut.
Renommer automatiquement les noms primaires par défaut.
Renommer automatiquement les noms secondaires par défaut.
Abandonner le nom primaire par défaut.
Abandonner le nom secondaire par défaut.
Demander à l’utilisateur ce qu’il faut faire avec les noms primaires.
Demander à l’utilisateur ce qu’il faut faire avec les noms secondaires.

Notez que pour les commutateurs de la ligne de commande, minuscules et capitales référencent respectivement primaire et secondaire, alors que pour les choix interactifs, minuscules et capitales référencent respectivement « juste pour cette fois » et toujours.

Le nom primaire est le nom tel qu’il s’affiche sous Windows 95 ou Windows NT, à savoir le nom long s’il existe, le nom court dans le cas contraire. Le nom secondaire est le nom « caché », à savoir le nom court si le nom long existe.

Par défaut, l’utilisateur est invité à se prononcer si le nom primaire entre en conflit, et le nom secondaire est renommé automatiquement.

Si un conflit de nom se produit dans un répertoire Unix, mtools demande uniquement s’il doit écraser le fichier, ou abandonner et passer au suivant.

Sensibilité à la casse du système de fichiers VFAT

Le système de fichiers VFAT peut enregistrer la casse des noms de fichier. Cependant, les noms de fichier qui ne diffèrent que par leur casse ne sont pas autorisés à coexister dans le même répertoire. Par exemple, si vous enregistrez un fichier nommé « NomFichierLong » dans un système de fichiers VFAT, mdir(1) affichera ce nom sous la forme « NomFichierLong », et non sous la forme « Nomfichierlong ». Cependant, si vous essayez ensuite d’ajouter « NomFichierlong » dans le même répertoire, l’opération sera refusée, car la casse est ignorée lors de la recherche de conflits.

Le système de fichiers VFAT permet d’enregistrer la casse d’un nom de fichier dans l’octet des attributs si toutes les lettres du nom du fichier sont dans la même casse, et s’il en est de même pour toutes les lettres de l’extension. mtools utilise cette information pour l’affichage des noms de fichier, et aussi pour la création du nom de fichier Unix lors de la copie avec mcopy vers un répertoire Unix. Le résultat peut être inattendu si l’on opère sur des fichiers écrits sous une version de DOS antérieure à 7.0 : en effet, les noms de fichiers de l'ancien style étaient toujours en capitales. Cela diffère du comportement de l’ancienne version de mtools qui générait des noms de fichier Unix en minuscules.

Formats haute capacité

mtools prend en charge plusieurs formats qui permettent de stocker sur disque une quantité de données supérieure à la normale. Ces formats ne sont pas pris en charge par tous les systèmes d’exploitation, à cause des différences entre les capacités de ces derniers. Lorsqu’ils sont pris en charge, mtools reconnaît ces formats de manière transparente.

Pour formater ces disques, vous devez utiliser un outil spécifique au système d’exploitation. Sous Linux, les outils pour disquette appropriés se trouvent dans le paquet fdutils à l’adresse suivante :


http://www.fdutils.linux.lu/.

Voir les pages de manuel incluses dans ce paquet pour plus de détails : utilisez xdfcopy pour formater en XDF, et superformat pour tous les autres formats.

  Plus de secteurs

La plus ancienne méthode pour enregistrer plus de données sur une disquette consiste à utiliser davantage de secteurs et cylindres. Bien que le format standard utilise 80 cylindres et 18 secteurs (sur une disquette haute densité 3 pouces et demi), il est possible d’utiliser jusqu’à 83 cylindres (sur la plupart des lecteurs) et jusqu’à 21 secteurs. Cette méthode permet de stocker jusqu’à 1743 Ko sur une disquette haute densité 3 pouces et demi. Les disquettes à 21 secteurs sont cependant deux fois plus lentes que les disquettes standard à 18 secteurs, car les secteurs sont si rapprochés qu’il est nécessaire de les entrelacer. Le problème ne se pose pas avec les formats à 20 secteurs.

Ces formats sont pris en charge par de nombreux utilitaires en partagiciel sous DOS tels que fdformat et vgacopy. Dans son orgueil démesuré, Bill Gate$ croyait qu’il avait inventé ces formats et les nommait « Disques DMF », ou « Disques formatés pour Windows ». En réalité, ils existaient déjà des années auparavant ! mtools prend en charge ces formats sous Linux, sous SunOS et sur les PC DELL sous Unix.

  Des secteurs plus grands

En utilisant des secteurs plus grands, il est possible d’aller au delà de la capacité qui peut être obtenue avec des secteurs de 512 octets standard. Cela est dû à l’en-tête du secteur. L’en-tête du secteur a la même taille quelle que soit la quantité d’octets de données qu’il contient. Ainsi, nous pouvons économiser de l’espace en utilisant des secteurs plus grands, mais en nombre inférieur. Par exemple, 1 secteur de 4 Ko ne mobilise de l’espace que pour un seul en-tête, alors que 8 secteurs de 512 octets mobilisent de l’espace pour 8 en-têtes pour la même quantité de données utiles.

Cette méthode permet de stocker jusqu’à 1992 Ko sur une disquette HD de 3 pouces et demi.

mtools ne prend en charge ces formats que sous Linux.

  2m

Le format 2m a été inventé par Ciriaco Garcia de Celis. Il utilise aussi des secteurs plus grands que la normale pour pouvoir faire tenir plus de données sur le disque. Il utilise cependant le format standard (18 secteurs de 512 octets chacun) sur le premier cylindre de façon à faciliter la gestion de ces disques sous DOS. En effet, cette méthode permet de disposer d’un secteur d’amorçage de taille standard qui contient la description de la manière dont le reste du disque doit être lu.

Cette méthode a cependant un inconvénient : le premier cylindre contient moins de données que les autres. Malheureusement, DOS ne peut gérer que des disques dont chaque piste contient la même quantité de données. C’est pourquoi 2m dissimule le fait que la première piste contient moins de données que les autres en utilisant une FAT fantôme. En général, DOS stocke la FAT sous forme de deux copies identiques, pour plus de sécurité. XDF n’en stocke qu’une seule, mais fait croire à DOS qu’il en stocke deux. L’espace qu’utiliserait la seconde copie de la FAT est ainsi préservé. Cela signifie aussi que vous ne devez jamais utiliser un disque 2m pour stocker autre chose qu’un système de fichiers DOS.

mtools ne prend en charge ces formats que sous Linux.

  XDF

XDF est un format haute capacité utilisé par OS/2. Il peut stocker 1840 Ko sur un disque, ce qui est inférieur aux meilleurs formats 2m, mais a pour avantage d’être rapide : 600 millisecondes par piste. Il est plus rapide que le format à 21 secteurs et pratiquement aussi rapide que le secteur standard à 18 secteurs. Pour pouvoir accéder à ces disques, mtools doit avoir été compilé avec la prise en charge de XDF, et la variable use_xdf doit être définie pour le lecteur dans le fichier de configuration. Voir la section « Compiler mtools » et « variables diverses » pour des détails à propos de la manière d’effectuer ces opérations. L’accès rapide XDF n’est disponible qu’avec les noyaux Linux postérieurs à 1.1.34.

mtools ne prend en charge ce format que sous Linux.

Avertissement aux distributeurs : si mtools a été compilé avec un noyau Linux postérieur à 1.3.34, il ne fonctionnera pas avec un noyau plus ancien. Cependant, s’il a été compilé avec un noyau plus ancien, il fonctionnera aussi avec un noyau plus récent, mais les accès XDF seront plus lents. Il est conseillé aux auteurs de distribution de n’inclure que des binaires mtools compilés avec des noyaux antérieurs à 1.3.34, jusqu’à l’arrivée de la version 2.0. À ce moment, les binaires mtools compilés avec des noyaux récents pourront (et devront) être distribués. Les binaires mtools compilés avec des noyaux antérieurs à 1.3.34 ne fonctionneront pas avec un noyau de version 2.1 ou postérieure.

Codes de retour

Toutes les commandes de mtools renvoient 0 en cas de succès, 1 en cas d’échec total ou 2 en cas d’échec partiel. Elles effectuent quelques vérifications avant d’aller plus loin pour s’assurer que le disque est bien un disque MS-DOS (et non pas un disque ext2 ou MINIX). Ces vérifications peuvent rejeter des disques partiellement corrompus, mais qui peuvent éventuellement encore être lus. Pour empêcher ces vérifications, définissez la variable d’environnement MTOOLS_SKIP_CHECK ou la variable correspondante dans le fichier de configuration (voir la section sur les variables globales).

Bogues

Lorsque le périphérique n’a pas été déterminé de manière appropriée (quand plusieurs capacités de disque sont prises en charge), un effet de bord malencontreux fait que le pilote de périphérique émet un message d’erreur. Ce dernier peut être ignoré sans danger.

Le code de vérification de la FAT échoue avec les disquettes de 1,72 Mo formatées avec une version de mtools antérieure à 2.0.7. Définissez la variable d’environnement MTOOLS_FAT_COMPATIBILITY (ou la variable correspondante dans le fichier de configuration, voir la section « Variables globales » de mtools(5)) pour empêcher la vérification de la FAT.

Auteurs

Le code initial (jusqu’à la version 2.0.7 ?) de mtools a été développé par Emmet P. Gray (Texas, USA).

David C. Niemi a contribué à la prise en charge de VFAT et aidé à entretenir mtools.

Le processus d’empaquetage de mtools utilise une version modifiée de l’utilitaire texi2roff(1) de Beverly A. Erlebacher pour convertir la documentation texi en pages de manuel.

Voir aussi

floppyd_installtest(1), mattrib(1), mbadblocks(1), mcd(1), mcopy(1), mdel(1), mdeltree(1), mdir(1), mdoctorfat(1), mdu(1), mformat(1), minfo(1), mkmanifest(1), mlabel(1), mmd(1), mmount(1), mmove(1), mrd(1), mren(1), mshortname(1), mshowfat(1), mtoolstest(1), mtype(1).

TRADUCTION

La traduction française de cette page de manuel a été créée par Lucien Gentis <lucien.gentis@univ-lorraine.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

14 juin 2025 mtools-4.0.49