921 lines
33 KiB
Perl
921 lines
33 KiB
Perl
.TH USAGE 8
|
|
.SH NAME
|
|
usage \- installing and using MINIX
|
|
.SH DESCRIPTION
|
|
.de SP
|
|
.if t .sp 0.4
|
|
.if n .sp
|
|
..
|
|
.de XB \" An example in bold print.
|
|
.RS
|
|
.nf
|
|
.ft B
|
|
\&\\$1
|
|
.ft R
|
|
.fi
|
|
.RE
|
|
..
|
|
This manual page describes the installation and use of MINIX from a
|
|
System Administrators point of view. It contains an installation guide,
|
|
instructions on how to do the initial configuration and some other info.
|
|
Please read this document entirely before attempting to install MINIX.
|
|
The installation steps are in the proper order, but not all the
|
|
information you may need is presented at the right moment.
|
|
Other detailed information that may be useful can be found in
|
|
.BR boot (8)
|
|
and
|
|
.BR hier (7).
|
|
.SS "1. REQUIREMENTS"
|
|
The minimum system MINIX can be installed on comfortably is an IBM PC/AT
|
|
or PS/2 with a 286 processor, 640 KB memory, a 720 kb diskette drive, and
|
|
25-30 MB free space on an AT,
|
|
.ig
|
|
PS/2,
|
|
..
|
|
ESDI, or SCSI hard disk (the latter controlled by an Adaptec 1540.) MINIX
|
|
for the 386 (MINIX-386 for short) can be installed on a machine with at
|
|
least a 386sx processor, 3 MB memory and at least 25-30 MB of disk space.
|
|
.SS "2. MINIX INSTALLATION BACKGROUND"
|
|
The objective of the installation is to create a partition on your disk
|
|
and to put MINIX into it. MINIX really requires two partitions however, so
|
|
the single "primary" partition is split into two subpartitions. The
|
|
.B a
|
|
subpartition will contain the root file system, and the
|
|
.B c
|
|
subpartition will contain the
|
|
.B /usr
|
|
file system. What MS-DOS calls
|
|
"drives", i.e C:, D:, E:, MINIX calls "file systems". MINIX does not use
|
|
drive letters, but requires that one file system is made a part of another
|
|
file system by "mounting" one on the other. The "root" file system is
|
|
always present and starts with the directory "/", the root of the directory
|
|
tree. The root file system contains a few programs in
|
|
.BR /bin ,
|
|
device files in
|
|
.BR /dev ,
|
|
and configuration files in
|
|
.BR /etc .
|
|
This is just enough to get the system started. MINIX will soon extend
|
|
its directory tree by mounting a file system on the
|
|
.B /usr
|
|
directory. What is henceforth known as the /usr file system contains all
|
|
MINIX programs in
|
|
.BR /usr/bin ,
|
|
file system sources in
|
|
.BR /usr/src ,
|
|
etc, etc.
|
|
The \s-2ROOT\s+2 image contains the complete MINIX root file system, but
|
|
\s-2USR\s+2 contains just a small subset of the /usr file system, with just
|
|
enough utilities to install MINIX. The complete /usr file system is
|
|
split up into the \s-2USR.TAZ\s+2, \s-2SYS.TAZ\s+2 and \s-2CMD.TAZ\s+2
|
|
archives that are installed later to fill /usr.
|
|
.PP
|
|
Let's suppose your first hard disk, which has
|
|
device name
|
|
.BR /dev/hd0 ,
|
|
has MS-DOS already present in the first primary partition
|
|
.RB ( /dev/hd1 ),
|
|
and some free space left after that. After MINIX is installed in that
|
|
free space the disk will look like this:
|
|
.PP
|
|
.ta +12n
|
|
.nf
|
|
.in +4n
|
|
/dev/hd0 Whole hard disk #0
|
|
.in +2n
|
|
/dev/hd1 MS-DOS C: drive
|
|
/dev/hd2 MINIX primary partition
|
|
.in +2n
|
|
/dev/hd2a MINIX root partition
|
|
/dev/hd2c MINIX /usr partition
|
|
.in -8n
|
|
.fi
|
|
.PP
|
|
/dev/hd0 is the sum of a partition table, /dev/hd1 and /dev/hd2.
|
|
Likewise is /dev/hd2 the sum of a subpartition table, /dev/hd2a and
|
|
/dev/hd2c. Read the "DEVICES" sections for more information on MINIX
|
|
devices.
|
|
.SS "3. INSTALLATION"
|
|
If you have not already copied MINIX to floppy disks, please read
|
|
the README.TXT file in the MINIX directory now.
|
|
It tells how to do this.
|
|
You should also print out EXAMPLE.TXT and read it in parallel with this
|
|
document. This one tells you what to do; that one shows you what the
|
|
screen is supposed to look like at each step, so you can see if everything
|
|
is OK.
|
|
.PP
|
|
You can install MINIX automatically or manually as described the sections
|
|
below. The end result is the same, but manual installation allows
|
|
one to deviate from the preconfigured choices. You may wish to read the
|
|
manual pages of the programs used below before you start. You may especially
|
|
want to read
|
|
.BR boot (8)
|
|
if your machine is different from what the majority buys, because you
|
|
may need to set a few boot parameters to configure drivers. To do this type
|
|
.B ESC
|
|
to get to the Boot Monitor prompt, set the appropriate variables, use
|
|
.B save
|
|
to store the settings and
|
|
.B menu
|
|
to continue where you left off.
|
|
.PP
|
|
To install the system you need two diskettes: a bootable root diskette and a
|
|
diskette full of binaries to use as
|
|
.BR /usr .
|
|
These diskettes are named
|
|
.B \s-2ROOT\s+2
|
|
and
|
|
.BR \s-2USR\s+2 .
|
|
These two diskettes may also be combined on a single high density diskette.
|
|
In that case the \s-2USR\s+2 part is on the
|
|
.B c
|
|
partition.
|
|
.PP
|
|
Insert the \s-2ROOT\s+2 diskette, boot the machine and type '=' to the menu.
|
|
The MINIX kernel is loaded and takes control when you see the copyright
|
|
banner. After loading the root diskette into the RAM disk you will be asked
|
|
to finish the name of the device to mount on
|
|
.BR /usr .
|
|
Type
|
|
.BR fd0c
|
|
for a diskette that contains both \s-2ROOT\s+2 and \s-2USR\s+2, otherwise
|
|
replace \s-2ROOT\s+2 by \s-2USR\s+2 and type
|
|
.BR fd0 .
|
|
Login as
|
|
.BR root .
|
|
.SS "4. AUTOMATIC INSTALLATION"
|
|
Before starting the installation, you must either have a free partition
|
|
available or have at least 25-30 MB not in any partition so you can create
|
|
a MINIX partition.
|
|
Splitting an MS-DOS partition can be done using fips, and is discussed in the
|
|
main README.TXT file.
|
|
.PP
|
|
Type
|
|
.B setup
|
|
to start the installation script. First it offers to install a national
|
|
keyboard map. The names should be clear, except for
|
|
.BR us-swap ,
|
|
which swaps the CTRL and CAPS LOCK keys of a standard US style keyboard
|
|
for people who believe that the natural place of CTRL is next to A.
|
|
The default suggested between [ and ] is the US standard keyboard.
|
|
.PP
|
|
The next thing to do is to make a partition, for this you are placed in a
|
|
partition table editor named
|
|
.BR part .
|
|
This partition table editor is very easy to use (in the author's opinion),
|
|
but you will probably hate it. You can move all over the place with the
|
|
arrow keys, change values, and make a mess of your partition table real quick.
|
|
So if you get into trouble, type 'q' to quit, 'n' to not write the table,
|
|
and RETURN to start over. Use the '?' key to get help.
|
|
.PP
|
|
With the '+' and '\-' keys you can select the disk device to install on,
|
|
probably
|
|
.BR /dev/hd0 ,
|
|
the first hard disk. Type 'r' to load the partition table of the selected
|
|
disk. Either create one new partition by modifying a partition marked
|
|
"None", or reuse an existing partition by changing its type to "MINIX" (hex
|
|
code 81). The FIPS program can be used under MS-DOS to shrink an MS-DOS
|
|
partition. FIPS splits the MS-DOS partition in two, so one of the two can be
|
|
used for MINIX. You have to be absolutely sure which one. When in doubt,
|
|
first use the FDISK program under MS-DOS to delete the extra partition, and
|
|
let MINIX part create a new one. DO NOT use part to shrink an existing
|
|
partition! MINIX needs a partition of at least 25-30 MB, but not larger
|
|
than 128 MB (MINIX-86) or 1 GB (MINIX-386). The system needs
|
|
30 MB in compiled state.
|
|
.PP
|
|
The script then wants to know the name of the partition you've created, this
|
|
name is probably still visible on the screen (hd2, hd6, something like
|
|
that.) The new partition table is reloaded into the disk driver, and the
|
|
new MINIX partition is carved up into two subpartitions, a 1440 kb root and
|
|
the rest for /usr.
|
|
.PP
|
|
After making /usr, it is immediately put to use to replace the installation
|
|
/usr file system so that you can remove the \s-2USR\s+2 diskette and insert
|
|
the \s-2ROOT\s+2 diskette (unless they are one and the same). The root file
|
|
system is filled with the contents of the \s-2ROOT\s+2 diskette and slightly
|
|
patched up to work on the hard disk (/etc/fstab.)
|
|
.PP
|
|
To compute the size of the so-called "second level block cache" you are
|
|
asked to specify the RAM size of your machine. If you have plenty, i.e
|
|
4 MB or more then simply hit RETURN, otherwise enter the size of your system
|
|
RAM in kilobytes.
|
|
.PP
|
|
You can now skip the next section and move to "TESTING", but it may be
|
|
instructive to read it anyway.
|
|
.SS "5. MANUAL INSTALLATION"
|
|
The instructions that follow are at a very low level and require you to be
|
|
very careful. The big advantage is that you know precisely what
|
|
tools have been used and how everything works. The disadvantage is that
|
|
you may easily make a mistake that either forces you to start over if you
|
|
are lucky, or wipes out the contents of your hard disk if you are not.
|
|
Only if you really want to do something different should you use a manual
|
|
installation. Slavishly following the steps shown below will only make
|
|
you end up with the same result as an automatic installation.
|
|
.PP
|
|
Run
|
|
.B part
|
|
to make partitions to load the system into. The best thing to do is to make
|
|
one large primary partition of type "MINIX" and to carve this partition up
|
|
into three subpartitions for root and /usr. The assumption is that you will
|
|
use the second partition on the first hard disk,
|
|
.BR /dev/hd2 ,
|
|
and that
|
|
.B hd2a
|
|
is the root subpartition and
|
|
.B hd2c
|
|
is /usr. If you want to use the first partition on
|
|
the second hard disk for instance, then substitute hd6 and hd6[ac] for the
|
|
above. On a \s-2SCSI\s+2 disk it will be /dev/sd2 for the second partition
|
|
on the disk at target 0. See the section on devices below, and the manual
|
|
pages of
|
|
.BR part (8),
|
|
.BR hd (4),
|
|
and
|
|
.BR sd (4).
|
|
Start
|
|
.B part
|
|
and select the whole hard disk device (the "multiple of 5" device) that you
|
|
want to install MINIX onto. In our example it will be
|
|
.BR /dev/hd0 .
|
|
.PP
|
|
Use
|
|
.B part
|
|
to make a single partition in the primary partition table of type "MINIX",
|
|
then hit '>' on this new partition to make a subpartition table.
|
|
.PP
|
|
For the root subpartition you are advised to use 1440 kb exactly. You can
|
|
make it larger if you want to, but it is advisable never to let the contents
|
|
outgrow a floppy. (The \s-2ROOT\s+2 diskette is a copy of a root file
|
|
system, and will be used to fill your root subpartition.)
|
|
.PP
|
|
The second subpartition is either empty or a "scratch" partition. MINIX no
|
|
longer uses the
|
|
.B b
|
|
subpartition for anything useful anymore, but it has become customary to
|
|
have root on
|
|
.B a
|
|
and /usr on
|
|
.BR c .
|
|
(You are free to ignore this convention, of course.)
|
|
.PP
|
|
Use the rest of the partition for the /usr
|
|
.B c
|
|
subpartition.
|
|
.PP
|
|
When you are done check that /dev/hd2a is active (the * after the partition
|
|
number) so you can boot from it later.
|
|
.PP
|
|
If your disk has bad blocks then don't put the root or scratch subpartition
|
|
on top of them. Make sure the inode tables in the other partitions don't
|
|
have bad blocks either. You can put the subpartitions out of order on the
|
|
disk if that helps. Subpartition tables, other than the main partition
|
|
table, are not sorted by the driver.
|
|
.PP
|
|
After making the partitions you do not have to reboot. The disk driver
|
|
reloads the partition tables on the next access if the disk is not in use.
|
|
(Open or mounted.)
|
|
.PP
|
|
To be able to boot from /dev/hd2a you must place a master bootstrap in
|
|
/dev/hd2. It has been placed there by
|
|
.B part
|
|
if it told you that it was creating a new partition table, but
|
|
.PP
|
|
.XB "installboot\0\-m\0/dev/hd2\0/usr/mdec/masterboot"
|
|
.RE
|
|
.PP
|
|
will put it there for sure.
|
|
.PP
|
|
You will start by making a file system for /usr and filling it partially.
|
|
This may seem to be out of order, but you can't insert the \s-2ROOT\s+2
|
|
floppy right now.
|
|
.PP
|
|
.XB "mkfs\0/dev/hd2c"
|
|
.XB "readall\0\-b\0/dev/hd2c | sh"
|
|
.XB "mount\0/dev/hd2c\0/mnt"
|
|
.XB "cpdir\0\-v\0/usr\0/mnt"
|
|
.PP
|
|
This will create a file system on /dev/hd2c, mount it on /mnt, and copy the
|
|
contents of the \s-2USR\s+2 floppy onto it. The call to
|
|
.B readall
|
|
marks bad blocks on the file system as unusable, you can omit this on a
|
|
drive known to be spotless (\s-2IDE\s+2 or \s-2SCSI\s+2.)
|
|
.PP
|
|
You can now use the new /usr in place of the \s-2USR\s+2 floppy:
|
|
.PP
|
|
.XB "umount\0/dev/hd2c"
|
|
.XB "umount\0/dev/fd0\0\0\0\0\0# fd0c if combined"
|
|
.XB "mount\0/dev/hd2c\0/usr"
|
|
.PP
|
|
This little dance has freed up your floppy drive, so please remove the
|
|
\s-2USR\s+2 diskette and replace it by the \s-2ROOT\s+2 diskette. Make a
|
|
file system for the root with at least 512 inodes (files), and
|
|
fill it from the floppy:
|
|
.PP
|
|
.XB "mkfs\0\-i\0512\0/dev/hd2a"
|
|
.XB "mount\0/dev/fd0\0/fd0"
|
|
.XB "mount\0/dev/hd2a\0/mnt"
|
|
.XB "cpdir\0\-v\0/fd0\0/mnt"
|
|
.XB "umount\0/dev/fd0"
|
|
.PP
|
|
Remove
|
|
.B /mnt/etc/issue
|
|
to get rid of the "use setup" message that greets you when you boot, and
|
|
edit the file
|
|
.B /mnt/etc/fstab
|
|
to name the devices MINIX has been installed on. In our example it
|
|
should look like this:
|
|
.PP
|
|
.XB "root=/dev/hd2a"
|
|
.XB "usr=/dev/hd2c"
|
|
.PP
|
|
Unmount the new root:
|
|
.PP
|
|
.XB "umount\0/dev/hd2a"
|
|
.PP
|
|
Make it bootable:
|
|
.PP
|
|
.XB "installboot\0\-d\0/dev/hd2a\0/usr/mdec/bootblock\0boot"
|
|
.PP
|
|
The automatic script would now set the
|
|
.B rootdev
|
|
and
|
|
.B ramimagedev
|
|
boot variables. You can do this now using the
|
|
.B edparams
|
|
command, but it is easier to postpone it until the testing phase. The
|
|
settings should be:
|
|
.PP
|
|
.XB "rootdev=hd2a"
|
|
.XB "ramimagedev=hd2a"
|
|
.SS "6. TESTING"
|
|
By now a new MINIX system is present on your hard disk. Time to see if
|
|
it works. Leave the \s-2ROOT\s+2 diskette in the drive and type
|
|
.BR halt .
|
|
You are now going to use the power of the Boot Monitor on the diskette to
|
|
boot the MINIX partition on the hard disk. Use the monitor command
|
|
.B boot hd2
|
|
to boot the primary partition MINIX has been installed in. (It is "hd2" in
|
|
our example.) For a \s-2SCSI\s+2 disk you will have to use a 'hd' name too.
|
|
The monitor uses the BIOS, so you will have to treat it as a "normal" disk
|
|
at this point.
|
|
.PP
|
|
The hard disk bootstrap is now showing the menu again. You can type '='
|
|
to start MINIX, but you probably want to change the boot parameters.
|
|
Hit
|
|
.B ESC
|
|
once more to get to the command prompt. The command
|
|
.B set
|
|
shows what the current parameters are. Here is an example that shows how
|
|
to make a menu to either start MINIX or boot MS-DOS:
|
|
.PP
|
|
.XB "minix(=,MINIX)\0{boot}"
|
|
.XB "dos(d,MS-DOS)\0{boot\0hd1}"
|
|
.XB "save"
|
|
.PP
|
|
MS-DOS is assumed to be in the first partition in the example above (hd1).
|
|
When finished type
|
|
.B menu
|
|
to see if the menu looks right. If so hit '=' to start MINIX. Log in as root.
|
|
.SS "7. ADDING PROGRAMS AND SOURCES TO /usr"
|
|
The
|
|
.B setup
|
|
command can also be used to add files from floppy sets to the system. The
|
|
.B \s-2USR.TAZ\s+2
|
|
(programs and stuff),
|
|
.B \s-2SYS.TAZ\s+2
|
|
(system sources), and
|
|
.B \s-2CMD.TAZ\s+2
|
|
(commands sources)
|
|
are all installed relative to the
|
|
.B /usr
|
|
directory, so the command to use three times is
|
|
.PP
|
|
.XB setup\0/usr
|
|
.PP
|
|
.B Setup
|
|
will ask for the size of data on the floppies, which is by default simply
|
|
the entire floppy. You will see some "Cannot make directory" errors
|
|
while extracting, as some directories already exist. Ignore these messages.
|
|
You need the
|
|
.B \s-2USR.TAZ\s+2
|
|
set if you want a working MINIX system,
|
|
.B \s-2SYS.TAZ\s+2
|
|
if you want recompile the system or study it, and
|
|
.B \s-2CMD.TAZ\s+2
|
|
if you also want the sources of the commands. On a disk space
|
|
starved machine you could opt to do without the commands sources, as they
|
|
are not absolutely necessary to understand MINIX.
|
|
.PP
|
|
If your machine does not have enough memory to run
|
|
.B setup\0/usr
|
|
then type these commands manually:
|
|
.PP
|
|
.XB "cd\0/usr"
|
|
.XB "vol\0/dev/fd0 | uncompress | tar\0xvfp\0\-"
|
|
.SS "8. NAMES"
|
|
A standalone machine will have to be given a name. As
|
|
.B root
|
|
type
|
|
.PP
|
|
.XB "echo\0\fIname\fB\0>/etc/hostname.file"
|
|
.PP
|
|
to change the host name of your machine to
|
|
.IR name .
|
|
.SS "9. ACTIVE ON BOOT"
|
|
You may want to make the MINIX partition active so that it is automatically
|
|
booted. With MS-DOS
|
|
.B fdisk
|
|
or MINIX
|
|
.BR part ,
|
|
mark the primary partition that contains MINIX active. Using the menu you
|
|
made earlier you can boot either MINIX or MS-DOS at a keypress. You can even
|
|
set timeouts. To boot MINIX automatically after 5 seconds:
|
|
.PP
|
|
.XB "main()\0{trap\05000\0minix;\0menu}"
|
|
.PP
|
|
See
|
|
.BR monitor (8)
|
|
for all the details on the monitor.
|
|
.PP
|
|
If you don't trust this then you can rig up a diskette that boots the MINIX
|
|
partition when left in the drive:
|
|
.PP
|
|
.XB "installboot\0\-m\02\0/dev/fd0\0/usr/mdec/masterboot"
|
|
.PP
|
|
The number 2 indicates the hard disk partition that must be booted, you can
|
|
use the numbers 1 to 9 for hd1 to hd9.
|
|
.SS "10. DEVICES"
|
|
A crash course on the MINIX devices in
|
|
.BR /dev :
|
|
The two hard disks are named
|
|
.BR hd0
|
|
and
|
|
.BR hd5 .
|
|
These "multiple of five" devices address the entire hard disk, from the
|
|
first to the last byte. Each disk has four partitions, for disk 0 they are
|
|
.BR hd1 ,
|
|
.BR hd2 ,
|
|
.BR hd3 ,
|
|
and
|
|
.BR hd4 .
|
|
And for disk 1 they are named
|
|
.BR hd6 ,
|
|
.BR hd7 ,
|
|
.BR hd8 ,
|
|
and
|
|
.BR hd9 .
|
|
These partitions may contain file systems,
|
|
.B hd1
|
|
often contains the MS-DOS "C:" file system. MINIX can use these partitions
|
|
for file systems too, but you can also partition one of these "primary
|
|
partitions" into four so-called "subpartitions". The subpartitions of
|
|
.B hd1
|
|
are named
|
|
.BR hd1a ,
|
|
.BR hd1b ,
|
|
.BR hd1c ,
|
|
and
|
|
.BR hd1d .
|
|
The other partitions may have four subpartitions that are named in the same
|
|
way by adding a letter from
|
|
.B a
|
|
to
|
|
.BR d .
|
|
So one disk may have four partitions, and 16 subpartititions total. SCSI
|
|
disks are named in the same way, from
|
|
.BR sd0
|
|
to
|
|
.BR sd39d
|
|
for all possible devices for all eight SCSI targets.
|
|
The two floppy disks are
|
|
.BR fd0
|
|
and
|
|
.BR fd1 .
|
|
Each may have four partitions named
|
|
.BR fd0a ,
|
|
.BR fd0b ", ..."
|
|
.BR fd1d .
|
|
The command
|
|
.B MAKEDEV
|
|
knows how to make devices, and
|
|
.B DESCRIBE
|
|
can tell you what an unknown device may be, or even what all devices in
|
|
.B /dev
|
|
may be if called without arguments. Devices are described fully in
|
|
.BR dev (4),
|
|
and in the device specific manual pages like
|
|
.BR fd (4)
|
|
and
|
|
.BR hd (4).
|
|
.SS "11. EDITORS"
|
|
The editors available are
|
|
.B elvis
|
|
(a
|
|
.B vi
|
|
clone),
|
|
.B elle
|
|
(a simple
|
|
.B emacs
|
|
clone),
|
|
and the old MINIX
|
|
.B mined
|
|
editor. Of these editors only elvis can recover your file after a system
|
|
crash. Only
|
|
.B mined
|
|
is available at installation time. (All you need to know about mined right
|
|
now is that CTRL-X gets you out of it.)
|
|
.SS "12. INSTALLING ON A SCSI DISK"
|
|
Using a disk other than an (IDE)
|
|
.B hd
|
|
disk complicates things a bit. The Boot Monitor uses the BIOS, so it names
|
|
all disks with
|
|
.B hd
|
|
names. So it is
|
|
.B boot hd1
|
|
to boot partition 1, and
|
|
.B "ramimagedev=sd2a"
|
|
to tell MINIX its root partition. If you have both a normal and a SCSI disk
|
|
then the disks may be
|
|
.B hd0
|
|
and
|
|
.B hd5
|
|
to the Monitor, and
|
|
.B hd0
|
|
and
|
|
.B sd0
|
|
to MINIX.
|
|
.SS "13. NATIONAL KEYBOARDS"
|
|
The directory
|
|
.B /usr/lib/keymaps
|
|
contains keymap tables for several national keyboards. If you have a German
|
|
keyboard for instance, then
|
|
.PP
|
|
.XB "loadkeys\0/usr/lib/keymaps/german.map"
|
|
.PP
|
|
will load the German key translation table into the keyboard driver. Copy
|
|
the map to
|
|
.B /etc/keymap
|
|
once MINIX is installed on the hard disk, because having to type a key
|
|
sequence like one of these:
|
|
.PP
|
|
.XB "loadkezs\0\-usr\-lib\-kezmaps\-german.map"
|
|
.XB "loqdkeys\0=usr=lib=key,qps=french.,qp"
|
|
.PP
|
|
on a reboot gets a bit annoying after a while. Send corrections and new
|
|
keymaps to the person named below. (Do not send a Dutch keymap, buy
|
|
yourself a real keyboard instead.)
|
|
.SH SUGGESTIONS
|
|
Below are a few useful suggestions. Some of the information can be of use
|
|
in other situations than described here.
|
|
.SS "14. VIRTUAL CONSOLES"
|
|
Hold down the ALT key and press the left or right arrow key, F1, or F2.
|
|
This switches the console between two login sessions. (Unless you have
|
|
an old mono adapter, because virtual consoles sit in video memory, and
|
|
a mono adapter only has memory for one.)
|
|
.PP
|
|
Note that kernel messages, including function key output, only appear on
|
|
the first console. This may be confusing, but it keeps the other consoles
|
|
clean.
|
|
.SS "15. LOW ON MEMORY"
|
|
The normal installation requires that you have enough memory for a large RAM
|
|
disk. You can still install MINIX normally if you either have a high density
|
|
diskette drive for a combined root+usr floppy, or you have two floppy drives
|
|
of at least 720 kb. Before booting you have to set the variable
|
|
.B rootdev
|
|
to the same value as
|
|
.BR ramimagedev .
|
|
This is slower then a RAM disk, but saves a lot of memory.
|
|
.PP
|
|
The automatic installation script knows how to handle this new situation.
|
|
If you install manually then you have to use
|
|
.PP
|
|
.XB "cpdir\0\-vx\0/\0/mnt"
|
|
.PP
|
|
to copy the root device to disk. When it is time to fill /usr and you only
|
|
have one floppy drive then hit DEL to get out of the installation script and
|
|
reboot as described in "TESTING". You can then finish the installation
|
|
manually.
|
|
See the XT640K.TXT file for more advice on small machines.
|
|
.SS "16. LOW ON MEMORY AND ONLY ONE 720 KB FLOPPY DRIVE"
|
|
If you only have one 720 kb floppy drive and your system is low on memory
|
|
then you can use the \s-2TINYROOT\s+2 boot image. This image contains a
|
|
small kernel with only the BIOS disk driver, and a small root file system.
|
|
You can use this disk to boot your machine. Use the normal \s-2ROOT\s+2 to
|
|
install the root file system. Keep booting your machine with
|
|
\s-2TINYROOT\s+2 until you have compiled a small kernel for your system.
|
|
Use the
|
|
.B rootdev
|
|
boot variable to select the hard disk root file system. Do
|
|
.B not
|
|
use \s-2TINYROOT\s+2 for anything other than booting, always use
|
|
\s-2ROOT\s+2 when mentioned.
|
|
.SS "17. FLOPPY DRIVE 1 IS A HIGH DENSITY DRIVE"
|
|
If you would like to install from floppy drive 1 then you need to copy at
|
|
least one sector from the \s-2USR\s+2 image onto a diskette for drive 0.
|
|
The \s-2USR\s+2 bootstrap has been rigged to boot the other drive.
|
|
.SS "18. INSTALLING ON A SECOND HARD DISK"
|
|
MINIX doesn't care if it is installed on the second disk of a system with
|
|
two disks. The only problem is to get it booted. You can either rig up
|
|
a diskette to boot MINIX as shown earlier, or you can use the same trick
|
|
on the first disk. The command
|
|
.PP
|
|
.XB "installboot\0\-m\05\0/dev/hd0\0/usr/mdec/masterboot"
|
|
.PP
|
|
will lock the first disk into booting the second disk. Note that this
|
|
command modifies the disk outside a MINIX partition, overwriting a bit of
|
|
code that has likely been put there by MS-DOS fdisk. First verify that the
|
|
Boot Monitor can boot an MS-DOS partition, because then the MINIX master
|
|
bootstrap can do it too.
|
|
.SS "19. LOTS OF MEMORY ON A 286"
|
|
You will have a hard time making MINIX use up 3 MB memory. Memory you
|
|
can spare can be used for a "second level block cache" on the RAM disk. The
|
|
File System uses the second level cache to store copies of disk blocks that
|
|
are pushed out of the normal (primary) block cache. The size of the primary
|
|
cache is compiled into the FS server, but the size of the second level cache
|
|
can be set with the
|
|
.B ramsize
|
|
boot variable. Set it to a number between 0 and 512. 512 kilobytes is
|
|
enough to keep most of the compiler cached.
|
|
You must have extended memory; expanded memory is not supported.
|
|
.SS "20. LOTS OF MEMORY ON A 386+"
|
|
Processes can be as big as you would like on a 386, but in practice 4 MB is
|
|
plenty for all your processes.
|
|
The installation script sets up a second level cache for MINIX-386
|
|
of up to 1024 kilobytes. This is because the default file system cache
|
|
is only 80 kb. Your first point of call is to get rid of the poorly
|
|
performing second level cache by setting
|
|
.B ENABLE_CACHE2
|
|
to 0 and to assign the memory used by it to the
|
|
normal block cache by enlarging the appropriate
|
|
.B NR_BUFS
|
|
and
|
|
.B NR_BUF_HASH
|
|
constants in <minix/config.h> with as much as you can spare. (1024 for
|
|
NR_BUFS is the minimum to keep
|
|
.B "cc \-c"
|
|
cached. 2048 is then a nice value for NR_BUF_HASH.)
|
|
Disable the second level cache, compile a new kernel, reboot and set
|
|
.B ramsize
|
|
to 0.
|
|
.SS "21. LOTS OF DISK SPACE"
|
|
The maximum file system size is 1 GB for MINIX-386 and 128 MB for
|
|
MINIX-86. (MINIX-86 can handle larger file systems, but
|
|
.B fsck
|
|
can't check them.) Note that a MINIX file system can only contain 65535
|
|
inodes (files), so the average file should be 16 kb to completely fill it.
|
|
It may be better to make two smaller file systems. Besides, fsck takes
|
|
forever on a large file system.
|
|
.SH SYSTEM ADMINISTRATION
|
|
The system has been set up with the idea that working as root is a bad thing
|
|
to do. As root you are in no way protected from doing stupid things. So
|
|
don't do development as root, but work as
|
|
.BR bin !
|
|
Only in exceptional cases do you want to become root. Being root is fun for
|
|
wannabe hackers; administrators know better.
|
|
.PP
|
|
To make life easier for bin, some programs like
|
|
.BR su (1),
|
|
.BR install (1)
|
|
and
|
|
.BR shutdown (8)
|
|
treat bin and other members of the operator group as special and allow them
|
|
the privileges of root. (One is an operator if one's
|
|
group id is zero.) Operators should share the shadow password of root by
|
|
having
|
|
.B ##root
|
|
in their password field. This way they all have one face (password)
|
|
to the outside world, forming no greater security risk than root alone.
|
|
.PP
|
|
The home directory of bin contains one important Makefile. You can use it
|
|
to recompile all the commands and libraries of the system. Type
|
|
.B make
|
|
to see the usage message. If you want to compile just one command then you
|
|
can simply type
|
|
.B make
|
|
to do so. To put it in its proper place you have to type
|
|
.BR "make install" .
|
|
Read the Makefiles in the
|
|
.B commands
|
|
and
|
|
.B lib
|
|
subdirectories to understand how everything is put together. If you are
|
|
tight on memory then
|
|
.B make
|
|
may fail to traverse down the source tree and also compile things. You will
|
|
have to type
|
|
.B make
|
|
in each subdirectory. You can run make in /usr/src at the end to see if
|
|
you've missed something or not.
|
|
.PP
|
|
The login shell of bin is
|
|
.BR ash ,
|
|
the BSD shell. It has been modified to offer simple line editing using the
|
|
.BR editline (3)
|
|
library.
|
|
.B Ash
|
|
is rather big, so you may have to change bin's shell back to
|
|
.B /bin/sh
|
|
with
|
|
.BR chsh (1)
|
|
if you are low on memory. Do not change root's shell to ash, and do not
|
|
replace /bin/sh by ash. It may run out of memory at the wrong moment.
|
|
.PP
|
|
The kernel is not compiled from the master Makefile. To make a new kernel
|
|
you have to step into the
|
|
.B tools
|
|
directory. There you can run four different make commands:
|
|
.PP
|
|
.TP
|
|
.B make
|
|
This makes all the different kernel parts and combines them in the file
|
|
named
|
|
.BR image .
|
|
.TP
|
|
.B make fdboot
|
|
As above and then makes a boot floppy that you can use to restart your
|
|
system with. You are prompted for the floppy device name.
|
|
.TP
|
|
.B make hdboot
|
|
First makes the image file and then copies it into the directory
|
|
.BR /minix .
|
|
If there are already two images in that directory then the newest image will
|
|
be removed to make space for this newer image. It is assumed that the
|
|
oldest image is the most stable system image, one that always works, and
|
|
that the newest image is experimental. Check beforehand what
|
|
.B /minix
|
|
contains before you run
|
|
.BR "make hdboot" .
|
|
Remove the oldest image if you want another image to become the stable
|
|
image. The Boot Monitor chooses the newest image in
|
|
.B /minix
|
|
to boot. You can use the monitor command
|
|
.B ls minix
|
|
to view the images present, and set the
|
|
.B image
|
|
variable to the full name of the image you want to use instead if the newest
|
|
doesn't work. The images in
|
|
.B /minix
|
|
are named using the MINIX release and version numbers with an extra revision
|
|
number added to distinguish the images.
|
|
.PP
|
|
The first new kernel you would like to make is one configured for your
|
|
system. The kernel you are running now contains several hard disk drivers
|
|
you don't need, and it does not have a TCP/IP server that you may want to
|
|
have. In <minix/config.h> you can find a number of
|
|
.BI ENABLE_ XXX
|
|
variables that can be set to
|
|
.B 0
|
|
to exclude, or
|
|
.B 1
|
|
to include a particular driver. Another driver related variable is
|
|
.BR DMA_SECTORS .
|
|
This variable sets the size of a buffer used by DMA based disk drivers (all
|
|
but the floppy, AT/IDE, and Adaptec drivers). Raise its value to greatly
|
|
improve throughput, especially writing. A value of 16 shows good results.
|
|
(The BIOS driver benefits most, because it is a long way to the BIOS from
|
|
protected mode, especially from 286 protected mode.) You can increase
|
|
.B NR_CONS
|
|
if you want to have more virtual consoles. Having more consoles costs
|
|
little memory, because all the consoles are kept in video memory. Scrolling
|
|
speed of the console will go down if more virtual consoles share the
|
|
available memory. CGA cards have space for 4 consoles, EGA and VGA can
|
|
have 8 consoles. The
|
|
.B NR_PTYS
|
|
variable sets the number of pseudo-ttys. You need pseudo-ttys to be able to
|
|
login remotely over a network with the
|
|
.B rlogin
|
|
command. Each remote login session needs one pseudo-tty. If you fear that
|
|
the system will now run out of processes then increase
|
|
.BR NR_PROCS .
|
|
Configuring a new kernel is sometimes not enough to enable new devices, you
|
|
sometimes need to use the
|
|
.B MAKEDEV
|
|
command to make new device files in
|
|
.BR /dev .
|
|
For pseudo-ttys you also have to check if
|
|
.B /etc/ttytab
|
|
mentiones the new devices.
|
|
.PP
|
|
New additions to the system can be made in the
|
|
.B /usr/local
|
|
tree. An empty directory tree has been set up for you and binaries and
|
|
manual pages are already in the search paths. You can make a new user entry
|
|
with the
|
|
.B adduser
|
|
command.
|
|
.PP
|
|
The
|
|
.B TZ
|
|
variable in
|
|
.B /etc/profile
|
|
tells the time zone offset from the wall clock time to GMT. You have to
|
|
change it for your time zone. (See
|
|
.BR TZ (5).)
|
|
.PP
|
|
The function keys produce debug dumps, showing various interesting data
|
|
about the system. F1 lists processes and F5 shows ethernet stats, which
|
|
may be of use now. Read
|
|
.BR console (4)
|
|
to know all the details of the screen and keyboard.
|
|
.SS "22. SYSTEM SHUTDOWN"
|
|
You can't just turn a MINIX system off. MINIX must be told to flush the
|
|
modified data in the file system cache first. The following
|
|
commands/keystrokes can be used to exit MINIX properly:
|
|
.TP
|
|
.B shutdown
|
|
First alert all users and then all processes of the impending shutdown
|
|
then halt or reboot the system in one of various ways. See
|
|
.BR shutdown (8).
|
|
.TP
|
|
.B reboot / halt
|
|
Alert all processes of the system shutdown then reboot or halt.
|
|
.TP
|
|
.B \s-2CTRL\-ALT\-DEL\s+2
|
|
Halt the system by running
|
|
.BR "shutdown \-h now" .
|
|
.PP
|
|
MINIX halts by returning to the Boot Monitor, MINIX reboots by instructing
|
|
the monitor to reboot MINIX. (MINIX is just a subprocess to the monitor.)
|
|
Either halt MINIX and use monitor commands to escape MINIX, or use
|
|
.B shutdown \-R
|
|
to reset the system.
|
|
.SH FILES
|
|
.TP 12
|
|
.B /usr/ast
|
|
Honorary home directory of Andew S. Tanenbaum. Doubles as the place where
|
|
the default setup for a new user is found.
|
|
.SH "SEE ALSO"
|
|
.BR monitor (8),
|
|
.BR boot (8),
|
|
.BR part (8),
|
|
.BR mkfs (1),
|
|
.BR mount (8),
|
|
.BR M (8),
|
|
.BR fstab (5),
|
|
.BR hier (7),
|
|
.BR console (4),
|
|
.BR dev (4),
|
|
.BR adduser (8),
|
|
.BR TZ (5),
|
|
.BR mkdist (8),
|
|
.BR shutdown (8).
|
|
.br
|
|
"Operating Systems \- Design and Implementation 2/e" by Andrew S. Tanenbaum
|
|
and Albert S. Woodhull.
|
|
.SH NOTES
|
|
The notation
|
|
.BI < file .h>
|
|
refers to a C language include file in /usr/include.
|
|
.PP
|
|
.B Root
|
|
and
|
|
.B bin
|
|
do not have the current directory in their program search path to avoid
|
|
executing programs left around by malicious people. This means that to run
|
|
.B foo
|
|
from the current directory,
|
|
.B ./foo
|
|
must be typed.
|
|
.PP
|
|
Some of the commands have changed since earlier MINIX versions. For instance
|
|
.B mkfs
|
|
doesn't need a size argument anymore, and
|
|
.B vol
|
|
automagically determines if it needs to read or write. Keep this in mind
|
|
if you use an older MINIX version to examine the newer system.
|
|
.SH BUGS
|
|
There are many PS/2 models, all different. Some will run MINIX, some won't,
|
|
some crippled if you lie to MINIX by setting
|
|
.B processor
|
|
to
|
|
.BR 86 .
|
|
Almost no PS/2 has a standard disk, so setting
|
|
.B hd
|
|
to
|
|
.B esdi
|
|
or
|
|
.B bios
|
|
will be necessary.
|
|
.PP
|
|
While testing a full library rebuild of this distribution it sometimes
|
|
happened that some things were not put back into the library. This seems
|
|
to be fixed, but we do not understand why the fix fixed the problem. So
|
|
if you see strange "undefined" errors when compiling a program after a
|
|
library rebuild then run
|
|
.B make install
|
|
again in
|
|
.B /usr/src/lib/
|
|
to try and add the missing pieces.
|
|
.PP
|
|
Except for the floppy driver, none of the DMA based drivers know about DMA
|
|
being limited to a 24 bits address, i.e. the first 16 MB. So under MINIX-386
|
|
you run a slight risk that a
|
|
.B tar
|
|
or
|
|
.B dd
|
|
command may use a buffer above 16 MB for reading or writing to a character
|
|
device. This only happens if the low 16 MB is taken by some huge processes,
|
|
and you have more than 16 MB, of course.
|
|
.SH AUTHOR
|
|
Kees J. Bot (kjb@cs.vu.nl)
|