add directory Minix
This commit is contained in:
856
Minix/CD-ROM-2.0/MINIX/INSTALL.TXT
Normal file
856
Minix/CD-ROM-2.0/MINIX/INSTALL.TXT
Normal file
@@ -0,0 +1,856 @@
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user