jacques@solucorp.qc.ca
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.
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).
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 !)
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
.
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.
Jacques Gelinas jacques@solucorp.qc.ca
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 :
C:\LINUX\BIN
C:\LINUX\ETC
C:\LINUX\LIB
C:\LINUX\ROOT
C:\LINUX\SBIN
C:\LINUX\TMP
C:\LINUX\USR
C:\LINUX\VAR
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 :
/bin
/etc
/lib
/root
/sbin
/tmp
/usr
/var
Il ajoute de plus à cette liste un nouveau
répertoire appelé DOS
, qui est
virtuel.
/mnt
, vous trouverez
tous vos répertoires linux dans /mnt/linux/bin,
/mnt/linux/etc
et ainsi de suite.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.
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 /
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
.)
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.
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:
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.
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.
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.
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-.---
.
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.
???
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.
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 :
--linux-.---
.--linux-.---
et le contenu actuel du
répertoire.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.
/sbin/umssync
au
démarrageC'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.
Effacez le fichier --linux-.---
en utilisant
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 :
/var/adm/syslog
).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.
/mnt/linux
Les étapes normales lors de l'installation sont :
/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
.
/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 :
mkdir /mnt/linux
umssync /mnt/linux
Et c'est tout !
/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 :
Alt-F2
(Appuyez sur la touche
Alt
et en même temps sur la touche
F2
).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.>TOTO
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.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.
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 :
L'installation de la Slackware essaye de configurer un fichier de swap très tôt lors de l'installation. Pour ce faire, elle vous demande de sélectionner une partition (lecteur DOS), puis elle la monte et crée pour finir le fichier de swap.
Lors de l'installation d'un système Slackware,
vous devez configurer la partition cible avant de commencer
à installer autre chose. Cela monte normalement la partition
DOS sur /mnt
, crée le
répertoire /mnt/linux
et lance
umssync
dessus.
C'est de là que viennent la plupart des problèmes.
Un grand nombre d'utilisateurs sautent l'étape
"configuration de la partition cible" et passent directement au
reste de l'installation. Comme /mnt
est
déjà monté, cette erreur n'est pas
remarquée. Cela signifie que /mnt/linux
n'a pas
été correctement crée (non promu). Donc tous
les fichiers dont le nom est trop long, ainsi que tous les fichiers
spéciaux (liens, fichiers périphériques) ne
peuvent pas être crées correctement.
umssync
non valide
/mnt/linux
a été mal
configuré, généralement à cause de
l'utilitaire umssync
non valide sur la disquette
d'installation.
Il y avait un bug dans Umsdos avant Linux
1.2.2. Le mode pseudo-racine ne s'activait pas correctement si
le fichier /etc/init
n'était pas
présent. init
se trouve maintenant dans
/sbin
. Vous pouvez résoudre ce problème
en vous procurant un noyau plus récent. C'est d'autant plus
recommandé qu'un nouveau bug a été
détecté et corrigé dans la version 1.2.2.
Si vous n'avez pas de version plus récente, faites ceci :
mount -t umsdos /dev/hdXX /mnt
oû
/dev/hdXX
est votre partition DOS.cd /mnt/linux/etc
ln -s ../sbin/init init
cd /
Ctrl-Alt-Del
Malheureusement, les deux premiers problèmes d'installation donnent une installation complètement inutilisable. Il va falloir désinstaller puis réinstaller 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
.
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.
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".
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
.
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.
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.
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.
Ceci s'applique à une comparaison entre Umsdos et Ext2.
FAT
qui se trouve
au début du disque dur. Le système DOS est
donc certainement plsu fragile à cause de cela.