UMSDOS HOW-TO

Jacques Gelinas, [email protected]

v1.1, 13 November 1995
Umsdos est un système de fichiers pour Linux. Il propose une alternative au système de fichiers EXT2. Son principal but est de parvenir à une coexistence simplifiée avec les données MS-DOS en partageant la même partition. Ce document explique tout d'abord comment utiliser Umsdos dans différentes configurations, puis son fonctionnement. Il se termine par quelques informations qui devraient vous permettre de décider si c'est un bon choix pour vous (cf. Pourquoi UMSDOS à la fin de ce document). Adaptation française réalisée par Guillaume Deschamps ([email protected]) Version de l'adaptation : v0.1b

1. Umsdos : Présentation

1.1 Historique

Le projet Umsdos a commencé en 1992, et a été disponible sur le réseau sous forme de patch en janvier 1994. Il a été inclus dans la distribution standard du noyau en juillet, à partir de la version 1.1.36.

Umsdos a été au départ adopté dans la distribution Slackware avant même d'être inclus dans le noyau officiel.

Umsdos a commencé à être amélioré à partir de la version 1.1.60 du noyau. Ses performances ont considérablement augmenté, surtout en ce qui concerne l'écriture. Il est de nouveau stable depuis la version 1.1.70 (à peu près).

Un bug majeur a été corrigé dans Linux 1.2.2. Ce bug causait des torts aux utilisateurs depuis le début (certains fichiers étaient renommés sans avertissement, donnant l'impression qu'ils avaient été effacés). Attention ! La Slackware 2.2 contient toujours la version 1.2.1 du noyau, donc elle a ce bug.

1.2 Disponibilité

Il est disponible sous forme de patch pour les noyaus 1.0.x, et est inclus dans le noyau 1.2. Il peut être compilé avec le noyau ou chargé comme un module. Cependant si vous décidez pour l'instant d'utiliser Umsdos comme un module, il vous faudra aussi utiliser le systeme de fichiers MS-DOS en tant que module. Cela vient d'une limitation du système de gestion des modules (certains symboles ne sont exportés que lorsque les drivers sont eux-mêmes des modules).

1.3 Distributions le supportant

Dans l'état actuel des choses, seule la distribution Slackware semble le supporter. Mais j'ai sûrement tort donc n'hésitez pas à m'envoyer des corrections à ce sujet. (NdT : en anglais !)

1.4 Site d'accueil

Le site d'accueil pour Umsdos est sunsite.unc.edu. Allez faire un tour du côté du répertoire /pub/Linux/system/Filesystems/umsdos.

1.5 Documentation technique

Il existe beaucoup de documentation sur la structure interne de Umsdos, disponible à la fois aux formats HTML et texte au même endroit que les utilitaires.

Pour ce que j'en sais, la version HTML n'est pas disponible sur WWW. Vous devez la télécharger, puis la "untarer" et finalement la lire localement.

1.6 L'auteur

Jacques Gelinas [email protected]

2. Umsdos comme partition principale

2.1 Le concept pseudo-racine

Avec Umsdos, Linux peut être installé sur une partition DOS standard. Linux est alors installé comme le second (ou troisième) système d'exploitation sur la partition. Pour éviter toute collision dans les noms (il existe peut-être déjà un répertoire bin ou tmp sur le lecteur C:), Umsdos a recours à une astuce : la pseudo-racine.

Tous les fichiers Linux sont installés dans un sous-répertoire DOS appelé Linux, généralement C:\\LINUX. La structure normale des répertoires Linux/Unix se trouve là. Vous obtenez donc :

Quand Umsdos démarre, il cherche le répertoire linux puis /linux/etc. S'il existe, il active le mode pseudo-racine.

Le mode pseudo-racine s'occupe principalement de rediriger le repertoire racine vers C:\\LINUX, ce qui donne comme résultat un répertoire Unix classique :

Il ajoute de plus à cette liste un nouveau répertoire appelé DOS, qui est virtuel.

2.2 Ce qu'il faut savoir à propos du mode pseudo-racine

3. Différentes remarques au sujet du fonctionnement de Umsdos

3.1 Option de mount

Vous pouvez utiliser les mêmes options pour mount que pour le système de fichiers MS-DOS. L'utilisation de l'option conv= est discutable sur un système Umsdos. Je propose de l'éviter. Les options que vous aurez généralement à prendre en compte sont :

