857 lines
39 KiB
Plaintext
857 lines
39 KiB
Plaintext
|
||
|
||
USAGE(8) Maintenance Procedures USAGE(8)
|
||
|
||
|
||
|
||
NAME
|
||
usage - installing and using MINIX
|
||
|
||
DESCRIPTION
|
||
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 docu-
|
||
ment entirely before attempting to install MINIX. The ins-
|
||
tallation 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 boot(8) and hier(7).
|
||
|
||
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,
|
||
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.
|
||
|
||
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 a subparti-
|
||
tion will contain the root file system, and the c subparti-
|
||
tion will contain the /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 sys-
|
||
tem 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 /bin,
|
||
device files in /dev, and configuration files in /etc. This
|
||
is just enough to get the system started. MINIX will soon
|
||
extend its directory tree by mounting a file system on the
|
||
/usr directory. What is henceforth known as the /usr file
|
||
system contains all MINIX programs in /usr/bin, file system
|
||
sources in /usr/src, etc, etc. The ROOT image contains the
|
||
complete MINIX root file system, but USR contains just a
|
||
small subset of the /usr file system, with just enough util-
|
||
ities to install MINIX. The complete /usr file system is
|
||
split up into the USR.TAZ, SYS.TAZ and CMD.TAZ archives that
|
||
are installed later to fill /usr.
|
||
|
||
Let's suppose your first hard disk, which has device name
|
||
/dev/hd0, has MS-DOS already present in the first primary
|
||
partition (/dev/hd1), and some free space left after that.
|
||
After MINIX is installed in that free space the disk will
|
||
|
||
|
||
|
||
1
|
||
|
||
|
||
USAGE(8) Maintenance Procedures USAGE(8)
|
||
|
||
|
||
|
||
look like this:
|
||
|
||
/dev/hd0 Whole hard disk #0
|
||
/dev/hd1 MS-DOS C: drive
|
||
/dev/hd2 MINIX primary partition
|
||
/dev/hd2a MINIX root partition
|
||
/dev/hd2c MINIX /usr partition
|
||
|
||
/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.
|
||
|
||
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 sup-
|
||
posed to look like at each step, so you can see if every-
|
||
thing is OK.
|
||
|
||
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 pro-
|
||
grams used below before you start. You may especially want
|
||
to read boot(8) if your machine is different from what the
|
||
majority buys, because you may need to set a few boot param-
|
||
eters to configure drivers. To do this type ESC to get to
|
||
the Boot Monitor prompt, set the appropriate variables, use
|
||
save to store the settings and menu to continue where you
|
||
left off.
|
||
|
||
To install the system you need two diskettes: a bootable
|
||
root diskette and a diskette full of binaries to use as
|
||
/usr. These diskettes are named ROOT and USR. These two
|
||
diskettes may also be combined on a single high density
|
||
diskette. In that case the USR part is on the c partition.
|
||
|
||
Insert the ROOT 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 /usr. Type fd0c for a
|
||
diskette that contains both ROOT and USR, otherwise replace
|
||
ROOT by USR and type fd0. Login as root.
|
||
|
||
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.
|
||
|
||
2
|
||
|
||
|
||
USAGE(8) Maintenance Procedures USAGE(8)
|
||
|
||
|
||
|
||
Splitting an MS-DOS partition can be done using fips, and is
|
||
discussed in the main README.TXT file.
|
||
|
||
Type setup to start the installation script. First it
|
||
offers to install a national keyboard map. The names should
|
||
be clear, except for 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 key-
|
||
board.
|
||
|
||
The next thing to do is to make a partition, for this you
|
||
are placed in a partition table editor named 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.
|
||
|
||
With the '+' and '-' keys you can select the disk device to
|
||
install on, probably /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.
|
||
|
||
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.
|
||
|
||
After making /usr, it is immediately put to use to replace
|
||
the installation /usr file system so that you can remove the
|
||
USR diskette and insert the ROOT diskette (unless they are
|
||
one and the same). The root file system is filled with the
|
||
contents of the ROOT diskette and slightly patched up to
|
||
work on the hard disk (/etc/fstab.)
|
||
|
||
To compute the size of the so-called "second level block
|
||
cache" you are asked to specify the RAM size of your
|
||
|
||
|
||
|
||
3
|
||
|
||
|
||
USAGE(8) Maintenance Procedures USAGE(8)
|
||
|
||
|
||
|
||
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.
|
||
|
||
You can now skip the next section and move to "TESTING", but
|
||
it may be instructive to read it anyway.
|
||
|
||
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 every-
|
||
thing 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.
|
||
|
||
Run 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 sub-
|
||
partitions for root and /usr. The assumption is that you
|
||
will use the second partition on the first hard disk,
|
||
/dev/hd2, and that hd2a is the root subpartition and 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 SCSI 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 part(8), hd(4),
|
||
and sd(4). Start 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 /dev/hd0.
|
||
|
||
Use 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.
|
||
|
||
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
|
||
ROOT diskette is a copy of a root file system, and will be
|
||
used to fill your root subpartition.)
|
||
|
||
The second subpartition is either empty or a "scratch" par-
|
||
tition. MINIX no longer uses the b subpartition for any-
|
||
thing useful anymore, but it has become customary to have
|
||
root on a and /usr on c. (You are free to ignore this con-
|
||
vention, of course.)
|
||
|
||
Use the rest of the partition for the /usr c subpartition.
|
||
|
||
|
||
|
||
|
||
4
|
||
|
||
|
||
|
||
USAGE(8) Maintenance Procedures USAGE(8)
|
||
|
||
|
||
|
||
When you are done check that /dev/hd2a is active (the *
|
||
after the partition number) so you can boot from it later.
|
||
|
||
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 parti-
|
||
tion table, are not sorted by the driver.
|
||
|
||
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.)
|
||
|
||
To be able to boot from /dev/hd2a you must place a master
|
||
bootstrap in /dev/hd2. It has been placed there by part if
|
||
it told you that it was creating a new partition table, but
|
||
|
||
installboot -m /dev/hd2 /usr/mdec/masterboot
|
||
|
||
will put it there for sure.
|
||
|
||
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 ROOT floppy right now.
|
||
|
||
mkfs /dev/hd2c
|
||
readall -b /dev/hd2c | sh
|
||
mount /dev/hd2c /mnt
|
||
cpdir -v /usr /mnt
|
||
|
||
This will create a file system on /dev/hd2c, mount it on
|
||
/mnt, and copy the contents of the USR floppy onto it. The
|
||
call to readall marks bad blocks on the file system as unus-
|
||
able, you can omit this on a drive known to be spotless (IDE
|
||
or SCSI.)
|
||
|
||
You can now use the new /usr in place of the USR floppy:
|
||
|
||
umount /dev/hd2c
|
||
umount /dev/fd0 # fd0c if combined
|
||
mount /dev/hd2c /usr
|
||
|
||
This little dance has freed up your floppy drive, so please
|
||
remove the USR diskette and replace it by the ROOT diskette.
|
||
Make a file system for the root with at least 512 inodes
|
||
(files), and fill it from the floppy:
|
||
|
||
mkfs -i 512 /dev/hd2a
|
||
mount /dev/fd0 /fd0
|
||
mount /dev/hd2a /mnt
|
||
cpdir -v /fd0 /mnt
|
||
|
||
|
||
5
|
||
|
||
|
||
USAGE(8) Maintenance Procedures USAGE(8)
|
||
|
||
|
||
|
||
umount /dev/fd0
|
||
|
||
Remove /mnt/etc/issue to get rid of the "use setup" message
|
||
that greets you when you boot, and edit the file
|
||
/mnt/etc/fstab to name the devices MINIX has been installed
|
||
on. In our example it should look like this:
|
||
|
||
root=/dev/hd2a
|
||
usr=/dev/hd2c
|
||
|
||
Unmount the new root:
|
||
|
||
umount /dev/hd2a
|
||
|
||
Make it bootable:
|
||
|
||
installboot -d /dev/hd2a /usr/mdec/bootblock boot
|
||
|
||
The automatic script would now set the rootdev and ram-
|
||
imagedev boot variables. You can do this now using the
|
||
edparams command, but it is easier to postpone it until the
|
||
testing phase. The settings should be:
|
||
|
||
rootdev=hd2a
|
||
ramimagedev=hd2a
|
||
|
||
6. TESTING
|
||
By now a new MINIX system is present on your hard disk.
|
||
Time to see if it works. Leave the ROOT diskette in the
|
||
drive and type 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 boot hd2 to boot
|
||
the primary partition MINIX has been installed in. (It is
|
||
"hd2" in our example.) For a SCSI 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.
|
||
|
||
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 ESC once more to get to the com-
|
||
mand prompt. The command set shows what the current parame-
|
||
ters are. Here is an example that shows how to make a menu
|
||
to either start MINIX or boot MS-DOS:
|
||
|
||
minix(=,MINIX) {boot}
|
||
dos(d,MS-DOS) {boot hd1}
|
||
save
|
||
|
||
MS-DOS is assumed to be in the first partition in the exam-
|
||
ple above (hd1). When finished type menu to see if the menu
|
||
looks right. If so hit '=' to start MINIX. Log in as root.
|
||
|
||
|
||
|
||
|
||
6
|
||
|
||
|
||
USAGE(8) Maintenance Procedures USAGE(8)
|
||
|
||
|
||
|
||
7. ADDING PROGRAMS AND SOURCES TO /usr
|
||
The setup command can also be used to add files from floppy
|
||
sets to the system. The USR.TAZ (programs and stuff),
|
||
SYS.TAZ (system sources), and CMD.TAZ (commands sources) are
|
||
all installed relative to the /usr directory, so the command
|
||
to use three times is
|
||
|
||
setup /usr
|
||
|
||
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 USR.TAZ set if you want a working MINIX system, SYS.TAZ
|
||
if you want recompile the system or study it, and CMD.TAZ 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.
|
||
|
||
If your machine does not have enough memory to run
|
||
setup /usr then type these commands manually:
|
||
|
||
cd /usr
|
||
vol /dev/fd0 | uncompress | tar xvfp -
|
||
|
||
8. NAMES
|
||
A standalone machine will have to be given a name. As root
|
||
type
|
||
|
||
echo name >/etc/hostname.file
|
||
|
||
to change the host name of your machine to name.
|
||
|
||
9. ACTIVE ON BOOT
|
||
You may want to make the MINIX partition active so that it
|
||
is automatically booted. With MS-DOS fdisk or MINIX 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:
|
||
|
||
main() {trap 5000 minix; menu}
|
||
|
||
See monitor(8) for all the details on the monitor.
|
||
|
||
If you don't trust this then you can rig up a diskette that
|
||
boots the MINIX partition when left in the drive:
|
||
|
||
installboot -m 2 /dev/fd0 /usr/mdec/masterboot
|
||
|
||
|
||
|
||
|
||
|
||
7
|
||
|
||
|
||
USAGE(8) Maintenance Procedures USAGE(8)
|
||
|
||
|
||
|
||
The number 2 indicates the hard disk partition that must be
|
||
booted, you can use the numbers 1 to 9 for hd1 to hd9.
|
||
|
||
10. DEVICES
|
||
A crash course on the MINIX devices in /dev: The two hard
|
||
disks are named hd0 and hd5. These "multiple of five" dev-
|
||
ices address the entire hard disk, from the first to the
|
||
last byte. Each disk has four partitions, for disk 0 they
|
||
are hd1, hd2, hd3, and hd4. And for disk 1 they are named
|
||
hd6, hd7, hd8, and hd9. These partitions may contain file
|
||
systems, 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 hd1
|
||
are named hd1a, hd1b, hd1c, and hd1d. The other partitions
|
||
may have four subpartitions that are named in the same way
|
||
by adding a letter from a to d. So one disk may have four
|
||
partitions, and 16 subpartititions total. SCSI disks are
|
||
named in the same way, from sd0 to sd39d for all possible
|
||
devices for all eight SCSI targets. The two floppy disks
|
||
are fd0 and fd1. Each may have four partitions named fd0a,
|
||
fd0b, ... fd1d. The command MAKEDEV knows how to make dev-
|
||
ices, and DESCRIBE can tell you what an unknown device may
|
||
be, or even what all devices in /dev may be if called
|
||
without arguments. Devices are described fully in dev(4),
|
||
and in the device specific manual pages like fd(4) and
|
||
hd(4).
|
||
|
||
11. EDITORS
|
||
The editors available are elvis (a vi clone), elle (a simple
|
||
emacs clone), and the old MINIX mined editor. Of these edi-
|
||
tors only elvis can recover your file after a system crash.
|
||
Only mined is available at installation time. (All you need
|
||
to know about mined right now is that CTRL-X gets you out of
|
||
it.)
|
||
|
||
12. INSTALLING ON A SCSI DISK
|
||
Using a disk other than an (IDE) hd disk complicates things
|
||
a bit. The Boot Monitor uses the BIOS, so it names all
|
||
disks with hd names. So it is boot hd1 to boot partition 1,
|
||
and ramimagedev=sd2a to tell MINIX its root partition. If
|
||
you have both a normal and a SCSI disk then the disks may be
|
||
hd0 and hd5 to the Monitor, and hd0 and sd0 to MINIX.
|
||
|
||
13. NATIONAL KEYBOARDS
|
||
The directory /usr/lib/keymaps contains keymap tables for
|
||
several national keyboards. If you have a German keyboard
|
||
for instance, then
|
||
|
||
loadkeys /usr/lib/keymaps/german.map
|
||
|
||
|
||
|
||
|
||
8
|
||
|
||
|
||
USAGE(8) Maintenance Procedures USAGE(8)
|
||
|
||
|
||
|
||
will load the German key translation table into the keyboard
|
||
driver. Copy the map to /etc/keymap once MINIX is installed
|
||
on the hard disk, because having to type a key sequence like
|
||
one of these:
|
||
|
||
loadkezs -usr-lib-kezmaps-german.map
|
||
loqdkeys =usr=lib=key,qps=french.,qp
|
||
|
||
on a reboot gets a bit annoying after a while. Send correc-
|
||
tions and new keymaps to the person named below. (Do not
|
||
send a Dutch keymap, buy yourself a real keyboard instead.)
|
||
|
||
SUGGESTIONS
|
||
Below are a few useful suggestions. Some of the information
|
||
can be of use in other situations than described here.
|
||
|
||
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 ses-
|
||
sions. (Unless you have an old mono adapter, because vir-
|
||
tual consoles sit in video memory, and a mono adapter only
|
||
has memory for one.)
|
||
|
||
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.
|
||
|
||
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 com-
|
||
bined root+usr floppy, or you have two floppy drives of at
|
||
least 720 kb. Before booting you have to set the variable
|
||
rootdev to the same value as ramimagedev. This is slower
|
||
then a RAM disk, but saves a lot of memory.
|
||
|
||
The automatic installation script knows how to handle this
|
||
new situation. If you install manually then you have to use
|
||
|
||
cpdir -vx / /mnt
|
||
|
||
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.
|
||
|
||
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 TINYROOT 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
|
||
|
||
|
||
9
|
||
|
||
|
||
USAGE(8) Maintenance Procedures USAGE(8)
|
||
|
||
|
||
|
||
to boot your machine. Use the normal ROOT to install the
|
||
root file system. Keep booting your machine with TINYROOT
|
||
until you have compiled a small kernel for your system. Use
|
||
the rootdev boot variable to select the hard disk root file
|
||
system. Do not use TINYROOT for anything other than boot-
|
||
ing, always use ROOT when mentioned.
|
||
|
||
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 USR image onto a
|
||
diskette for drive 0. The USR bootstrap has been rigged to
|
||
boot the other drive.
|
||
|
||
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
|
||
|
||
installboot -m 5 /dev/hd0 /usr/mdec/masterboot
|
||
|
||
will lock the first disk into booting the second disk. Note
|
||
that this command modifies the disk outside a MINIX parti-
|
||
tion, 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.
|
||
|
||
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 ramsize boot
|
||
variable. Set it to a number between 0 and 512. 512 kilo-
|
||
bytes is enough to keep most of the compiler cached. You
|
||
must have extended memory; expanded memory is not supported.
|
||
|
||
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 instal-
|
||
lation script sets up a second level cache for MINIX-386 of
|
||
up to 1024 kilobytes. This is because the default file sys-
|
||
tem cache is only 80 kb. Your first point of call is to get
|
||
rid of the poorly performing second level cache by setting
|
||
ENABLE_CACHE2 to 0 and to assign the memory used by it to
|
||
the normal block cache by enlarging the appropriate NR_BUFS
|
||
and NR_BUF_HASH constants in <minix/config.h> with as much
|
||
as you can spare. (1024 for NR_BUFS is the minimum to keep
|
||
|
||
|
||
|
||
10
|
||
|
||
|
||
USAGE(8) Maintenance Procedures USAGE(8)
|
||
|
||
|
||
|
||
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 ramsize to 0.
|
||
|
||
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 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.
|
||
|
||
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 pro-
|
||
tected from doing stupid things. So don't do development as
|
||
root, but work as bin! Only in exceptional cases do you
|
||
want to become root. Being root is fun for wannabe hackers;
|
||
administrators know better.
|
||
|
||
To make life easier for bin, some programs like su(1),
|
||
install(1) and 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
|
||
##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.
|
||
|
||
The home directory of bin contains one important Makefile.
|
||
You can use it to recompile all the commands and libraries
|
||
of the system. Type make to see the usage message. If you
|
||
want to compile just one command then you can simply type
|
||
make to do so. To put it in its proper place you have to
|
||
type make install. Read the Makefiles in the commands and
|
||
lib subdirectories to understand how everything is put
|
||
together. If you are tight on memory then make may fail to
|
||
traverse down the source tree and also compile things. You
|
||
will have to type make in each subdirectory. You can run
|
||
make in /usr/src at the end to see if you've missed some-
|
||
thing or not.
|
||
|
||
The login shell of bin is ash, the BSD shell. It has been
|
||
modified to offer simple line editing using the editline(3)
|
||
library. Ash is rather big, so you may have to change bin's
|
||
shell back to /bin/sh with 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.
|
||
|
||
|
||
|
||
|
||
|
||
11
|
||
|
||
|
||
USAGE(8) Maintenance Procedures USAGE(8)
|
||
|
||
|
||
|
||
The kernel is not compiled from the master Makefile. To
|
||
make a new kernel you have to step into the tools directory.
|
||
There you can run four different make commands:
|
||
|
||
make This makes all the different kernel parts and combines
|
||
them in the file named image.
|
||
|
||
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.
|
||
|
||
make hdboot
|
||
First makes the image file and then copies it into the
|
||
directory /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 experi-
|
||
mental. Check beforehand what /minix contains before
|
||
you run make hdboot. Remove the oldest image if you
|
||
want another image to become the stable image. The
|
||
Boot Monitor chooses the newest image in /minix to
|
||
boot. You can use the monitor command ls minix to view
|
||
the images present, and set the image variable to the
|
||
full name of the image you want to use instead if the
|
||
newest doesn't work. The images in /minix are named
|
||
using the MINIX release and version numbers with an
|
||
extra revision number added to distinguish the images.
|
||
|
||
The first new kernel you would like to make is one config-
|
||
ured for your system. The kernel you are running now con-
|
||
tains 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 ENABLE_XXX vari-
|
||
ables that can be set to 0 to exclude, or 1 to include a
|
||
particular driver. Another driver related variable is
|
||
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 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
|
||
NR_PTYS variable sets the number of pseudo-ttys. You need
|
||
pseudo-ttys to be able to login remotely over a network with
|
||
the rlogin command. Each remote login session needs one
|
||
|
||
|
||
|
||
12
|
||
|
||
|
||
USAGE(8) Maintenance Procedures USAGE(8)
|
||
|
||
|
||
|
||
pseudo-tty. If you fear that the system will now run out of
|
||
processes then increase NR_PROCS. Configuring a new kernel
|
||
is sometimes not enough to enable new devices, you sometimes
|
||
need to use the MAKEDEV command to make new device files in
|
||
/dev. For pseudo-ttys you also have to check if /etc/ttytab
|
||
mentiones the new devices.
|
||
|
||
New additions to the system can be made in the /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 adduser command.
|
||
|
||
The TZ variable in /etc/profile tells the time zone offset
|
||
from the wall clock time to GMT. You have to change it for
|
||
your time zone. (See TZ(5).)
|
||
|
||
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 con-
|
||
sole(4) to know all the details of the screen and keyboard.
|
||
|
||
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:
|
||
|
||
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 shutdown(8).
|
||
|
||
reboot / halt
|
||
Alert all processes of the system shutdown then reboot
|
||
or halt.
|
||
|
||
CTRL-ALT-DEL
|
||
Halt the system by running shutdown -h now.
|
||
|
||
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 shutdown -R to
|
||
reset the system.
|
||
|
||
FILES
|
||
/usr/ast Honorary home directory of Andew S. Tanenbaum.
|
||
Doubles as the place where the default setup for
|
||
a new user is found.
|
||
|
||
SEE ALSO
|
||
monitor(8), boot(8), part(8), mkfs(1), mount(8), M(8),
|
||
|
||
|
||
|
||
13
|
||
|
||
|
||
USAGE(8) Maintenance Procedures USAGE(8)
|
||
|
||
|
||
|
||
fstab(5), hier(7), console(4), dev(4), adduser(8), TZ(5),
|
||
mkdist(8), shutdown(8).
|
||
"Operating Systems - Design and Implementation 2/e" by
|
||
Andrew S. Tanenbaum and Albert S. Woodhull.
|
||
|
||
NOTES
|
||
The notation <file.h> refers to a C language include file in
|
||
/usr/include.
|
||
|
||
Root and bin do not have the current directory in their pro-
|
||
gram search path to avoid executing programs left around by
|
||
malicious people. This means that to run foo from the
|
||
current directory, ./foo must be typed.
|
||
|
||
Some of the commands have changed since earlier MINIX ver-
|
||
sions. For instance mkfs doesn't need a size argument
|
||
anymore, and 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.
|
||
|
||
BUGS
|
||
There are many PS/2 models, all different. Some will run
|
||
MINIX, some won't, some crippled if you lie to MINIX by set-
|
||
ting processor to 86. Almost no PS/2 has a standard disk,
|
||
so setting hd to esdi or bios will be necessary.
|
||
|
||
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 under-
|
||
stand why the fix fixed the problem. So if you see strange
|
||
"undefined" errors when compiling a program after a library
|
||
rebuild then run make install again in /usr/src/lib/ to try
|
||
and add the missing pieces.
|
||
|
||
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 tar or 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.
|
||
|
||
AUTHOR
|
||
Kees J. Bot (kjb@cs.vu.nl)
|
||
|
||
14
|
||
|
||
|