   
   
   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

   