Il faut juste vous souvenir que Umsdos traite les répertoires non promus de la même façon que MS-DOS. Les options ci-dessus vont donc s'appliquer globalement à tous les répertoires non promus. uid configure le propriétaire par défaut, gid le groupe par défaut et umask les permissions par défaut sur les fichiers.

3.2 Comment déterminer les valeurs par défaut pour la partition principale

umssetup a été créée pour déterminer au lancement le propriétaire par défaut de la partition principale. Pour les autres partitions Umsdos, il est possible d'utiliser soit les options de mount soit umssetup. La manière classique pour régler ce problème pour les partitions non principales est de stocker les options de mount dans /etc/fstab. Voici un exemple. Mettez ceci dans /etc/rc.d/rc.S :

                /sbin/umssetup -u jack -g group -m 0755 /
        

3.3 Swapper ou ne pas swapper

L'utilisation d'un fichier de swap se révèle souvent plus lente que celle d'une partition de swap. Cette solution est cependant bien plus flexible. Vous pouvez configurer un fichier de swap dans une partition Umsdos de la même façon que dans tout autre système de fichiers Linux. Par exemple, pour configurer un fichier de swap de 8 Mo dans le répertoire racine :

                dd if=/dev/zero bs=1024k count=8 of=/swap
                mkswap /swap 8192
                sync
                swapon /swap
        

Une fois cela fait, vous pouvez ajouter la ligne suivante dans /etc/fstab :

                /swap   swap    swap    default         
        

Et le fichier de swap sera activé à chaque démarrage. (Il y a généralement la commande "swapon -a" dans /etc/rc.d/rc.S.)

4. Comment démarrer un système Umsdos

4.1 Loadlin

Le paquetage lodlin15.tgz, disponible sur sunsite.unc.edu dans /pub/Linux/system/Bootutils, est particulièrement bien adapté au démarrage d'un système Umsdos. En général, tout ce que vous avez besoin de faire est

        Boot DOS
        C:>loadlinx zimage root=D:
        

où zimage est une image normale du noyau (compressée), tout simplement copiée quelque part sur le lecteur DOS. D: est le lecteur DOS où vous avez installé Linux.

4.2 A partir d'une disquette

Démarrer un système Umsdos à partir d'une disquette se fait de la même manière que pour un système Ext2. Vous avez besoin d'une image zImage de votre noyau proprement initialisée pour localiser votre partition principale Umsdos. Pour ce faire, on utilise généralement la commande rdev. La séquence suivante initialise un fichier zImage et le met sur une disquette :

        rdev zImage /dev/hda1
        rdev -R zImage 0
        dd if=zImage bs=8192 of=/dev/fd0
        

Si vous trouvez cela déroutant, formattez une disquette système DOS et copiez les fichiers suivants dessus :

puis configurez le fichier autoexec.bat comme suit :

        loadlinx zimage rw root=C:
        

4.3 LILO

LILO, le chargeur (boot-loader) officiel de Linux peut aussi être utilisé pour démarrer un système Umsdos. Cependant je n'ai jamais essayé, mais ça devrait marcher depuis la version 1.1.60. Merci de m'envoyer un e-mail (NdT : toujours en anglais !) si vous avez fait l'expérience.

4.4 Comment défragmenter une partition Umsdos

Tout simplement en utilisant n'importe lequel des outils DOS classiques. Les fichiers produits par Umsdos n'ont rien de particulier. Et Umsdos n'attend rien de particulier (composition ou séquence des points d'entrée des répertoires, etc.) du système de fichier sur lequel il travaille.

Pour ce que j'en sais, il n'existe pas d'outil sous Linux pour faire ça.

4.5 Astuces avancées

Umsdos repose sur --linux-.--- qui repose lui-même sur le répertoire DOS. Certains voudront peut-être faire quelques expériences. L'utilitaire udosctl (dans le paquetage umsdos_progs, qui contient umssync et umssetup) permet de faire des opérations sur les répertoires (effacer, voir le contenu), et ceci indépendamment sur le répertoire --linux-.--- ou sur le répertoire DOS.

5. Principe de base

5.1 Introduction

Umsdos fait directement correspondre aux fichiers Linux des fichiers MS-DOS. C'est une transposition un pour un, et le contenu des fichiers n'est pas altéré du tout. Umsdos travaille seulement sur les noms de fichiers, et réserve un traitement particulier aux fichiers spéciaux (par exemple les liens ou les fichiers périphériques).

Pour chaque répertoire, il y a un fichier appelé --linux-.---.

5.2 Umsdos peut remplacer le système de fichiers MS-DOS

