1176 lines
42 KiB
Plaintext
1176 lines
42 KiB
Plaintext
# MAN8
|
||
MAN8 (8)
|
||
|
||
Section 8 of the Manual contains information on system installation and
|
||
maintenance.
|
||
|
||
The sections of the manual are:
|
||
|
||
Section 1: User commands
|
||
Section 2: System calls
|
||
Section 3: C library
|
||
Section 4: File formats
|
||
Section 5: Miscellaneous
|
||
Section 6: Games
|
||
Section 7: Special files (devices)
|
||
-->Section 8: Maintenance procedures
|
||
|
||
# alive
|
||
ALIVE (8M) MAINTENANCE COMMANDS ALIVE (8M)
|
||
|
||
|
||
|
||
NAME
|
||
alive - keep connection alive
|
||
|
||
SYNOPSIS
|
||
[0m[1malive[0m [ -v ] [0m[1mhostname[0m [ [0m[4minterval[0m ]
|
||
|
||
AVAILABILITY
|
||
This command is available with the TemariNET software
|
||
package.
|
||
|
||
DESCRIPTION
|
||
The [0m[1malive[0m command sends a UDP packet to the UDP discard port
|
||
of the [0m[1mhostname[0m specified every [0m[4minterval[0m seconds. If the
|
||
[0m[4minterval[0m is not given the default is 30 seconds.
|
||
|
||
The purpose is to prevent the connection from timing out due
|
||
to inactivity.
|
||
|
||
OPTIONS
|
||
|
||
-v
|
||
Verbose mode. This is useful for debugging purposes
|
||
only.
|
||
|
||
EXAMPLE
|
||
alive oasis2 300
|
||
|
||
NOTES
|
||
The source for this command will show an example of how to
|
||
write a program to use the UDP protocol.
|
||
|
||
AUTHOR
|
||
Michael Temari - temari@temari.ae.ge.com
|
||
|
||
# daytimed
|
||
DAYTIMED (8M) MAINTENANCE COMMANDS DAYTIMED (8M)
|
||
|
||
|
||
|
||
NAME
|
||
daytimed - report the current date and time
|
||
|
||
SYNOPSIS
|
||
[0m[1mdaytimed[0m [ -d ]
|
||
|
||
AVAILABILITY
|
||
This command is available with the TemariNET software
|
||
package.
|
||
|
||
DESCRIPTION
|
||
[0m[1mdaytimed[0m is a daemon server which implements the DAYTIME
|
||
protocol. It reports the system's current date and time.
|
||
|
||
OPTIONS
|
||
|
||
-d
|
||
Debug mode. This is useful for debugging purposes
|
||
only.
|
||
|
||
SEE ALSO
|
||
netdate(8m), timed(8m)
|
||
|
||
AUTHOR
|
||
Michael Temari - temari@temari.ae.ge.com
|
||
Fred N. van Kempen - waltje@uwalt.nl.mugnet.org
|
||
|
||
# netdate
|
||
NETDATE (8M) MAINTENANCE COMMANDS NETDATE (8M)
|
||
|
||
|
||
|
||
NAME
|
||
netdate - fetch the current date and time off of a network
|
||
server
|
||
|
||
SYNOPSIS
|
||
[0m[1mnetdate[0m [ -adtv ] [ [0m[4mhostname[0m ] [ -s ] [ [0m[4mserver[0m ]
|
||
|
||
AVAILABILITY
|
||
This command is available with the TemariNET software
|
||
package.
|
||
|
||
DESCRIPTION
|
||
The [0m[1mnetdate[0m command implements the TIMEP protocol (see RFC
|
||
868) for fetching the current date and time off a network
|
||
server. If no server name is given, the program will use
|
||
the localhost as the TIMEP server.
|
||
|
||
OPTIONS
|
||
|
||
-a
|
||
Display the time in ARPANET standard format.
|
||
|
||
-d
|
||
Debug mode. This is useful for debugging purposes
|
||
only.
|
||
|
||
-t
|
||
Use time(2) and do as date(1).
|
||
|
||
-v
|
||
Verbose mode. This is the same as -d.
|
||
|
||
-s
|
||
Set the time of the system RTC clock.
|
||
|
||
EXAMPLE
|
||
netdate -s nyx.cs.du.edu
|
||
|
||
SEE ALSO
|
||
timed(8m)
|
||
|
||
AUTHOR
|
||
Michael Temari - temari@temari.ae.ge.com
|
||
Fred N. van Kempen - waltje@uwalt.nl.mugnet.org
|
||
|
||
# nslookup
|
||
NSLOOKUP (8) June 24, 1990 NSLOOKUP (8)
|
||
|
||
|
||
|
||
NAME
|
||
nslookup - query Internet name servers interactively
|
||
|
||
SYNOPSIS
|
||
nslookup [ -option ] [ host-to-find | - [ server ]]
|
||
|
||
DESCRIPTION
|
||
Nslookup is a program to query Internet domain name
|
||
servers. Nslookup has two modes: interactive and
|
||
non-interactive. Interactive mode allows the user to query
|
||
name servers for information about various hosts and domains
|
||
or to print a list of hosts in a domain. Non-interactive
|
||
mode is used to print just the name and requested
|
||
information for a host or domain.
|
||
|
||
|
||
ARGUMENTS
|
||
Interactive mode is entered in the following cases:
|
||
|
||
a)
|
||
when no arguments are given (the default name server
|
||
will be used),
|
||
|
||
b)
|
||
when the first argument is a hyphen (-) and the second
|
||
argument is the host name or Internet address of a name
|
||
server.
|
||
|
||
Non-interactive mode is used when the name or Internet
|
||
address of the host to be looked up is given as the first
|
||
argument. The optional second argument specifies the host
|
||
name or address of a name server.
|
||
|
||
The options listed under the ``set'' command below can be
|
||
specified in the .nslookuprc file in the user's home
|
||
directory if they are listed one per line. Options can
|
||
also be specified on the command line if they precede the
|
||
arguments and are prefixed with a hyphen. For example, to
|
||
change the default query type to host information, and the
|
||
initial timeout to 10 seconds, type:
|
||
nslookup -query=hinfo -timeout=10
|
||
|
||
INTERACTIVE COMMANDS
|
||
Commands may be interrupted at any time by typing a
|
||
control-C. To exit, type a control-D (EOF) or type exit.
|
||
The command line length must be less than 256 characters.
|
||
To treat a built-in command as a host name, precede it with
|
||
an escape character (\). N.B. an unrecognized command will
|
||
be interpreted as a host name.
|
||
|
||
host [server]
|
||
Look up information for host using the current default
|
||
server or using server if specified. If host is an
|
||
Internet address and the querey type is A or PTR, the
|
||
name of the host is returned. If host is a name and
|
||
does not have a trailing period, the default domain
|
||
name is appended to the name. (This behavior depends
|
||
on the state of the set options domain, srchlist,
|
||
defname, and search). To look up a host not in the
|
||
current domain, append a period to the name.
|
||
|
||
|
||
server domain
|
||
|
||
lserver domain
|
||
Change the default server to domain. Lserver uses the
|
||
initial server to look up information about domain
|
||
while server uses the current default server. If an
|
||
authoritative answer can't be found, the names of
|
||
servers that might have the answer are returned.
|
||
|
||
|
||
root
|
||
Changes the default server to the server for the root
|
||
of the domain name space. Currently, the host
|
||
ns.nic.ddn.mil is used. (This command is a synonym for
|
||
lserver ns.nic.ddn.mil.) The name of the root server
|
||
can be changed with the set root command.
|
||
|
||
|
||
finger [name] [> filename]
|
||
|
||
finger [name] [>> filename]
|
||
Connects with the finger server on the current host.
|
||
The current host is defined when a previous lookup for
|
||
a host was successful and returned address information
|
||
(see the set querytype=A command). Name is optional.
|
||
> and >> can be used to redirect output in the usual
|
||
manner.
|
||
|
||
|
||
ls [option] domain [> filename]
|
||
|
||
ls [option] domain [>> filename]
|
||
List the information available for domain, optionally
|
||
creating or appending to filename. The default output
|
||
contains host names and their Internet addresses.
|
||
Option can be one of the following:
|
||
|
||
|
||
-t querytype
|
||
lists all records of the specified type (see querytype
|
||
below).
|
||
|
||
-a
|
||
lists aliases of hosts in the domain. synonym for -t
|
||
CNAME.
|
||
|
||
-d
|
||
lists all records for the domain. synonym for -t ANY.
|
||
|
||
-h
|
||
lists CPU and operating system information for the
|
||
domain. synonym for -t HINFO.
|
||
|
||
-s
|
||
lists well-known services of hosts in the domain.
|
||
synonym for -t WKS. When output is directed to a file,
|
||
hash marks are printed for every 50 records received
|
||
from the server.
|
||
|
||
|
||
|
||
view filename
|
||
Sorts and lists the output of previous ls command(s)
|
||
with more(1).
|
||
|
||
|
||
help
|
||
|
||
?
|
||
Prints a brief summary of commands.
|
||
|
||
|
||
exit
|
||
Exits the program.
|
||
|
||
|
||
set keyword[=value]
|
||
This command is used to change state information that
|
||
affects the lookups. Valid keywords are:
|
||
|
||
|
||
all
|
||
Prints the current values of the frequently-used
|
||
options to set. Information about the current default
|
||
server and host is also printed.
|
||
|
||
class=value
|
||
Change the query class to one of:
|
||
|
||
|
||
IN
|
||
the Internet class.
|
||
|
||
CHAOS
|
||
the Chaos class.
|
||
|
||
HESIOD
|
||
the MIT Athena Hesiod class.
|
||
|
||
ANY
|
||
wildcard (any of the above). The class specifies the
|
||
protocol group of the information.
|
||
(Default = IN, abbreviation = cl)
|
||
|
||
|
||
[no]debug
|
||
Turn debugging mode on. A lot more information is
|
||
printed about the packet sent to the server and the
|
||
resulting answer.
|
||
(Default = nodebug, abbreviation = [no]deb)
|
||
|
||
[no]d2
|
||
Turn exhaustive debugging mode on. Essentially all
|
||
fields of every packet are printed.
|
||
(Default = nod2)
|
||
|
||
domain=name
|
||
Change the default domain name to name. The default
|
||
domain name is appended to a lookup request depending
|
||
on the state of the defname and search options. The
|
||
domain search list contains the parents of the default
|
||
domain if it has at least two components in its name.
|
||
For example, if the default domain is CC.Berkeley.EDU,
|
||
the search list is CC.Berkeley.EDU and Berkeley.EDU.
|
||
Use the set srchlist command to specify a different
|
||
list. Use the set all command to display the list.
|
||
(Default = value from hostname, /etc/resolv.conf or
|
||
LOCALDOMAIN, abbreviation = do)
|
||
|
||
srchlist=name1/name2/...
|
||
Change the default domain name to name1 and the domain
|
||
search list to name1, name2, etc. A maximum of 6 names
|
||
separated by slashes (/) can be specified. For
|
||
example,
|
||
set srchlist=lcs.MIT.EDU/ai.MIT.EDU/MIT.EDU
|
||
sets the domain to lcs.MIT.EDU and the search list to
|
||
the three names. This command overrides the default
|
||
domain name and search list of the set domain command.
|
||
Use the set all command to display the list.
|
||
(Default = value based on hostname, /etc/resolv.conf or
|
||
LOCALDOMAIN, abbreviation = srchl)
|
||
|
||
[no]defname
|
||
If set, append the default domain name to a
|
||
single-component lookup request (i.e., one that does
|
||
not contain a period).
|
||
(Default = defname, abbreviation = [no]def)
|
||
|
||
[no]search
|
||
If the lookup request contains at least one period but
|
||
doesn't end with a trailing period, append the domain
|
||
names in the domain search list to the request until an
|
||
answer is received.
|
||
(Default = search, abbreviation = [no]sea)
|
||
|
||
port=value
|
||
Change the default TCP/UDP name server port to value.
|
||
(Default = 53, abbreviation = po)
|
||
|
||
querytype=value
|
||
|
||
type=value
|
||
Change the type of information query to one of:
|
||
|
||
|
||
A
|
||
the host's Internet address.
|
||
|
||
CNAME
|
||
the canonical name for an alias.
|
||
|
||
HINFO
|
||
the host CPU and operating system type.
|
||
|
||
MINFO
|
||
the mailbox or mail list information.
|
||
|
||
MX
|
||
the mail exchanger.
|
||
|
||
NS
|
||
the name server for the named zone.
|
||
|
||
PTR
|
||
the host name if the query is an Internet address,
|
||
otherwise the pointer to other information.
|
||
|
||
SOA
|
||
the domain's ``start-of-authority'' information.
|
||
|
||
TXT
|
||
the text information.
|
||
|
||
UINFO
|
||
the user information.
|
||
|
||
WKS
|
||
the supported well-known services. Other types (ANY,
|
||
AXFR, MB, MD, MF, NULL) are described in the RFC-1035
|
||
document.
|
||
(Default = A, abbreviations = q, ty)
|
||
|
||
|
||
[no]recurse
|
||
Tell the name server to query other servers if it does
|
||
not have the information.
|
||
(Default = recurse, abbreviation = [no]rec)
|
||
|
||
retry=number
|
||
Set the number of retries to number. When a reply to a
|
||
request is not received within a certain amount of
|
||
time (changed with set timeout), the timeout period is
|
||
doubled and the request is resent. The retry value
|
||
controls how many times a request is resent before
|
||
giving up.
|
||
(Default = 4, abbreviation = ret)
|
||
|
||
root=host
|
||
Change the name of the root server to host. This
|
||
affects the root command.
|
||
(Default = ns.nic.ddn.mil., abbreviation = ro)
|
||
|
||
timeout=number
|
||
Change the initial timeout interval for waiting for a
|
||
reply to number seconds. Each retry doubles the
|
||
timeout period.
|
||
(Default = 5 seconds, abbreviation = ti)
|
||
|
||
[no]vc
|
||
Always use a virtual circuit when sending requests to
|
||
the server.
|
||
(Default = novc, abbreviation = [no]v)
|
||
|
||
[no]ignoretc
|
||
Ignore packet truncation errors.
|
||
(Default = noignoretc, abbreviation = [no]ig)
|
||
|
||
|
||
DIAGNOSTICS
|
||
If the lookup request was not successful, an error message
|
||
is printed. Possible errors are:
|
||
|
||
Timed out 5
|
||
The server did not respond to a request after a certain
|
||
amount of time (changed with set timeout=value) and a
|
||
certain number of retries (changed with set
|
||
retry=value).
|
||
|
||
No response from server 5
|
||
No name server is running on the server machine.
|
||
|
||
No records 5
|
||
The server does not have resource records of the
|
||
current query type for the host, although the host name
|
||
is valid. The query type is specified with the set
|
||
querytype command.
|
||
|
||
Non-existent domain 5
|
||
The host or domain name does not exist.
|
||
|
||
Connection refused 5
|
||
|
||
Network is unreachable 5
|
||
The connection to the name or finger server could not
|
||
be made at the current time. This error commonly
|
||
occurs with ls and finger requests.
|
||
|
||
Server failure 5
|
||
The name server found an internal inconsistency in its
|
||
database and could not return a valid answer.
|
||
|
||
Refused 5
|
||
The name server refused to service the request.
|
||
|
||
Format error 5
|
||
The name server found that the request packet was not
|
||
in the proper format. It may indicate an error in
|
||
nslookup.
|
||
|
||
|
||
FILES
|
||
/etc/resolv.conf initial domain name and name server
|
||
addresses.
|
||
$HOME/.nslookuprc user's initial options.
|
||
/usr/share/misc/nslookup.help summary of commands.
|
||
|
||
ENVIRONMENT
|
||
HOSTALIASES file containing host aliases.
|
||
LOCALDOMAIN overrides default domain.
|
||
|
||
SEE ALSO
|
||
resolver(3), resolver(5), named(8),
|
||
RFC-1034 ``Domain Names - Concepts and Facilities''
|
||
RFC-1035 ``Domain Names - Implementation and Specification''
|
||
|
||
AUTHOR
|
||
Andrew Cherenson
|
||
|
||
# timed
|
||
TIMED (8M) MAINTENANCE COMMANDS TIMED (8M)
|
||
|
||
|
||
|
||
NAME
|
||
timed - report the current time and date to a client
|
||
|
||
SYNOPSIS
|
||
[0m[1mtimed[0m [ -dv ]
|
||
|
||
AVAILABILITY
|
||
This command is available with the TemariNET software
|
||
package.
|
||
|
||
DESCRIPTION
|
||
[0m[1mtimed[0m is a daemon server which implements the TIMEP
|
||
protocol, as described in RFC 868. This protocol can be used
|
||
to ask servers like this one for their current
|
||
time-and-day.
|
||
|
||
-d
|
||
Debug mode. This is useful for debugging purposes
|
||
only.
|
||
|
||
-v
|
||
Verbose mode. This is the same as -d.
|
||
|
||
EXAMPLE
|
||
timed &
|
||
|
||
SEE ALSO
|
||
daytimed(8m), netdate(8m)
|
||
|
||
AUTHOR
|
||
Michael Temari - temari@temari.ae.ge.com
|
||
Fred N. van Kempen - waltje@uwalt.nl.mugnet.org
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
TemariNET Software April 29, 1993 1
|
||
|
||
|
||
# demolish
|
||
DEMOLISH(8) Minix Programmer's Manual DEMOLISH(8)
|
||
|
||
NAME
|
||
demolish - take an image to pieces
|
||
|
||
SYNOPSIS
|
||
demolish image
|
||
demolish image kernel mm fs ... init
|
||
|
||
DESCRIPTION
|
||
Demolish does the opposite of installboot -image or build: It takes a
|
||
Minix kernel image apart to its components. Extracting an image made by
|
||
installboot is straightforward, as it is much like an ar(1) or tar(1)
|
||
archive. A build made image has lost a lot of information about the
|
||
original programs, so you need to specify their names.
|
||
|
||
The following restrictions/assumptions/comments are made about a build
|
||
image:
|
||
|
||
It must be a 1.5 or newer image with no special tricks.
|
||
|
||
The kernel must either be separate I&D, or it's stack must be 512
|
||
bytes exactly with no change to the beginning of the text and data
|
||
segment.
|
||
|
||
The click size is 256.
|
||
|
||
There is a minute chance that the data segment of a common I&D fs is
|
||
not properly located. This doesn't matter for the other programs.
|
||
|
||
The assumption is that this program is used to take a Minix distribution
|
||
boot floppy apart, so that the programs may be reassembled by installboot
|
||
for my boot monitor (see monitor(8)).
|
||
|
||
SEE ALSO
|
||
build(8), installboot(8), monitor(8).
|
||
|
||
BUGS
|
||
Recompile the kernel. Feels much better.
|
||
|
||
AUTHOR
|
||
Kees J. Bot, (kjb@cs.vu.nl)
|
||
|
||
# installboot
|
||
INSTALLBOOT(8) Minix Programmer's Manual INSTALLBOOT(8)
|
||
|
||
|
||
NAME
|
||
installboot - make a device bootable
|
||
|
||
SYNOPSIS
|
||
installboot -i(mage) image [label:]kernel mm fs ... init
|
||
installboot -d(evice) device bootblock boot
|
||
installboot -b(oot) device bootblock boot [label:]image ...
|
||
installboot -m(aster) [fix] device masterboot
|
||
|
||
DESCRIPTION
|
||
Installboot may be used to make a device bootable by constructing a
|
||
kernel image and installing bootstrap code into the boot block of a Minix
|
||
filesystem. To understand how this can be done one first has to know
|
||
what happens when a PC is booted.
|
||
|
||
When the power is turned on the typical PC will try to read the first
|
||
sector from the first floppy disk or from the first hard disk into memory
|
||
and execute it. The code obtained from the hard disk (from the so-called
|
||
master boot sector) will immediately replace itself by the code found in
|
||
the first sector of the active partition. Thus the PC is now executing
|
||
the bootstrap code found in the first sector of /dev/fd0, /dev/hd1,
|
||
/dev/hd2, /dev/hd3, or /dev/hd4. The bootstrap will locate the operating
|
||
system on the device it itself was loaded from, load it, and execute it,
|
||
usually in a two phase process.
|
||
|
||
To make a Minix filesystem /dev/fd0 mounted on /mnt bootable, enter the
|
||
following:
|
||
|
||
cp boot /mnt/boot
|
||
|
||
installboot -image /mnt/minix kernel mm fs init
|
||
|
||
installboot -device /dev/fd0 bootblock boot
|
||
|
||
The "boot" program in the example is named the "boot monitor". It is
|
||
loaded by the bootblock code placed in the boot sector of /dev/fd0 and it
|
||
will take care of loading the kernel image "minix" from the root
|
||
directory of the filesystem. See monitor(8) for a description of the
|
||
boot monitor.
|
||
|
||
The most important aspect of this now bootable device is that it is not
|
||
bound to type of media it is on, as the bootblock is the same for double
|
||
and high density 3.5 and 5.25 inch floppy disks and the hard disk. You
|
||
can copy it raw to /dev/hd3 for instance, put an active flag on partition
|
||
3 (see fdisk(8)) and boot it. I routinely make raw copies of my hard
|
||
disk root file system to floppies and these floppies are again bootable
|
||
without change. Combined with a stripped /usr file system on floppy, I
|
||
can always get my system back to life in case of disaster.
|
||
|
||
OPTIONS
|
||
|
||
-image
|
||
The -image option (or any prefix down to -i) combines the executable
|
||
files needed to run Minix in one file. Only the names and a few
|
||
zero bytes are inserted into the image. The name is for
|
||
identification and the zeros are used to pad separate pieces to
|
||
(1)
|
||
|
||
INSTALLBOOT(8) Minix Programmer's Manual INSTALLBOOT(8)
|
||
|
||
|
||
sector boundaries for fast loading. Each executable is normally
|
||
stripped of its symbol table, unless a -s flag is placed before it.
|
||
|
||
An executable may be prefixed with a label. The monitor may be
|
||
instructed to not load processes with the wrong label. So more than
|
||
one kernel process may be included in the image, each with a
|
||
different winchester driver for instance.
|
||
|
||
-device
|
||
Installs bootblock in the boot sector of device together with the
|
||
disk addresses to boot. These disk addresses are needed to load
|
||
boot from the file system at boot time. If the boot parameters
|
||
sector (the second half of the boot block) is found to contain
|
||
garbage, it is cleared to null commands. Again see monitor(8).
|
||
|
||
The device need not be mounted when installboot is run, nor does it
|
||
matter if it is.
|
||
|
||
Installboot needs to be run again if boot is rewritten, because it
|
||
will then occupy a new place on the disk.
|
||
|
||
-boot
|
||
This option fills a blank floppy in device with boot code and kernel
|
||
images. This "boot disk" does not have a root file system, only the
|
||
boot monitor and Minix kernels. The boot parameters sector is
|
||
filled with code that enables menu options for selecting an image.
|
||
After loading an image, the monitor will ask you to insert a root
|
||
file system diskette before starting Minix.
|
||
|
||
The labels used on the images should ideally match those on the
|
||
executables used inside the image. You can put a comma separated
|
||
list of labels on an image for each label used within the image.
|
||
|
||
If a label-list is omitted on an image, then that image will be
|
||
selected by default.
|
||
|
||
-demo
|
||
This is a special feature for creating a demo disk. It works just
|
||
like the -boot option, except that the device must contain a file
|
||
system. Use it to dress up a small root file system with boot code
|
||
and a kernel to make a single floppy Minix demo. The file system
|
||
must be small enough to allow for the monitor and images be placed
|
||
*after* it.
|
||
|
||
-master
|
||
This option installs the masterboot program into the boot sector of
|
||
the given device. If another device is given instead of masterboot
|
||
then its bootstrap code is copied to device. The master bootstrap
|
||
on a hard disk boots the active partition on that disk at boot time.
|
||
The MS-DOS fdisk command normally puts a master bootstrap on the
|
||
hard disk, but the masterboot program in this package has a lot more
|
||
features:
|
||
|
||
If the ALT key is held down while booting then '/dev/hd?'
|
||
appears and you are expected to type a number key (0 - 9) to
|
||
select the device to boot.
|
||
(2)
|
||
|
||
INSTALLBOOT(8) Minix Programmer's Manual INSTALLBOOT(8)
|
||
|
||
|
||
If a fix key is given (0 - 9) then the bootstrap is locked into
|
||
booting the given /dev/hd device. This is needed if 'boot
|
||
*hdN' is used from the monitor to boot an O.S. that needs the
|
||
active flag set.
|
||
|
||
If installed on a floppy then it will try to boot the next
|
||
floppy or the first hard disk. Ideal for floppies with just
|
||
data on it, they will no longer obstruct the boot process if
|
||
left in the drive. Also a very useful trick to boot from
|
||
floppy drive 1.
|
||
|
||
If installed on a hard disk then the active partition is
|
||
selected and booted as usual, unless none of the partitions is
|
||
marked active, then it will boot the next disk. The latter is
|
||
useful if you want to boot an operating system from the second
|
||
disk by default.
|
||
|
||
A backup copy of the current master bootstrap can be made with:
|
||
|
||
dd if=device of=backup-file bs=446 count=1
|
||
|
||
A simple 'cat backup-file > device' will put it back.
|
||
|
||
SEE ALSO
|
||
fdisk(8), monitor(8).
|
||
|
||
DIAGNOSTICS
|
||
Lot's of numbers describing executables being read, addresses patched.
|
||
|
||
Errors about missing files, nonexecutable files, etc.
|
||
|
||
A very useful warning if a segment of an i8086 executable is larger than
|
||
64K.
|
||
|
||
A warning and a ten second countdown if -boot is about to scribble over a
|
||
file system.
|
||
|
||
BUGS
|
||
It has four more options than the SunOS installboot program it is modeled
|
||
after.
|
||
|
||
The symbol table support is a misfeature, only a debugger can use it.
|
||
Time spent fiddling with debuggers is better used finding bugs.
|
||
|
||
The bootblock code has been crunched to such ugliness that you can use it
|
||
scare little kids out of your garden.
|
||
|
||
AUTHOR
|
||
Kees J. Bot (kjb@cs.vu.nl)
|
||
(3)
|
||
|
||
# monitor
|
||
MONITOR(8) Minix Programmer's Manual MONITOR(8)
|
||
|
||
NAME
|
||
monitor, edparams - load and start Minix, modify boot parameters
|
||
|
||
SYNOPSIS
|
||
edparams device [command ...]
|
||
|
||
DESCRIPTION
|
||
This text describes the boot monitor, a boot time interactive program
|
||
designed not only to load and start Minix, its most important task, but
|
||
to also provide an easy to use interface to configure Minix and to boot
|
||
other operating systems.
|
||
|
||
The monitor is controlled with an environment that is modeled after the
|
||
Bourne shell. This environment is filled at startup with default values
|
||
that depend on the machine the monitor is running on and the environment
|
||
settings saved into the boot parameters sector (the second sector on a
|
||
device). When the environment is loaded, the monitor executes the
|
||
function named main, which by default starts a simple menu.
|
||
|
||
The environment can be manipulated at boot time from the monitor prompt,
|
||
but may also be edited using edparams on a given device. Edparams
|
||
simulates the monitor as much as it can, echoing commands it can't
|
||
execute between brackets. It may be used in Makefiles or scripts too by
|
||
giving it commands as arguments.
|
||
|
||
COMMANDS
|
||
The monitor is best described by the commands you can type to the '>'
|
||
prompt. This is known as the monitor mode. You can enter this mode by
|
||
hitting the Escape key. A list of commands is shown if you type
|
||
something illegal, like 'help'. These are the commands:
|
||
|
||
name = [device] value
|
||
|
||
Set environment variable.
|
||
Changes the value of name to value. Adding the word device (or any
|
||
word starting with a 'd') marks name as being subject to device
|
||
translation. (See the section on devices.) These (name, value)
|
||
pairs are passed to the kernel who usually ignores them, unless they
|
||
are one of these special variables:
|
||
|
||
rootdev
|
||
|
||
This is the device used as your root device. It is by default
|
||
set to ram, which means that the device specified by
|
||
ramimagedev will be loaded into the RAM disk and used as root.
|
||
If you change this variable, then a physical device will be
|
||
used as root, and the RAM disk will be uninitialized and have
|
||
the size specified by ramsize.
|
||
|
||
ramimagedev
|
||
|
||
Describes the device to use to initialize the RAM disk if
|
||
rootdev is set to ram. It's by default set to bootdev, a
|
||
special name for the device the monitor booted from.
|
||
|
||
(1)
|
||
|
||
MONITOR(8) Minix Programmer's Manual MONITOR(8)
|
||
|
||
ramsize
|
||
|
||
The size of the RAM disk when it is not used as the root
|
||
device, by default 0.
|
||
|
||
keyboard
|
||
|
||
This is by default set to standard, but may be changed to
|
||
olivetti, us or dutch. The keyboard choice is translated to a
|
||
number (if not a number already) and passed to the kernel
|
||
assigned to the reserved scancode variable.
|
||
|
||
processor
|
||
|
||
Set by default to 86, 186, 286, 386 or 486, depending on the
|
||
hardware you have. You can set it to a smaller value to test
|
||
your kernel in a more limited environment.
|
||
|
||
memsize
|
||
|
||
Kilobytes of conventional memory.
|
||
|
||
emssize
|
||
|
||
Kilobytes of extended memory.
|
||
|
||
chrome
|
||
|
||
Either color or mono.
|
||
|
||
video
|
||
|
||
Describes capabilities of the VDU: mda, cga, ega, or vga.
|
||
|
||
Two variables are only used by the monitor, even though they are
|
||
passed to the kernel too:
|
||
|
||
image
|
||
|
||
The name of the file containing the kernel image, by default
|
||
minix. If it refers to a directory however, the newest file
|
||
inside that directory is chosen to be the kernel image. The
|
||
names inside that directory are best set to the Minix version
|
||
you are using, which looks good when the monitor prints the
|
||
copyright message. To add feature to feature, if you add
|
||
something like 'r29' to the version number, it will nicely tell
|
||
you that you are running your 29-th revision of the original
|
||
Minix. To sum up the rules used for pretty printing image
|
||
names:
|
||
|
||
A '/' or '_' is changed to a space.
|
||
The first letter is changed from lowercase to uppercase.
|
||
An 'r' if followed by a digit changes to ' revision '.
|
||
If no digits have been printed, '1.6' is added as the default
|
||
version.
|
||
(2)
|
||
MONITOR(8) Minix Programmer's Manual MONITOR(8)
|
||
|
||
label
|
||
|
||
If set then only processes marked with this label or without a
|
||
label are loaded from the image. Use it to select a kernel
|
||
process with a proper winchester driver for instance.
|
||
|
||
Installboot -boot will create functions to select images and labels.
|
||
These functions will set label and image and echo what you selected.
|
||
The two numbers separated by a colon used as an image name tell the
|
||
starting sector and sector count of the image on disk.
|
||
|
||
name() { ... }
|
||
|
||
Define function.
|
||
Functions may be used to bundle a set of commands, so that you can
|
||
easily boot Minix with a different set of parameters then normal.
|
||
E.g.
|
||
|
||
ram() { rootdev=ram; boot }
|
||
|
||
will allow you to run Minix with the root device on RAM for a
|
||
change, if you normally use a real device as root. The only pre-set
|
||
function is main with default value menu, which is the default
|
||
command executed by the monitor. You can use newlines after the ')'
|
||
token, the monitor will then use a '+' prompt and ask for the rest.
|
||
|
||
name(key) { ... }
|
||
|
||
Define kernel selecting function.
|
||
The menu command uses functions like these to add menu entries to
|
||
select a different kernel from a boot disk. Installboot -boot
|
||
produces these functions when the images are labeled. The label AT
|
||
would give:
|
||
|
||
AT(a) {label=AT;image=42:626;echo AT kernel selected;menu}
|
||
|
||
With the menu option:
|
||
|
||
a Select AT kernel
|
||
|
||
Typing a will then execute the AT function above.
|
||
|
||
name(key,text) { ... }
|
||
|
||
User defined menu option.
|
||
This variant may be used to make any menu entry you like:
|
||
|
||
dos(d,Boot MS-DOS) { boot hd1 }
|
||
|
||
Text may be anything, even matching parentheses.
|
||
|
||
name
|
||
|
||
Call function.
|
||
If name is a user defined function then its value is expanded and
|
||
executed in place of name. Try a recursive one like 'rec()
|
||
(3)
|
||
MONITOR(8) Minix Programmer's Manual MONITOR(8)
|
||
|
||
{rec;xx}' one day. You can see the monitor run out of space with
|
||
nice messages about using chmem(1) to increase it's heap.
|
||
|
||
boot [device]
|
||
|
||
Boot Minix or another O.S.
|
||
Without an argument, boot will load and execute the Minix image
|
||
named by the image variable. With an argument, boot loads the boot
|
||
sector of device into memory and jumps to it, starting another
|
||
operating system. You would normally use partitions on the first
|
||
hard disk for this command (hd[1-4]), using hd0 may also work
|
||
(choosing the active partition). Devices on the second hard disk
|
||
(hd[5-9]) can only be booted if the bootstrap writer did not
|
||
hardwire the disk number to disk 0. The name of device is used, not
|
||
its Minix device number, making it independent from the Minix device
|
||
name to device number mapping.
|
||
Some operating systems can only be booted from the active partition,
|
||
if you use a '*', e.g. boot *hd3, then partition 3 is first made
|
||
active. You'll then need to use installboot -master with a fix key
|
||
to forcefully boot the Minix partition at startup.
|
||
|
||
delay [msec]
|
||
|
||
Delay (500 msec default).
|
||
The first time my program worked on the hard disk I was a bit
|
||
disappointed, 10 days of work went by in less then a second. Later
|
||
I was pleased with that, because speed was one of the objectives.
|
||
But if you need some time (to hit Escape, or stare at the numbers)
|
||
you can use delay to make the monitor pause for a specified amount
|
||
of time. To specify a delay just before Minix is started, you can
|
||
set the variable delay to a number of milliseconds. Example:
|
||
|
||
main() {delay 250; delay=500; boot}
|
||
|
||
Look at this carefully, 'delay 250' means: "wait 1/4 sec now!",
|
||
while 'delay=500' means: "wait 1/2 sec after loading Minix".
|
||
|
||
If you use the word swap instead of a number, then the monitor will
|
||
wait until you have inserted a root diskette and typed RETURN.
|
||
|
||
echo word ...
|
||
|
||
Print these words.
|
||
Used to tell you that you just selected image X.
|
||
|
||
ls [directory]
|
||
|
||
List contents of directory.
|
||
Shows the names of the files in a directory. It's only use is to
|
||
list the names of the available kernels in the minix directory.
|
||
|
||
menu
|
||
|
||
Menu driven startup.
|
||
This command allows you to execute functions defined with a key. If
|
||
no menu functions have been defined then menu will use this one
|
||
(4)
|
||
MONITOR(8) Minix Programmer's Manual MONITOR(8)
|
||
|
||
hidden built-in function:
|
||
|
||
*(=,Start Minix) { boot }
|
||
|
||
Kernel selecting functions only add new options to this set, but if
|
||
you define a two argument function yourself then the above one is no
|
||
longer shown, allowing you to customize the menu completely. Your
|
||
first function definition should therefore be one that starts Minix.
|
||
|
||
save
|
||
|
||
Save environment.
|
||
This will save all the environment variables and functions with
|
||
nondefault values to the parameter sector (the second sector on the
|
||
boot device), so they are automatically set the next time you boot
|
||
the monitor.
|
||
|
||
set
|
||
|
||
Show environment.
|
||
Like the shell command of the same name, set will show you the
|
||
current values of the environment variables and functions. Default
|
||
values are shown between parentheses to distinguish them from values
|
||
that were explicitly set.
|
||
|
||
trap msec command
|
||
|
||
Schedule command.
|
||
Schedules a command to be executed after msec milliseconds. Only
|
||
the monitor mode cannot be interrupted, a scheduled trap is killed
|
||
when the prompt is printed. Example:
|
||
|
||
main() {trap 10000 boot; menu}
|
||
|
||
This gives you 10 seconds to choose a menu option before Minix is
|
||
booted.
|
||
|
||
unset name ...
|
||
|
||
Unset environment variables.
|
||
Removes the named variables and functions from the environment, and
|
||
sets special variables back to their default values. This is also
|
||
the only way to remove the "device name translation" property from a
|
||
variable.
|
||
|
||
DEVICES
|
||
The Minix kernel can't do anything with device names, so they have to be
|
||
translated to device numbers before they are passed to the kernel. This
|
||
number is found under the st_rdev field (see stat(2)) of the file on the
|
||
boot file system. The monitor will look for the device file with the
|
||
working directory set to '/dev'. If it can't find the device name then
|
||
it will translate names like 'ram', 'fd1', 'hd0', 'hd6', and 'hd2a' to
|
||
what it itself thinks the numbers should be.
|
||
|
||
(5)
|
||
MONITOR(8) Minix Programmer's Manual MONITOR(8)
|
||
|
||
The special name bootdev is translated to the name of the device booted
|
||
from, like 'fd0', or 'hd3', and then searched for in /dev.
|
||
|
||
EXTENSIONS
|
||
A few extensions have been made to this program for kernel hackers. They
|
||
may be triggered by setting bits in the (normally 0) word used for the
|
||
kernel DS value in kernel/mpx.x. The flag bits are:
|
||
|
||
0x0001 Call kernel in 386 mode.
|
||
|
||
The monitor will make the switch to 386 protected mode before it
|
||
calls the kernel. This requires changes to the early startup phase
|
||
of the kernel. The advantages are that variables used at startup
|
||
need not be within the first 64K, no need for a 8086 cross compiler
|
||
to compile the few files that need to be in 16 bit mode, nor a
|
||
loader that can combine 8086 and 80386 code.
|
||
|
||
0x0002 Do not make space for bss.
|
||
|
||
The 386 virtual memory kernel can claim the bss pages for each
|
||
process other than itself, the monitor need not do that. This
|
||
allows for a much larger bss area then the monitor can make in that
|
||
puny 640Kb. The size of the bss area in clicks is added to the two
|
||
word table of process sizes in the kernel data segment to make it a
|
||
three word table.
|
||
|
||
0x0004 Use the stack size set by chmem(1).
|
||
|
||
This flag tells the monitor that it needs to make space for a stack
|
||
as set by the chmem(1) command, because the processes are not using
|
||
fixed sized arrays for the stack. If the 0x0002 bit is set, then
|
||
the size of the stack in clicks is simply provided in a fourth word
|
||
in the kernel data segment.
|
||
|
||
0x0008 Obsolete.
|
||
|
||
This flag used to ask for the size of the symbol table, but the
|
||
monitor no longer supports the misfeature of loading symbol tables
|
||
into memory.
|
||
|
||
0x0010 No need to patch anything.
|
||
|
||
The monitor places an array of the 32 byte a.out headers of the
|
||
processes at address 0x00600. Setting this flag means that the
|
||
kernel is using them instead of the sizes array, so the monitor need
|
||
not patch anything.
|
||
|
||
Do not think that all of this means that this package is geared towards
|
||
386 Minix. All these extensions are just a few simple extra features.
|
||
(Having first used Minix on an XT with just two 360kb floppy drives makes
|
||
one not forget the low end.)
|
||
|
||
(6)
|
||
|
||
MONITOR(8) Minix Programmer's Manual MONITOR(8)
|
||
|
||
SEE ALSO
|
||
chmem(1), stat(2), installboot(8).
|
||
|
||
DIAGNOSTICS
|
||
Many self-explanatory messages about files not being found, bad images,
|
||
disk read errors, lack of memory, etc.
|
||
|
||
ACKNOWLEDGMENTS
|
||
Guy Helmer, for the floppy sensing code that somehow disappeared into the
|
||
boot block.
|
||
|
||
Earl Chew, for the inspiration his shoelace package provided, unless he
|
||
wants to file a 'look and feel' suit against me, then I will say I
|
||
modeled it after the SunOS ROM boot monitor, which is also true.
|
||
|
||
BUGS
|
||
The delay command will hang forever on the original IBM PC (not the XT!).
|
||
Not that it matters, as everything takes forever on that box.
|
||
|
||
Reading the first sector to boot a floppy (e.g. boot fd1), is done using
|
||
whatever floppy parameters boot currently has available. This will
|
||
probably always work.
|
||
|
||
The two forms of delay are a crock.
|
||
|
||
The word emssize comes from EMS, that has to do with expanded memory, not
|
||
extended memory. I didn't know the difference.
|
||
|
||
AUTHOR
|
||
Kees J. Bot (kjb@cs.vu.nl)
|
||
|
||
(7)
|