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é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.
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.