Umsdos peut être vu comme un surensemble plus général du système de fichiers MS-DOS de linux. En fait cette capacité/flexibilité est la source de beaucoup de confusions au sujet de Umsdos. Je vais vous expliquer pourquoi. Essayez de monter une disquette DOS qui vient juste d'être formattée de la manière suivante :

        mount -t umsdos /dev/fd0 /mnt
        

Puis faîtes ceci :

        ls / >/mnt/LONGFILENAME
        ls -l /mnt
        

Et vous obtiendrez le résultat suivant :

        -rwxr-xr-x   1 root     root          302 Apr 14 23:25 longfile
        

Jusqu'ici, le système de fichiers n'a pas l'air de faire grand chose de plus (en fait même rien) que le système de fichiers MS-DOS normal de Linux.

???

5.3 Promouvoir un répertoire

Jusqu'ici ça n'est pas très impressionant. Mais il y a une astuce. A moins d'avoir été promu, un répertoire DOS sera traité par Umsdos de la même façon que par MS-DOS. Umsdos utilise un fichier spécial dans chaque sous-répertoire pour effectuer la transposition entre les possibilités étendues (noms de fichiers longs, propriété, etc.) de Umsdos et les limitations inhérentes au système de fichiers DOS. Ce fichier est invisible aux utilisateurs de Umsdos, mais il devient visible si vous démarrez sous DOS. Pour éviter de mettre inutilement le désordre dans la partition DOS avec ces fichiers (--linux-.---), ils sont maintenant optionnels. S'ils sont absents, Umsdos se comporte comme MS-DOS.

Quand un répertoire est promu, toutes les opérations effectuées par la suite tiendront compte de toutes les possibilités normalement accessibles aux utilisateurs d'Unix et de Linux. Tous les sous-répertoires crées ensuite seront promus sans autre intervention de votre part.

Cette caractéristique vous permet d'organiser logiquement votre partition DOS entre votre hiérarchie DOS et votre hiérarchie Linux. Il est important de comprendre que les fichiers --linux-.--- prennent de la place (en général 2 Ko par répertoire). Comme DOS utilise de gros clusters (par exemple de 16 Ko pour une partition de 500 Mo), éviter de mettre des fichiers --linux-.--- partout peut vous faire gagner pas mal de place.

5.4 Comment promouvoir /sbin/umssync

Un répertoire peut être promu à n'importe quel moment en utilisant /sbin/umssync. Lorsqu'un répertoire est promu, il se passe les choses suivantes :

La commande /sbin/umssync est utilisée pour la maintenance des fichiers --linux-.--- existants. Elle ne le crée pas à partir de rien à chaque fois. Elle modifie simplement ce qui a changé (par exemple les fichiers nouvellement crées lors d'une session DOS). Elle retire aussi de ce fichier les fichiers qui n'existent plus dans le répertoire DOS. C'est pourquoi umssync porte ce nom, car elle synchronise les fichiers --linux-.--- avec le répertoire DOS sous-jacent.

5.5 Utiliser /sbin/umssync au démarrage

C'est une bonne idée de mettre un appel à /sbin/umssync à la fin du fichier /etc/rc.d/rc.S (si ce n'est déjà fait...). La commande suivante marche sur la plupart des systèmes :

        /sbin/umssync -r99 -c -i+ /
        

L'option -c empêche umssync de promouvoir les répertoires. Cette commande va donc seulement mettre à jour les fichiers --linux-.--- existants.

Cette commande est utile si vous désirez accéder au répertoire Linux pendant une session DOS. Linux n'a pas de moyen efficace de dire qu'un répertoire a été modifié par DOS, donc Umsdos ne peut pas lancer lui-même la commande umssync nécessaire.

5.6 Comment dé-promouvoir

Effacez le fichier --linux-.--- en utilisant DOS.

5.7 A propos des fichiers créés lors d'une session DOS

A moins que vous n'utilisiez umssync sur un répertoire dans lequel des fichiers ont été ajoutés ou effacés par DOS, vous allez remarquer certains des problèmes suivants :

6. (Dés-)Installation et quelques astuces

L'installation de Umsdos n'est pas vraiment différente de celle d'un système Linux ordinaire (basé sur Ext2).

Il y a tout de même deux différences principales.

6.1 La pseudo-racine /mnt/linux

Les étapes normales lors de l'installation sont :

  1. Créer une partition avec fdisk et la formatter.
  2. La monter sur /mnt relativement à notre disque principal d'installation.
  3. Copier tous les paquetages dans /mnt.

