288 lines
10 KiB
Groff
288 lines
10 KiB
Groff
|
.TH DOSMINIX 8
|
||
|
.SH NAME
|
||
|
dosminix, mkfile \- Running Minix under DOS
|
||
|
.SH SYNOPSIS
|
||
|
.RB "C:\eMINIX> " "boot disk0.mnx" "\0\0\0\0\0(Typical example)"
|
||
|
.br
|
||
|
.RB "C:\eMINIX> " "mkfile \fIsize disk"
|
||
|
.SH DESCRIPTION
|
||
|
.de SP
|
||
|
.if t .sp 0.4
|
||
|
.if n .sp
|
||
|
..
|
||
|
This text describes running Minix
|
||
|
.\" or Minix-vmd
|
||
|
under DOS. The DOS version
|
||
|
of the Boot Monitor, described in
|
||
|
.BR monitor (8),
|
||
|
grabs as much memory as DOS is willing to give, loads Minix into that memory
|
||
|
from the active partition of a "file as disk", and jumps to the Minix kernel
|
||
|
to let Minix take control. As far as DOS is concerned Minix is just a part
|
||
|
of the
|
||
|
.B boot.com
|
||
|
program.
|
||
|
.PP
|
||
|
In the example above
|
||
|
.B disk0.mnx
|
||
|
is the "file as disk". It is a file of many megabytes that is used by Minix
|
||
|
as a disk of four partitions. These partitions will normally be
|
||
|
.B /dev/dosd1
|
||
|
through
|
||
|
.BR /dev/dosd4 ,
|
||
|
with
|
||
|
.BR /dev/dosd0
|
||
|
for the whole "disk". The Boot Monitor will set the
|
||
|
.B dosd0
|
||
|
boot variable to the name of the disk (its first argument), the root file
|
||
|
system will be the active partition, usually
|
||
|
.BR dosd1 .
|
||
|
It is better to use the special name
|
||
|
.B bootdev
|
||
|
to indicate this device, usually in the setting
|
||
|
.BR rootdev = bootdev .
|
||
|
.PP
|
||
|
Once Minix is running it will operate the same as if started from a regular
|
||
|
disk partition until it is shut down. On shutdown from protected mode it
|
||
|
will return to the Boot Monitor prompt, and with the
|
||
|
.B exit
|
||
|
command you leave the Boot Monitor and return to DOS. Shutting down from
|
||
|
real mode will reboot the machine, just like when run from a disk partition.
|
||
|
(This more or less crashes DOS, but DOS is used to such abuse.)
|
||
|
.SS EMM386
|
||
|
Minix can't run in protected mode (286 or 386 mode) if DOS is using a memory
|
||
|
manager like
|
||
|
.BR EMM386 .
|
||
|
You can either temporarily comment out EMM386 from
|
||
|
.BR CONFIG.SYS ,
|
||
|
or you can press
|
||
|
.B F8
|
||
|
on startup to bypass CONFIG.SYS. This is only possible with the later DOS
|
||
|
versions.
|
||
|
.SS "Windows 95"
|
||
|
Press F8 at startup to make the boot menu visible. Choose
|
||
|
"\fBCommand prompt\fP", or "\fBSafe mode command prompt\fP" to run DOS.
|
||
|
Use the "safe mode" if EMM386 is started in CONFIG.SYS.
|
||
|
.PP
|
||
|
Typing F8 at the right moment isn't easy, so you may want to change the way
|
||
|
Windows boots by editing the
|
||
|
.B MSDOS.SYS
|
||
|
file found in the root directory of your Windows system. This is alas not
|
||
|
trivial.
|
||
|
Open a window on your main drive, click on "\fBView\fP" and choose
|
||
|
"\fBOptions\fP." In the Options window choose "\fBView\fP" and enable
|
||
|
"\fBShow all files\fP". The MSDOS.SYS file should now be visible, among
|
||
|
several other hidden files. Right-click on the MSDOS.SYS icon, choose
|
||
|
"\fBProperties\fP" and disable "\fBRead-only\fP". Bring MSDOS.SYS into a
|
||
|
simple text editor such as Notepad. In the
|
||
|
.B "[Options]"
|
||
|
segment add the following lines (or change existing lines into):
|
||
|
.PP
|
||
|
.RS
|
||
|
.nf
|
||
|
BootMenu=2
|
||
|
BootMenuDelay=5
|
||
|
.fi
|
||
|
.RE
|
||
|
.PP
|
||
|
The first setting makes the Windows boot menu always visible, and the second
|
||
|
line changes the delay before booting to 5 seconds. Take care not to change
|
||
|
anything else, or things will go horribly wrong. Save MSDOS.SYS and exit.
|
||
|
Don't forget to make MSDOS.SYS read-only again, and also hide all the hidden
|
||
|
files again, unless you like it this way.
|
||
|
.SS "DOS compatibility box"
|
||
|
The 16-bit version of standard Minix can be run in real mode in a DOS box.
|
||
|
This is somewhat surprising, because it means Windows 95 simulates devices
|
||
|
like the keyboard, timer, and interrupt controller well enough to fool Minix
|
||
|
into thinking that all is well. Alas it doesn't work as well under Windows
|
||
|
NT. Keypresses get lost if you type to fast, and using the floppy
|
||
|
occasionally locks Minix up. This is a bit disappointing, because it is the
|
||
|
only way to run Minix under NT. Under Windows 95 one is better off
|
||
|
putting the system in DOS at boot and then to run Minix in protected mode.
|
||
|
.PP
|
||
|
One thing that is better under NT is that the Boot Monitor is able to get a
|
||
|
so-called "Upper Memory Block", thereby raising useful memory to about 750K.
|
||
|
Windows 95 however hogs leftover UMB memory in a process named
|
||
|
.BR vmm32 ,
|
||
|
whatever that may be. To get
|
||
|
some of this memory you can put
|
||
|
.B "BOOT /U"
|
||
|
at the start of
|
||
|
.BR autoexec.bat .
|
||
|
The monitor will grab a 64K UMB if it can get it, and keep that memory safe
|
||
|
for use by Minix when it is later started from Windows.
|
||
|
.PP
|
||
|
The easiest way to start Minix is to give all Minix disk files the suffix
|
||
|
.BR MNX .
|
||
|
Doubleclick on the disk you want to run to make the "\fBOpen With\fP" window
|
||
|
appear. Click on "\fBOther\fP" and browse to the
|
||
|
.B BOOT.COM
|
||
|
program. Set the name of the .mnx files to "\fBMinix "disk" file\fP" in the
|
||
|
description box if you want everything right. In the future you can
|
||
|
just click on a Minix disk file to run it, you don't have to start a DOS
|
||
|
box first. (To make it perfect use "View", "Options", "File Types", choose
|
||
|
"Minix "disk" file", "Edit", "Change Icon", "Browse", select MINIX.ICO.)
|
||
|
.PP
|
||
|
When Minix shuts down it will try to reboot what it thinks is a PC. Windows
|
||
|
seems to assume that the DOS session has exited. Right-click on the
|
||
|
BOOT.COM program, "Properties", "Program", and enable "Close on exit" to make
|
||
|
the DOS box disappear automatically when Minix thinks it reboots. You may
|
||
|
also want to lock the font to
|
||
|
.BR 7x12 ,
|
||
|
or any other font that isn't ugly.
|
||
|
.PP
|
||
|
Minix disk files are opened in a write-exclusive mode. A second Minix
|
||
|
session can only open it read-only, which may lead to a "can't open
|
||
|
root device" error.
|
||
|
.SS "Mkfile"
|
||
|
Minix disk files can be created or resized with the
|
||
|
.B mkfile
|
||
|
utility. Its two arguments are the size and name of the disk file. The
|
||
|
size is a number optionally followed by the letter
|
||
|
.BR k ,
|
||
|
.BR m
|
||
|
or
|
||
|
.BR g
|
||
|
to specify kilobytes, megabytes, or even gigabytes. So the call
|
||
|
.PP
|
||
|
.RS
|
||
|
.B "mkfile 50m disk5.mnx"
|
||
|
.RE
|
||
|
.PP
|
||
|
will create a 50 megabyte file named
|
||
|
.BR disk5.mnx .
|
||
|
If the file already exist then it is shrunk or grown to 50 megabytes. No
|
||
|
data is lost if the file is grown. If the file is shrunk then only the data
|
||
|
that is cut off is lost. These features allow one to inrease the size of a
|
||
|
Minix /usr partition with the following recipe:
|
||
|
.PP
|
||
|
.RS
|
||
|
.ta +24n+2m
|
||
|
.nf
|
||
|
copy disk0.mnx disk0.new Copy the disk to disk0.new
|
||
|
mkfile 100M disk0.new Enlarge to 100 megabytes
|
||
|
boot disk0.mnx Boot the old "disk"
|
||
|
[ESC] Get the attention of the monitor
|
||
|
dosd5=disk0.new /dev/dosd5 becomes disk0.new
|
||
|
boot
|
||
|
\&...
|
||
|
login: root
|
||
|
.fi
|
||
|
.in +(24n+2m)
|
||
|
.ti -(24n+2m)
|
||
|
part Choose dosd5, move to the Size field of dosd7
|
||
|
partition, hit 'm' to fill it out to the end of the "disk". Write and quit.
|
||
|
.in -(24n+2m)
|
||
|
.nf
|
||
|
mkfs /dev/dosd7 Recreate the file system, but larger
|
||
|
mount /dev/dosd7 /mnt
|
||
|
cpdir -v /usr /mnt Copy /usr to the new disk's /usr to be
|
||
|
shutdown Back to the monitor
|
||
|
exit Back to DOS
|
||
|
ren disk0.mnx disk0.old
|
||
|
ren disk0.new disk0.mnx Replace old by new
|
||
|
boot disk0.mnx Run the larger system
|
||
|
.fi
|
||
|
.RE
|
||
|
.PP
|
||
|
Now Minix runs from a larger "disk". Don't worry if it claims to have
|
||
|
crashed, there wasn't a "shutdown" entry in /usr/adm/wtmp at the time it was
|
||
|
copied.
|
||
|
.PP
|
||
|
The above recipe is for a ordinary standard Minix installation with /usr on
|
||
|
the second and last partition.
|
||
|
.\" Minix-vmd usually has /usr on the third and
|
||
|
.\" last partition (dosd3 / dosd8), its
|
||
|
.\" .B mkfs
|
||
|
.\" command requires a
|
||
|
.\" .B "-t\ 2f"
|
||
|
.\" option to specify the file system type as "V2 flex", and it knows if
|
||
|
.\" it has crashed or not.
|
||
|
.SS Backups
|
||
|
In the recipe above you saw how simple it is to create a new system, just
|
||
|
copy a disk file. It is equally simple to make a backup, you just copy the
|
||
|
disk file. To make a test system: copy the disk file. To make another test
|
||
|
system: copy the disk file. Let friends have their own Minix: copy the disk
|
||
|
file again. (Exciting, eh?)
|
||
|
.PP
|
||
|
You may want to save a Minix disk file in a ZIP file to save space. It may
|
||
|
look as a good idea to first run
|
||
|
.B "make clean"
|
||
|
in
|
||
|
.B /usr/src
|
||
|
to remove all the binary junk, but alas that has no effect at all.
|
||
|
The disk file is compressed under DOS, and there it is unknown which blocks
|
||
|
are in use and which are free. With the following trick you can make those
|
||
|
deleted blocks compress really well:
|
||
|
.PP
|
||
|
.RS
|
||
|
.nf
|
||
|
cd /usr/tmp
|
||
|
echo >junk
|
||
|
while cat junk >>junk; do :; done
|
||
|
sync
|
||
|
rm junk
|
||
|
.fi
|
||
|
.RE
|
||
|
.PP
|
||
|
After these commands all free blocks contain newlines. Long runs of the
|
||
|
same byte happen to compress by a factor 1000, so the unused disk blocks
|
||
|
will almost disappear in the ZIP file.
|
||
|
.\" Under Minix-vmd you can use
|
||
|
.\" .PP
|
||
|
.\" .RS
|
||
|
.\" cp /dev/zero junk
|
||
|
.\" .RE
|
||
|
.\" .PP
|
||
|
.\" instead of the echo/while pair of lines above. Standard Minix doesn't have
|
||
|
.\" /dev/zero.
|
||
|
.SS "FAT driver"
|
||
|
The dos disk driver, described in
|
||
|
.BR dosd (4),
|
||
|
has two identities. By default you get the "\fBfile\fP" driver, that uses
|
||
|
DOS file I/O calls to access a large DOS file as a disk. The other
|
||
|
alternative is the "\fBFAT\fP" driver. The FAT driver sits on top of an
|
||
|
ordinary Minix disk driver, and interprets a partition as a FAT (File Access
|
||
|
Table) file system to find a file to use as a Minix disk. The result
|
||
|
has the same effect as the file driver, except that no costly calls to DOS
|
||
|
are made. To enable this feature you have to use the following Boot
|
||
|
environment settings:
|
||
|
.PP
|
||
|
.RS
|
||
|
.nf
|
||
|
dosd = fat
|
||
|
dosd0 = hd1:\eminix\edisk0.mnx
|
||
|
.fi
|
||
|
.RE
|
||
|
.PP
|
||
|
The
|
||
|
.B dosd
|
||
|
setting tells Minix to use the FAT driver, and the
|
||
|
.B dosd0
|
||
|
setting tells the Minix device and DOS file name to use. Disk I/O should
|
||
|
be sped up nicely by this change, although typical use of Minix doesn't
|
||
|
require fast disk I/O, so the difference won't be too noticable.
|
||
|
.PP
|
||
|
Support for FAT-32 (big file system support added in the later Windows 95
|
||
|
releases) has not been tested very well. The FAT-12 and FAT-16 code has
|
||
|
been used a lot, and seems safe. Note the risks inherent in these
|
||
|
drivers: The file driver uses simple DOS file I/O calls, leaving it to
|
||
|
DOS to know its own file system. The FAT driver interprets FAT file system
|
||
|
structures by itself. Minix booted from a real hard disk partition can
|
||
|
only use DOS disk files through the FAT driver.
|
||
|
.SH "SEE ALSO"
|
||
|
.BR dosd (4),
|
||
|
.BR monitor (8),
|
||
|
.BR usage (8).
|
||
|
.SH NOTES
|
||
|
Use at your own risk.
|
||
|
.SH BUGS
|
||
|
Hasn't been tried under Windows 98 yet.
|
||
|
.PP
|
||
|
Pray the deity of your choice will forgive you for running a UNIX-like
|
||
|
system as an ordinary DOS program. The author of this code is already
|
||
|
doomed. When his time comes the daemons wi*(&%*$%*&
|
||
|
.br
|
||
|
Memory fault \- core dumped
|
||
|
.SH AUTHOR
|
||
|
Kees J. Bot (kjb@cs.vu.nl)
|