mirror of https://github.com/tLDP/LDP
772 lines
25 KiB
Plaintext
772 lines
25 KiB
Plaintext
<!doctype linuxdoc system>
|
|
|
|
<article>
|
|
|
|
<title>UMSDOS HOW-TO
|
|
<author>Jacques Gelinas, <tt/jacques@solucorp.qc.ca/
|
|
<date>v1.2, 2001-12-01
|
|
<abstract>
|
|
|
|
<em/Umsdos/ is a linux file system. It provide an alternative
|
|
to the <em/EXT2/ file-system. Its main goal is to achieve
|
|
easier coexistence with <em/Ms-DOS/ data by sharing the same
|
|
partition.
|
|
|
|
This document explain first how to use Umsdos in different
|
|
configuration, and later explain its operation and try to
|
|
provide some information letting you decide if it is
|
|
a good choice for you (see UMSDOS-WHY-TO at the end).
|
|
|
|
</abstract>
|
|
|
|
<toc>
|
|
|
|
<sect>Copyright and License
|
|
<p>
|
|
This document is Copyright (c) 1995 by Jacques Gelinas.
|
|
<p>
|
|
It is released under the terms of the GNU Free Documentation License.
|
|
A copy of the license should have been distributed with it, or you can
|
|
see a copy at
|
|
<url url="http://www.fsf.org/licenses/fdl.html">.
|
|
|
|
<sect>UMSDOS: Where is it ?
|
|
<p>
|
|
|
|
<sect1>Copyright and License
|
|
<p>
|
|
This document is Copyright (c) 1995, Jacques Gelinas.
|
|
<p>
|
|
It may be distributed under the GNU Free Documentation License.
|
|
You should have received a copy with it. If not, you can view it at
|
|
<url url="http://www.fsf.org/licenses/fdl.html">.
|
|
|
|
<sect1>History
|
|
<p>
|
|
|
|
The <em/Umsdos/ project was started in 1992 and made available
|
|
to the net in January 1994 as a patch. It was included in the standard
|
|
kernel distribution in July, starting with kernel 1.1.36.
|
|
|
|
<em/Umsdos/ was early adopted in the <em/Slackware/ distribution
|
|
even before it was officially included in the official kernel.
|
|
|
|
<em/Umsdos/ was improved starting at kernel 1.1.60. Its performance
|
|
has been dramatically enhanced, especially for writing. Since 1.1.70
|
|
(around this), it is stable again.
|
|
|
|
A major bug was solve in <em/Linux/ 1.2.2. This bug was causing
|
|
some grief to users since the beginning (some file were
|
|
silently renamed, giving the sad impression that they were
|
|
deleted). Beware that <em/Slackware/ 2.2 is still shipping
|
|
release 1.2.1 of the kernel, so has this bug.
|
|
|
|
<sect1>Availability
|
|
<p>
|
|
|
|
It is available as a patch for kernel 1.0.x. It is built-in
|
|
for kernel 1.2. It can be compiled in or load as a module.
|
|
Beware that for now, if you intend to load <em/umsdos/ as a module,
|
|
you must also use the Ms-DOS fs as a module. This come from
|
|
a limitation in the module system (some symbols are only
|
|
export when the drivers is installed as a module).
|
|
|
|
<sect1>Distribution supporting it
|
|
<p>
|
|
|
|
So far, I think only <em/Slackware/ does support it. I am surely
|
|
wrong, so please send me info to correct this.
|
|
|
|
<sect1>Home site
|
|
<p>
|
|
|
|
The home site for <em/Umsdos/ is sunsite.unc.edu. Look in
|
|
the directory <tt>/pub/Linux/system/Filesystems/umsdos</tt>.
|
|
|
|
<sect1>Technical documentation
|
|
<p>
|
|
There is quite a lot of documentation about the internal of
|
|
<em/Umsdos/. It is available both in <tt/HTML/ and text format
|
|
at the same location as the utilities.
|
|
|
|
As far as I know, the <tt/HTML/ version is not available online
|
|
on any web site. You must down-load it and "UN-tar" it and
|
|
read it locally.
|
|
|
|
<sect1>Who wrote it
|
|
<p>
|
|
|
|
Jacques Gelinas jacques@solucorp.qc.ca
|
|
|
|
<sect>Umsdos as your root partition
|
|
<p>
|
|
|
|
<sect1>The pseudo-root concept.
|
|
<p>
|
|
With <em/Umsdos/, <em/Linux/ can be installed in a standard
|
|
DOS partition. <em/Linux/ is then installed as a second (or
|
|
third) OS in the partition. To avoid name collision (there
|
|
is maybe a bin or tmp directory in the drive C: already),
|
|
<em/Umsdos/ use
|
|
a smart trick: The pseudo-root.
|
|
|
|
All <em/Linux/ files are installed in a DOS subdirectory
|
|
called <tt/linux/, generally <tt/C: LINUX/. The normal
|
|
<em>Linux/Unix</em> directory structure goes there. So you
|
|
get
|
|
|
|
<itemize>
|
|
<item> <verb/C:\LINUX\BIN/
|
|
<item> <verb/C:\LINUX\ETC/
|
|
<item> <verb/C:\LINUX\LIB/
|
|
<item> <verb/C:\LINUX\ROOT/
|
|
<item> <verb/C:\LINUX\SBIN/
|
|
<item> <verb/C:\LINUX\TMP/
|
|
<item> <verb/C:\LINUX\USR/
|
|
<item> <verb/C:\LINUX\VAR/
|
|
</itemize>
|
|
|
|
When the <em/Umsdos/ boot, it probes for the directory <tt/linux/
|
|
and then <tt>/linux/etc</tt>. If it exist, it activates
|
|
the pseudo-root mode.
|
|
|
|
Mostly, the pseudo-root mode switch the root of the partition
|
|
to <tt/C:\\LINUX/ giving the conventional <em/Unix/ directory
|
|
layout
|
|
|
|
<itemize>
|
|
<item><verb>/bin</verb>
|
|
<item><verb>/etc</verb>
|
|
<item><verb>/lib</verb>
|
|
<item><verb>/root</verb>
|
|
<item><verb>/sbin</verb>
|
|
<item><verb>/tmp</verb>
|
|
<item><verb>/usr</verb>
|
|
<item><verb>/var</verb>
|
|
</itemize>
|
|
|
|
To this list, it adds a new one called <tt/DOS/. This one is
|
|
a virtual directory.
|
|
|
|
<sect1>Things to know about the pseudo-root
|
|
<p>
|
|
<itemize>
|
|
<item> This mode can only be triggered
|
|
at boot time. There is no way to activate this by
|
|
a mount command.
|
|
<item> This mechanism is purely a different view of a normal
|
|
<em/Umsdos/ file-system. This means that a partition normally
|
|
used as a root partition can be normally mounted. There won't
|
|
be any pseudo-root effect.
|
|
|
|
For example, if you boot linux with a maintenance floppy and
|
|
mount your normal root partition in <tt>/mnt</tt>, you will
|
|
find all your linux directory in
|
|
<tt>/mnt/linux/bin, /mnt/linux/etc</tt> and so on.
|
|
</itemize>
|
|
|
|
|
|
|
|
<sect>Different topics about the operation of <em/Umsdos/
|
|
<p>
|
|
|
|
<sect1>Mount option
|
|
<p>
|
|
|
|
You can use the same mount option as for the Ms-DOS file system.
|
|
The option conv= is questionable on a <em/Umsdos/ system. I suggest
|
|
to avoid it. Mostly the option you may want to look at are
|
|
|
|
<itemize>
|
|
<item>uid=
|
|
<item>gid=
|
|
<item>umask=
|
|
</itemize>
|
|
|
|
Just remember that <em/Umsdos/ manage non promoted directory
|
|
the same way as the <em/Ms-DOS/ file system. The option above
|
|
will apply globally to all non promoted directory. <em/uid/
|
|
setup the default owner, <em/gid/ setup the default group
|
|
and <em/umask/ setup the default permissions.
|
|
|
|
<sect1>How to set defaults for the root
|
|
<p>
|
|
|
|
umssetup was created to provide at run time default ownership
|
|
for the root partition. For other <em/Umsdos/ partition, mount
|
|
option may be used or umssetup. Storing mount option in /etc/fstab
|
|
is the prefered way for non root partition. Here is an example.
|
|
Put this in /etc/rc.d/rc.S.
|
|
|
|
<tscreen><verb>
|
|
/sbin/umssetup -u jack -g group -m 0755 /
|
|
</verb></tscreen>
|
|
|
|
<sect1>To swap or not to swap
|
|
<p>
|
|
|
|
Using a swap file is generally slower than a swap partition.
|
|
It is however much more flexible. You can setup a swap file
|
|
in a <em/Umsdos/ partition the same way you do it for any
|
|
other <em/Linux/ file systems. For example, to setup a
|
|
8 megabytes swap file in the root directory:
|
|
|
|
<tscreen><verb>
|
|
dd if=/dev/zero bs=1024k count=8 of=/swap
|
|
mkswap /swap 8192
|
|
sync
|
|
swapon /swap
|
|
</verb></tscreen>
|
|
|
|
Once done, you can put the following line in /etc/fstab
|
|
|
|
<tscreen><verb>
|
|
/swap swap swap default
|
|
</verb></tscreen>
|
|
|
|
And the swap file will be activated at each boot (There is
|
|
generally a "swapon -a" in <tt>/etc/rc.d/rc.S</tt>).
|
|
|
|
<sect>How to boot a Umsdos system
|
|
<p>
|
|
|
|
<sect1>Loadlin
|
|
<p>
|
|
|
|
The package lodlin15.tgz available from sunsite.unc.edu
|
|
in <tt>/pub/Linux/system/Bootutils</tt>. This utility
|
|
is particularly suited to boot a <em/Umsdos/ system. Generally
|
|
all you need to do is
|
|
|
|
<tscreen><verb>
|
|
Boot DOS
|
|
C:>loadlinx zimage root=D:
|
|
</verb></tscreen>
|
|
|
|
where zimage is a normal kernel image (compressed) simply copied
|
|
somewhere in the DOS drive. <tt/D:/ is the DOS drive where you
|
|
have installed <em/Linux/.
|
|
|
|
<sect1>From a floppy
|
|
<p>
|
|
|
|
Booting a <em/Umsdos/ system from a floppy is not different from
|
|
booting a <em/Ext2/ system. You need a kernel zImage file properly
|
|
initialize to locate your root <em/Umsdos/ partition. This
|
|
is generally achieved using the command <tt/rdev/. The following
|
|
sequence will initialize a zImage and put it on a floppy.
|
|
|
|
<tscreen><verb>
|
|
rdev zImage /dev/hda1
|
|
rdev -R zImage 0
|
|
dd if=zImage bs=8192 of=/dev/fd0
|
|
</verb></tscreen>
|
|
|
|
If this looks confusing, just format a boot-able DOS floppy
|
|
and put the following component on it.
|
|
|
|
<itemize>
|
|
<item>loadlin.exe
|
|
<item>loadlinx.exe
|
|
<item>zimage
|
|
</itemize>
|
|
|
|
and setup the autoexec.bat like this
|
|
|
|
<tscreen><verb>
|
|
loadlinx zimage rw root=C:
|
|
</verb></tscreen>
|
|
|
|
<sect1>LILO
|
|
<p>
|
|
|
|
LILO, the official <em/Linux/ boot loader can also be used
|
|
to boot a <em/Umsdos/ system. I have no experience with it
|
|
though. Since 1.1.60, it should work. Please email if you know
|
|
something.
|
|
|
|
<sect1>How to defragment a <em/Umsdos/ partition
|
|
<p>
|
|
|
|
It can be done using any popular DOS tool. There is nothing
|
|
particular about file produced by <em/Umsdos/. And <em/Umsdos/
|
|
do not expect anything particular (directory layout, directory
|
|
entry sequence, etc...) from the file system under it.
|
|
|
|
As far as I know, there is no <em/Linux/ tool to achieve this.
|
|
|
|
<sect1>Advance tricks
|
|
<p>
|
|
<em/Umsdos/ rely on the <tt/--linux-.---/ which rely on the
|
|
<em/DOS/ directory. Some users may want to experiment
|
|
a bit. The utility <tt/udosctl/ part of the umsdos_progs
|
|
package (containing <tt/umssync/ and <tt/umssetup/) allows
|
|
basic directory operation (listing, deletion) independently
|
|
on the <tt/--linux-.---/ and the <em/DOS/ directory.
|
|
|
|
|
|
<sect>Basic principle
|
|
<p>
|
|
|
|
<sect1>Introduction
|
|
<p>
|
|
|
|
<em/Umsdos/ map <em/Linux/ files directly to <em/Ms-DOS/ files.
|
|
This is a one for one translation. File content is not manipulated
|
|
at all. <em/Umsdos/ only works on names. For special files (links
|
|
and devices for example), it introduces special management.
|
|
|
|
For each directory, there is a file named <tt/--linux-.---/.
|
|
|
|
<sect1><em/Umsdos/ can replace the <em/Ms-DOS/ file-system.
|
|
<p>
|
|
|
|
<em/Umsdos/ can be thought as a general purpose superset
|
|
of the <em/Ms-DOS/ file system of linux. In fact this
|
|
capability or flexibility yields much confusion about
|
|
<em/Umsdos/. Here is why. Try to mount a newly formatted
|
|
<em/DOS/ floppy like this.
|
|
|
|
<tscreen><verb>
|
|
mount -t umsdos /dev/fd0 /mnt
|
|
</verb></tscreen>
|
|
|
|
And do this,
|
|
|
|
<tscreen><verb>
|
|
ls / >/mnt/LONGFILENAME
|
|
ls -l /mnt
|
|
</verb></tscreen>
|
|
|
|
You will get the following result
|
|
|
|
<tscreen><verb>
|
|
-rwxr-xr-x 1 root root 302 Apr 14 23:25 longfile
|
|
</verb></tscreen>
|
|
|
|
So far, it seems that the <em/Umsdos/ file system does not do
|
|
much more (in fact nothing at all) than the normal <em/Ms-DOS/
|
|
file system of <em/Linux/.
|
|
|
|
<em/???/
|
|
|
|
<sect1>Directory promotion
|
|
<p>
|
|
|
|
Pretty unimpressive so far. Here is the trick. Unless promoted
|
|
a <em/DOS/ directory will be managed the same way with <em/Umsdos/
|
|
than the <em/Ms-DOS/ file-system will. <em/Umsdos/ use a special
|
|
file in each subdirectory to achieve the translation between
|
|
the extended capabilities (long name, ownership, etc...) of
|
|
<em/Umsdos/ and the limitation of the <em/DOS/ file-system.
|
|
This file is invisible to <em/Umsdos/ users, but visible when
|
|
you boot <em/DOS/. To avoid cluttering the <em/DOS/ partition
|
|
with those file (<tt/--linux-.---/) uselessly, the file is now
|
|
optional. If absent, <em/Umsdos/ behave like <em/Ms-DOS/.
|
|
|
|
When a directory is promoted, any subsequent operation will be
|
|
done with the full semantic normally available to <em/Unix/ and
|
|
<em/Linux/ users. And all subdirectory created afterward will
|
|
be silently promoted.
|
|
|
|
This feature allows you to logically organize your <em/DOS/ partition
|
|
into <em/DOS/ stuff and <em/Linux/ stuff. It is important to
|
|
understand that those <tt/--linux-.---/ file do take some place
|
|
(generally 2k per directory). <em/DOS/ generally use large
|
|
cluster (as big as 16k for a 500meg partition), so avoiding
|
|
putting <tt/--linux-.---/ everywhere can save your day.
|
|
|
|
<sect1>How to promote: <tt>/sbin/umssync</tt>
|
|
<p>
|
|
|
|
A directory can be promoted any time using <tt>/sbin/umssync</tt>.
|
|
It can be used at any time. Promoting a directory do the
|
|
following operation
|
|
|
|
<itemize>
|
|
<item>Create a <tt/--linux-.---/.
|
|
<item>Establish a one to one relation between the <tt/--linux-.---/
|
|
and the current content of the directory.
|
|
</itemize>
|
|
|
|
<tt>/sbin/umssync</tt> maintain an existing <tt/--linux-.---/ file.
|
|
It does not create it from scratch all the time. It simply add
|
|
missing entries in it (Files created during a <em/DOS/ session).
|
|
It will also removed files which do not exist anymore in the
|
|
<em/DOS/ directory from the <em/--linux-.---/. <tt/umssync/ gets
|
|
its name from that. It put <em/--linux-.---/ in sync with
|
|
the underlying <em/DOS/ directory.
|
|
|
|
<sect1>Using <tt>/sbin/umssync</tt> at boot time
|
|
<p>
|
|
It is a good idea to place a call to <tt>/sbin/umssync</tt>
|
|
at the end of your /etc/rc.d/rc.S if it's not there. The following
|
|
command is adequate for most system:
|
|
|
|
<tscreen><verb>
|
|
/sbin/umssync -r99 -c -i+ /
|
|
</verb></tscreen>
|
|
|
|
The <tt/-c/ option prevent <tt/umssync/ from promoting
|
|
directories. It will only update existing <tt/--linux-.---/.
|
|
|
|
This command is useful if you access <em/Linux/ directory during
|
|
a <em/DOS/ session. <em/Linux/ has no efficient way to tell that
|
|
a directory has been modified by <em/DOS/ so <em/Umsdos/ can't
|
|
do a <em/umssync/ operation as needed.
|
|
|
|
<sect1>How to UN-promote
|
|
<p>
|
|
|
|
Remove the <tt/--linux-.---/ file using <em/DOS/. You will
|
|
be sorry.
|
|
|
|
<sect1>What about files created during a <em/DOS/ session ?
|
|
<p>
|
|
|
|
Unless you use <tt/umssync/ on a directory where files have
|
|
been added or removed by <em/DOS/, you will notice some problems:
|
|
|
|
<itemize>
|
|
<item>It won't crash the system nor it won't cause major
|
|
problems, only annoyance :-)
|
|
<item>Files created by <em/DOS/.
|
|
<itemize>
|
|
<item>They will be invisible in <em/Linux/.
|
|
<item>When trying to create a file with the same name,
|
|
you will get an error message stating that the
|
|
file already exist.
|
|
<item>This creates more confusion that real problem. It
|
|
does not harm the file system.
|
|
</itemize>
|
|
<item>Files deleted by <em/DOS/ won't cause problem. <em/Umsdos/
|
|
will notice the absence at the first access. A message
|
|
will be output (and generally written into
|
|
<tt>/var/adm/syslog</tt>).
|
|
</itemize>
|
|
|
|
<sect>Installation/UN-installation and some tricks
|
|
<p>
|
|
The installation of a <em/Umsdos/ is not much different
|
|
from the installation of an ordinary (<em/Ext2 based/) <em/Linux/
|
|
system.
|
|
|
|
There are two main differences.
|
|
|
|
<sect1>The pseudo-root <tt>/mnt/linux</tt>
|
|
<p>
|
|
The normal steps for an installation are
|
|
|
|
<enum>
|
|
<item>Setting a partition with fdisk and formatting it.
|
|
<item>Mounting it as /mnt relative to our installation
|
|
root disk.
|
|
<item>Copy all packages into <tt>/mnt</tt>.
|
|
</enum>
|
|
|
|
With <em/Umsdos/, the step 1 is not required (wasn't it the goal
|
|
of <em/Umsdos/ not to reformat ?).
|
|
|
|
It is possible to install a <em/Umsdos/ system just by copying
|
|
all packages into <tt>/mnt</tt>. This will certainly work. But it
|
|
will create a
|
|
bunch of subdirectories into your <em/DOS/ root directory (C:) and
|
|
you won't like it. This is the reason all <em/Umsdos/ installation
|
|
use the pseudo-root. And this is the major difference between
|
|
a normal <em/Ext2/ installation and a <em/Umsdos/ one: All files
|
|
are copied into <tt>/mnt/linux</tt>.
|
|
|
|
<sect1>Preparing <tt>/mnt/linux</tt>
|
|
<p>
|
|
<tt>/mnt/linux</tt> is not an ordinary directory. It has to
|
|
be promoted so it will correctly handle <em/Linux/ long file name
|
|
and special files (links, device). The step required to
|
|
setup <tt>/mnt/linux</tt> are:
|
|
|
|
<enum>
|
|
<item><tt>mkdir /mnt/linux</tt>
|
|
<item><tt>umssync /mnt/linux</tt>
|
|
</enum>
|
|
|
|
That's it!
|
|
|
|
<sect1>Making sure <tt>/mnt/linux</tt> is correctly setup
|
|
<p>
|
|
Even if the setup of <tt>/mnt/linux</tt> is pretty simple, there
|
|
are many installation package out there who get it wrong. How can ?
|
|
|
|
<!-- <quote> -->
|
|
The biggest installation problem come from an incompatible
|
|
<tt/umssync/ program. <em/Umsdos/ has been update in
|
|
linux 1.1.88 (Can't remember exactly) and a flaw was uncovered
|
|
in <tt>umssync</tt>. To avoid confusion in the <em/Linux/
|
|
community, it was decided to raise the compatibility
|
|
level required for all <em/Umsdos/ tools. Old version
|
|
of the tools were simply rejected.
|
|
|
|
It sounds like many distribution did not update their
|
|
<tt>umssync</tt> utility on the installation disk.
|
|
<!-- </quote> -->
|
|
|
|
There are still many distribution like this out there. The net result
|
|
is that the directory <tt>/mnt/linux</tt> is not promoted at all
|
|
and will truncate all long file name and will reject all special
|
|
file.
|
|
|
|
It is possible to do a test very early during the installation to
|
|
find out if something went wrong. Thanks to the pseudo console
|
|
mechanism of <em/Linux/, you can do that without leaving the
|
|
installation program. Do the following steps:
|
|
|
|
<enum>
|
|
<item>Press <tt>Alt-F2</tt> (<tt/Alt/ key at the same time
|
|
as the <tt/F2/ key).
|
|
<item>login as root.
|
|
<item><tt>cd /mnt/linux</tt>
|
|
|
|
If this fail, you are trying this too early. A good time
|
|
to do this is at the end of the packages selection.
|
|
<item><tt>>TOTO</tt>
|
|
<item><tt>ls -l</tt>
|
|
|
|
You should see an empty file <tt/TOTO/ in uppercase. If you
|
|
see it in lowercase, something went wrong. Try to do
|
|
the <tt/umssync/ step again. <tt/umssync/ can be use over
|
|
and over without problem.
|
|
|
|
<tt>umssync .</tt>
|
|
|
|
If there is no error message, try the <tt/TOTO/ test again.
|
|
If
|
|
<tt/TOTO/ appears fine, then all is OK. Something is strange
|
|
in this installation, but you just save it. Continue
|
|
|
|
<item>Press <tt>Alt-F1</tt> to get back to the installation screen.
|
|
</enum>
|
|
|
|
<!-- <code> -->
|
|
If the test fail, the best fix is to get a newer installation
|
|
root disk. You can generally fix this root disk by installing
|
|
a newer version of <tt/umssync/. This is not difficult but
|
|
required a working <em/Linux/ system. You simply have to
|
|
mount the root disk floppy and replace the offending
|
|
<tt/umssync/ with a new one.
|
|
<!-- </quote> -->
|
|
|
|
<sect1>Oops releasing pseudo root ...
|
|
<p>
|
|
Most <em/Umsdos/ installation which fail, do this by printing
|
|
this strange message. This is not a bug in <em/Umsdos/ although
|
|
the message looks strange. Here are the known causes.
|
|
|
|
<itemize>
|
|
<item>The most common one
|
|
<p>
|
|
The <em/Slackware/ installation try to setup a swap
|
|
file very early during the installation. To do so, it asks
|
|
you to select a partition (dos drive), then mount it and
|
|
set the swap file.
|
|
|
|
When installing a <em/Slackware/ system, you must setup
|
|
the target partition prior to install. This normally
|
|
mounts the <em/DOS/ partition on <tt>/mnt</tt>, creates
|
|
the <tt>/mnt/linux</tt> directory and applies <tt/umssync/
|
|
on it.
|
|
|
|
This is where most problems come from. Most user just
|
|
forget the "setup target partition" step and go directly
|
|
to the rest of the installation. Since <tt>/mnt</tt> is
|
|
already mounted, this mistake goes unnotice.
|
|
This means that <tt>/mnt/linux</tt>
|
|
was not created properly (Not promoted). All special files
|
|
and links and long names can't be created properly.
|
|
|
|
<item>Invalid umssync utility
|
|
<p>
|
|
<tt>/mnt/linux</tt> was improperly setup-ed. Generally caused
|
|
by an improper <tt>umssync</tt> utility on the installation
|
|
root disk.
|
|
<item>Old bug in umsdos
|
|
<p>
|
|
There was a bug in <em/Umsdos/ prior to <em/Linux 1.2.2/. The
|
|
pseudo-root mode would not activate properly if the
|
|
file <tt>/etc/init</tt> was missing. <tt/init/ is now located
|
|
in <tt>/sbin</tt>. You can fix it by getting a newer kernel.
|
|
This is recommended because another bug was uncover and fixed
|
|
in 1.2.2.
|
|
|
|
If you can't upgrade, do this
|
|
|
|
<enum>
|
|
<item>Boot from you installation disk.
|
|
<item>Login as root.
|
|
<item><tt>mount -t umsdos /dev/hdXX /mnt</tt>
|
|
|
|
where <tt>/dev/hdXX</tt> is your <em/DOS/ partition.
|
|
<item><tt>cd /mnt/linux/etc</tt>
|
|
<item><tt>ln -s ../sbin/init init</tt>
|
|
<item><tt>cd /</tt>
|
|
<item><tt>Ctrl-Alt-Del</tt>
|
|
<item>Boot your <em/Umsdos/ normally.
|
|
</enum>
|
|
</itemize>
|
|
|
|
Unfortunatly, the first two (Installation problems) produce a completly
|
|
unusable installation. Uninstall it (See next section) and install
|
|
again.
|
|
|
|
|
|
<sect1>How to UN-install a <em/Umsdos/ system
|
|
<p>
|
|
One neat thing about <em/Umsdos/ and its pseudo-root
|
|
mechanism, is that you can UN-install it without pain. You
|
|
just boot <em/DOS/ and recursively delete the <tt/linux/
|
|
directory. That's all. <em/Umsdos/ requires no special
|
|
drivers in the config.sys, nor it creates anything
|
|
special outside of the <tt/linux/ directory.
|
|
|
|
<sect1>Moving a <em/Umsdos/ system to another <em/DOS/ drive
|
|
<p>
|
|
This can be done from <em/Linux/ or from <em/DOS/.
|
|
You just have to copy recursively the <tt/linux/ directory
|
|
from one drive to the other. After that you will have to
|
|
adjust you boot mechanism (generally loadlin command) and
|
|
the <tt>/etc/fstab</tt> file.
|
|
|
|
<em/Umsdos/ can live on any <em/DOS/ drive. There is no
|
|
need to install it on the <tt/C:/ drive, nor it is important
|
|
to have it on the first hard drive. It does not matter at
|
|
all.
|
|
|
|
In fact, one may decide to have several <em/Umsdos/ installations
|
|
on different drive just to do experiments.
|
|
|
|
<sect1>About installing 50 <em/Umsdos/ systems.
|
|
<p>
|
|
How about installing a bunch of <em/Linux/ systems in no time ?
|
|
|
|
<em/Umsdos/ systems are living in a <em/DOS/ world. You can
|
|
take advantage of this if you wish to install <em/Linux/ easily.
|
|
|
|
You can install and configure a <em/Umsdos/ system at your site.
|
|
When you are satisfied with the configuration and the different
|
|
packages you have selected, you can boot <em/DOS/ and copy
|
|
the complete <tt/linux/ directory to your <em/DOS/ file
|
|
server. Then you go to other <em/DOS/ station and simply
|
|
copy the files on the network drive to the local drive.
|
|
That's it. Only adjust the boot script (<em/Loadlinx/) and go.
|
|
|
|
With minimal adjustment (Host name, IP number), anyone will
|
|
be able to install a <em/Linux/ system in a matter of minute.
|
|
|
|
Interest readers may note that installing <em/Linux/ systems
|
|
by copying running system also works for any other <em/Linux/
|
|
systems, including <em/Ext2/ based one.
|
|
|
|
One beauty of <em/Linux/ is that there is no hidden files which
|
|
have to be install by magic installation program.
|
|
|
|
<sect>Setting a <em/Linux/ section in a <em/DOS/ partition
|
|
<p>
|
|
<em/Umsdos/ has some use even for <em/Ext2/ (Native <em/Linux/
|
|
file-system) users. One common scenario is this:
|
|
|
|
<itemize>
|
|
<item><em/Linux/ being your <em/OS/ of choice, the <em/Linux/
|
|
partition start to fill and fill and fill.
|
|
<item>Your <em/DOS/ partition is collecting dust, being half empty.
|
|
<item>You are suddenly out of space in the <em/Ext2/ partition.
|
|
<item>You are still not sure you want to get rid of <em/DOS/.
|
|
</itemize>
|
|
|
|
<em/Umsdos/ may save the day here. You can setup a <em/Linux/
|
|
directory in the <em/DOS/ partition and use it without restriction
|
|
for <em/Linux/ usage. For example, say you want to setup a new
|
|
directory named <tt/"extra"/ in your <tt/C:/ drive. And you want this
|
|
directory to behave as a normal <em/Linux/ directory. Do this
|
|
(assuming that C: is /dev/hda1).
|
|
|
|
<tscreen><verb>
|
|
mkdir /c
|
|
/sbin/mount -t umsdos /dev/hda1 /c
|
|
mkdir /c/extra
|
|
umssync /c/extra
|
|
</verb></tscreen>
|
|
|
|
You must be root to do this.
|
|
|
|
By setting up <tt>/etc/fstab</tt> like this, you will always
|
|
have access to the <tt>/c/extra</tt> directory.
|
|
|
|
|
|
<sect>UMSDOS-WHY-TO
|
|
<p>
|
|
Explaining how to operate or install a <em/Umsdos/ system
|
|
is not enough. Most people are seeking some advises about
|
|
using <em/Umsdos/ or not.
|
|
|
|
|
|
<sect1>The goal of <em/Umsdos/
|
|
<p>
|
|
The goal of <em/Umsdos/ was to ease the installation of
|
|
<em/Linux/. An other goal was to ease its UN-installation.
|
|
The idea here was to promote the spreading of <em/Linux/.
|
|
Installing a new OS on a system is always troublesome. <em>OS/2</em>
|
|
for one will happily pollute your <tt>C:</tt> root with a bunch of
|
|
new directories. If you are clever like me, it will also erase
|
|
your config.sys and autoexec.bat files :-(
|
|
|
|
The pseudo-root feature of <em/Umsdos/ avoid this unwanted
|
|
invasion. <em/Linux/ can be UN-install without side effect.
|
|
|
|
<sect1>Who needs it
|
|
<p>
|
|
If you have a small hard drive, <em/Umsdos/ will allow you
|
|
to share disk space between <em/DOS/ and <em/Linux/. A disk
|
|
below 300 megs is in my opinion a small disk. This opinion
|
|
is based on the size of the different package available today.
|
|
One popular word processor may eat as much as 70 megabytes
|
|
if you select all features.
|
|
|
|
If you have a larger drive, you may consider having a dedicated
|
|
<em/Linux/ partition running the <em/Ext2/ file-system. <em/Ext2/
|
|
use a smaller cluster size that <em/DOS/ (1k in fact) so installing
|
|
many small files will eat less space than in a <em/Umsdos/
|
|
partition.
|
|
|
|
<sect1>Performance issue
|
|
<p>
|
|
The following point apply to <em/Umsdos/ compared with <em/Ext2/.
|
|
|
|
<itemize>
|
|
<item>Directory management is faster on <em/Ext2/. This come from
|
|
the overhead of the double directory structure of
|
|
<em/Umsdos/.
|
|
<item>File access (reading and writing) is probably faster on
|
|
<em/Umsdos/ than <em/Ext2/. This come from the simplicity
|
|
of the <em/FAT/ file-system used by <em/DOS/.
|
|
|
|
Beware that this simplicity come with a cost:
|
|
|
|
<itemize>
|
|
<item>A maximum of around 65,000 files or clusters
|
|
per partitions. This also means that a 500
|
|
megabytes partition will use cluster 16k large.
|
|
In other word, a file containing a single byte
|
|
will use 16k of disk storage.
|
|
<item>Everything is controlled by the <tt/FAT/ located
|
|
at the beginning of the hard drive. The <em/DOS/
|
|
file-system is probably more fragile because of this.
|
|
<item>No provision to avoid fragmentation of files. A
|
|
<em/Umsdos/ system will generally be used as
|
|
a single user workstation. In this case, this does
|
|
not matter much. As a multi-user engine, files
|
|
will get spread-ed all around the drive, lowering
|
|
file access performance.
|
|
</itemize>
|
|
<item>Symbolic links are stored in normal file. If you intend
|
|
to have a lot of them, you will find that <em/Umsdos/
|
|
use quite a lot of disk space compared to <em/Ext2/.
|
|
</itemize>
|
|
</article>
|