Avec Umsdos l'étape 1 n'est pas nécessaire (n'était-ce pas le but de Umsdos de ne pas avoir à reformatter ?).

Il est possible d'installer un système Umsdos juste en copiant tous les paquetages dans /mnt. Cela marchera certainement. Mais cela va aussi creer tout un tas de sous-répertoires dans votre répertoire racine DOS (C:), et vous n'allez pas aimer ça. C'est la raison pour laquelle toute installation de Umsdos utilise la pseudo-racine. Et c'est la différence majeure entre une installation normale (Ext2) et celle de Umsdos : tous les fichiers sont copiés dans /mnt/linux.

6.2 Préparer le répertoire /mnt/linux

/mnt/linux n'est pas un répertoire ordinaire. Il doit être promu pour pouvoir manipuler correctement les noms de fichiers longs de Linux et les fichiers spéciaux (liens, fichiers périphériques). Les étapes nécessaires pour configurer /mnt/linux sont :

  1. mkdir /mnt/linux
  2. umssync /mnt/linux

Et c'est tout !

6.3 Vérifier que /mnt/linux est correctement configuré

Même si la configuration de /mnt/linux est plutôt simple, il y a un certain nombre de paquetages qui ne marchent pas. Comment est-ce possible ?

Le problème d'installation le plus important vient d'un programme umssync incompatible. Umsdos a été mis à jour dans linux 1.1.88 (je ne me rappelle plus exactement du numéro) et un bug a été découvert dans umssync. Pour éviter toute confusion dans la communauté Linux, il a été décidé de monter le niveau de compatibilité nécessaire pour tous les utilitaires Umsdos. Les anciennes versions de ces utilitaires ont été purement et simplement rejetées.

Apparemment beaucoup de distributions n'ont pas mis à jour l'utilitaire umssync sur leur disque d'installation.

Il existe encore pas mal de distributions de ce style en circulation. Le résultat est que le répertoire /mnt/linux n'est pas promu du tout et va tronquer tous les noms de fichiers trop longs, et aussi rejeter tous les fichiers spéciaux.

Il est possible de faire un test très tôt pendant l'installation pour voir si quelque chose s'est mal passé. Grâce au mécanisme de pseudo-console de Linux, vous pouvez le faire sans quitter le programme d'installation. Suivez les instructions suivantes :

  1. Appuyez sur Alt-F2 (Appuyez sur la touche Alt et en même temps sur la touche F2).
  2. Logguez-vous sous root.
  3. cd /mnt/linux Si cela ne marche pas, vous êtes en train d'essayer trop tôt. Un bon moment pour faire ce test est d'attendre la fin de la sélection des paquetages.
  4. >TOTO
  5. ls -l Un fichier vide du nom de TOTO (en majuscules) doit apparaître. Si vous le voyez en minuscules, quelque chose s'est mal passé. Essayez de recommencer à l'étape du umssync. Vous pouvez utiliser umssync autant de fois que vous voulez sans problèmes. umssync . S'il n'y a pas de message d'erreur, refaites le test pour TOTO. Si TOTO apparait bien, alors tout va pour le mieux. Cette installation avait quelque chose de bizarre mais vous avez réussi quand même. Continuez.
  6. Appuyez sur Alt-F1 pour revenir à l'écran d'installation.

Si le test n'a pas marché, la meilleure solution est de prendre une disquette d'installation plus récente. Il est généralement possible de résoudre ce problème en installant une version plus récente de umssync. Ce n'est pas difficile mais cela nécessite un système Linux en état de marche. Vous avez juste à monter le lecteur de disquette et à remplacer la version caduque de umssync par une nouvelle.

6.4 Oops releasing pseudo root ...

La plupart des installations qui ne marchent pas le font en donnant ce message étrange. Ce n'est pas un bug dans Umsdos bien que ce message puisse paraître vraiment bizarre. Voici les causes connues :

Malheureusement, les deux premiers problèmes d'installation donnent une installation complètement inutilisable. Il va falloir désinstaller puis réinstaller Umsdos.

6.5 Comment désinstaller un système Umsdos

Il y a quelque chose de pratique avec Umsdos et son mécanisme de pseudo-racine, c'est que vous pouvez le désinstaller sans douleur. Il suffit de démarrer sous DOS et d'effacer récursivement tous les répertoires linux. C'est tout. Umsdos n'a pas besoin de drivers particuliers dans le fichier config.sys, et il ne crée rien de spécial en dehors du répertoire linux.

6.6 Déplacer un système Umsdos vers un autre lecteur DOS

Cela peut être fait à partir de Linux ou du DOS. Il suffit juste de copier récursivement les répertoires linux d'un lecteur vers l'autre. Ensuite il faudra modifier le mécanisme de démarrage (généralement avec la commande loadlin) et le fichier /etc/fstab.

Umsdos peut être installé sur n'importe quel lecteur DOS. Il n'est pas obligatoire de l'installer sur le lecteur C:, ni même sur le premier disque dur. Cela ne change rien.

En fait, vous pouvez même décider d'avoir plusieurs installations de Umsdos sur différents lecteurs pour faire des tests.

6.7 Installer 50 systèmes Umsdos.

Pourquoi ne pas installer tout un tas de systèmes Linux en un rien de temps ?

Umsdos repose sur le mode du DOS. Vous pourvez tirer partie de cette particularité si vous voulez installer Linux facilement.

Vous pouvez ainsi installer et configurer un système Umsdos sur un site. Lorsque vous êtes satisfait de la configuration obtenue et des paquetages sélectionnés, vous pouvez démarrer sous DOS et copier la totalité du répertoire linux sur votre serveur de fichiers DOS. Ensuite il vous suffit d'aller sur une autre station DOS et de copier les fichiers du lecteur réseau vers le lecteur local. C'est tout. Il ne vous reste plus qu'à modifier le script de démarrage (Loadlinx) et c'est parti.

Avec quelques modifications minimes (nom de l'hôte, adresse IP), n'importe qui pourra installer un système Linux en deux temps trois mouvements.

Les lecteurs intéressés auront pu remarquer qu'il est aussi possible d'installer n'importe quel système Linux de la même manière, y compris les systèmes basés sur Ext2.

Un des aspects les plus sympathiques de Linux est qu'il n'y a pas de fichiers cachés qui doivent absolument être installés par des programmes "magiques".

7. Configurer une section Linux dans une partition DOS.

Umsdos peut se révéler utile même aux utilisateurs de Ext2 (le système de fichiers natif de Linux). Un scénario classique est le suivant :

C'est ici que Umsdos peut vous aider. Vous pouvez configurer un répertoire Linux sur votre partition DOS, et l'utiliser sans restriction sous Linux. Par exemple, supposons que vous voulez créer un nouveau répertoire nommé "extra" sur votre lecteur C:, et que vous voulez qu'il se comporte comme un répertoire Linux normal. Faites ceci : (en supposant que C: est /dev/hda1)

        mkdir /c
        /sbin/mount -t umsdos /dev/hda1 /c
        mkdir /c/extra
        umssync /c/extra
        

Il vous faut être sous root pour exécuter ces commandes

En configurant /etc/fstab comme ceci, vous aurez toujours accès au répertoire /c/extra.

8. Pourquoi Umsdos ?

Expliquer le fonctionnement et l'installation d'un système Umsdos ne suffit pas. Ce que la plupart des gens cherche, ce sont des conseils pour savoir s'ils doivent utiliser Umsdos ou non.

8.1 Le but de Umsdos

Le but de Umsdos est de faciliter l'installation de Linux. Un autre but est de faciliter sa DES-installation. L'idèe ici était de favoriser la diffusion de Linux. Installer un nouveau système d'exploitation est toujours problématique. OS/2 par exemple va gentiment polluer la racine de votre lecteur C: avec tout un tas de nouveaux répertoires. Si vous êtes aussi doué que moi, il va même effacer vos fichiers config.sys et autoexec.bat :-( (NdT : Tant qu'à faire !).

L'utilisation de la pseudo-racine permet d'éviter cette invasion non désirée, et Linux peut être désinstallé sans effets de bord.

8.2 Qui en a besoin ?

Si vous avez un petit disque dur, Umsdos va vous permettre de partager l'espace disque entre le DOS et Linux. A mon avis, on peut considérer qu'un disque de moins de 300 Mo est un petit disque. Cette opinion repose sur la taille des différents paquetages disponibles à l'heure actuelle. Un traitement de textes populaire veut prendre jusqu'à 70 Mo si vous choisissez toutes les possibilités.

Si vous avez un disque plus gros, vous pouvez choisir d'avoir une partition dédiée à Linux utilisant le système de fichiers Ext2. Ext2 utilise une taille de clusters plus petite que DOS (en fait 1 Ko), donc installer beaucoup de petits fichiers prendra moins de place que sur une partition Umsdos.

8.3 Performances

Ceci s'applique à une comparaison entre Umsdos et Ext2.