INSTALL.TXT
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:39k
源码类别:

操作系统开发

开发平台:

C/C++

  1.    
  2.    
  3.    USAGE(8)             Maintenance Procedures              USAGE(8)
  4.    
  5.    
  6.    
  7.    NAME
  8.         usage - installing and using MINIX
  9.    
  10.    DESCRIPTION
  11.         This manual page describes the installation and use of MINIX
  12.         from  a System Administrators point of view.  It contains an
  13.         installation guide, instructions on how to  do  the  initial
  14.         configuration  and  some other info.  Please read this docu-
  15.         ment entirely before attempting to install MINIX.  The  ins-
  16.         tallation  steps  are  in  the proper order, but not all the
  17.         information you may need is presented at the  right  moment.
  18.         Other  detailed  information that may be useful can be found
  19.         in boot(8) and hier(7).
  20.    
  21.      1. REQUIREMENTS
  22.         The minimum system MINIX can be installed on comfortably  is
  23.         an  IBM PC/AT or PS/2 with a 286 processor, 640 KB memory, a
  24.         720 kb diskette drive, and 25-30 MB free  space  on  an  AT,
  25.         ESDI, or SCSI hard disk (the latter controlled by an Adaptec
  26.         1540.)  MINIX for the  386  (MINIX-386  for  short)  can  be
  27.         installed on a machine with at least a 386sx processor, 3 MB
  28.         memory and at least 25-30 MB of disk space.
  29.    
  30.      2. MINIX INSTALLATION BACKGROUND
  31.         The objective of the installation is to create  a  partition
  32.         on  your  disk  and  to  put  MINIX  into  it.  MINIX really
  33.         requires two partitions however,  so  the  single  "primary"
  34.         partition  is split into two subpartitions.  The a subparti-
  35.         tion will contain the root file system, and the c  subparti-
  36.         tion  will  contain the /usr file system.  What MS-DOS calls
  37.         "drives", i.e C:, D:, E:, MINIX calls "file systems".  MINIX
  38.         does  not use drive letters, but requires that one file sys-
  39.         tem is made a part of another file system by "mounting"  one
  40.         on  the other.  The "root" file system is always present and
  41.         starts with the directory "/", the  root  of  the  directory
  42.         tree.  The root file system contains a few programs in /bin,
  43.         device files in /dev, and configuration files in /etc.  This
  44.         is  just  enough to get the system started.  MINIX will soon
  45.         extend its directory tree by mounting a file system  on  the
  46.         /usr  directory.   What is henceforth known as the /usr file
  47.         system contains all MINIX programs in /usr/bin, file  system
  48.         sources  in /usr/src, etc, etc.  The ROOT image contains the
  49.         complete MINIX root file system, but  USR  contains  just  a
  50.         small subset of the /usr file system, with just enough util-
  51.         ities to install MINIX.  The complete /usr  file  system  is
  52.         split up into the USR.TAZ, SYS.TAZ and CMD.TAZ archives that
  53.         are installed later to fill /usr.
  54.    
  55.         Let's suppose your first hard disk, which  has  device  name
  56.         /dev/hd0,  has  MS-DOS  already present in the first primary
  57.         partition (/dev/hd1), and some free space left  after  that.
  58.         After  MINIX  is  installed in that free space the disk will
  59.    
  60.    
  61.    
  62.                                      1
  63.    
  64.    USAGE(8)             Maintenance Procedures              USAGE(8)
  65.    
  66.    
  67.    
  68.         look like this:
  69.    
  70.             /dev/hd0    Whole hard disk #0
  71.               /dev/hd1    MS-DOS C: drive
  72.               /dev/hd2    MINIX primary partition
  73.                 /dev/hd2a   MINIX root partition
  74.                 /dev/hd2c   MINIX /usr partition
  75.    
  76.         /dev/hd0 is the sum  of  a  partition  table,  /dev/hd1  and
  77.         /dev/hd2.   Likewise  is  /dev/hd2 the sum of a subpartition
  78.         table, /dev/hd2a and /dev/hd2c.  Read the "DEVICES" sections
  79.         for more information on MINIX devices.
  80.    
  81.      3. INSTALLATION
  82.         If you have not already copied MINIX to floppy disks, please
  83.         read  the  README.TXT  file  in the MINIX directory now.  It
  84.         tells how to do this.  You should also print out EXAMPLE.TXT
  85.         and  read it in parallel with this document.  This one tells
  86.         you what to do; that one shows you what the screen  is  sup-
  87.         posed  to  look  like at each step, so you can see if every-
  88.         thing is OK.
  89.    
  90.         You can install MINIX automatically or manually as described
  91.         the  sections below.  The end result is the same, but manual
  92.         installation allows one to deviate  from  the  preconfigured
  93.         choices.   You may wish to read the manual pages of the pro-
  94.         grams used below before you start.  You may especially  want
  95.         to  read  boot(8) if your machine is different from what the
  96.         majority buys, because you may need to set a few boot param-
  97.         eters  to  configure drivers.  To do this type ESC to get to
  98.         the Boot Monitor prompt, set the appropriate variables,  use
  99.         save  to  store  the settings and menu to continue where you
  100.         left off.
  101.    
  102.         To install the system you need  two  diskettes:  a  bootable
  103.         root  diskette  and  a  diskette  full of binaries to use as
  104.         /usr.  These diskettes are named ROOT and  USR.   These  two
  105.         diskettes  may  also  be  combined  on a single high density
  106.         diskette.  In that case the USR part is on the c partition.
  107.    
  108.         Insert the ROOT diskette, boot the machine and type  '='  to
  109.         the menu.  The MINIX kernel is loaded and takes control when
  110.         you see  the  copyright  banner.   After  loading  the  root
  111.         diskette  into  the RAM disk you will be asked to finish the
  112.         name of the device to  mount  on  /usr.   Type  fd0c  for  a
  113.         diskette  that contains both ROOT and USR, otherwise replace
  114.         ROOT by USR and type fd0.  Login as root.
  115.    
  116.      4. AUTOMATIC INSTALLATION
  117.         Before starting the installation, you  must  either  have  a
  118.         free  partition  available  or have at least 25-30 MB not in
  119.         any  partition  so  you  can  create  a   MINIX   partition.
  120.    
  121.                                      2
  122.    
  123.    USAGE(8)             Maintenance Procedures              USAGE(8)
  124.    
  125.    
  126.    
  127.         Splitting an MS-DOS partition can be done using fips, and is
  128.         discussed in the main README.TXT file.
  129.    
  130.         Type setup to  start  the  installation  script.   First  it
  131.         offers to install a national keyboard map.  The names should
  132.         be clear, except for us-swap, which swaps the CTRL and  CAPS
  133.         LOCK  keys  of  a  standard US style keyboard for people who
  134.         believe that the natural place of CTRL is next  to  A.   The
  135.         default  suggested  between  [ and ] is the US standard key-
  136.         board.
  137.    
  138.         The next thing to do is to make a partition,  for  this  you
  139.         are  placed  in  a  partition table editor named part.  This
  140.         partition table editor is very easy to use (in the  author's
  141.         opinion),  but  you will probably hate it.  You can move all
  142.         over the place with the arrow keys, change values, and  make
  143.         a  mess  of  your partition table real quick.  So if you get
  144.         into trouble, type 'q' to quit, 'n' to not write the  table,
  145.         and RETURN to start over.  Use the '?' key to get help.
  146.    
  147.         With the '+' and '-' keys you can select the disk device  to
  148.         install  on,  probably  /dev/hd0, the first hard disk.  Type
  149.         'r' to load  the  partition  table  of  the  selected  disk.
  150.         Either  create  one  new  partition by modifying a partition
  151.         marked "None", or reuse an existing  partition  by  changing
  152.         its  type to "MINIX" (hex code 81).  The FIPS program can be
  153.         used under MS-DOS  to  shrink  an  MS-DOS  partition.   FIPS
  154.         splits the MS-DOS partition in two, so one of the two can be
  155.         used for MINIX.  You have to be absolutely sure  which  one.
  156.         When  in  doubt, first use the FDISK program under MS-DOS to
  157.         delete the extra partition, and let MINIX part create a  new
  158.         one.   DO  NOT  use  part  to  shrink an existing partition!
  159.         MINIX needs a partition of at least 25-30 MB, but not larger
  160.         than  128  MB  (MINIX-86)  or  1 GB (MINIX-386).  The system
  161.         needs 30 MB in compiled state.
  162.    
  163.         The script then wants to know  the  name  of  the  partition
  164.         you've  created,  this name is probably still visible on the
  165.         screen (hd2, hd6, something like that.)  The  new  partition
  166.         table  is  reloaded  into the disk driver, and the new MINIX
  167.         partition is carved up into two  subpartitions,  a  1440  kb
  168.         root and the rest for /usr.
  169.    
  170.         After making /usr, it is immediately put to use  to  replace
  171.         the installation /usr file system so that you can remove the
  172.         USR diskette and insert the ROOT diskette (unless  they  are
  173.         one  and the same).  The root file system is filled with the
  174.         contents of the ROOT diskette and  slightly  patched  up  to
  175.         work on the hard disk (/etc/fstab.)
  176.    
  177.         To compute the size of the  so-called  "second  level  block
  178.         cache"  you  are  asked  to  specify  the  RAM  size of your
  179.    
  180.    
  181.    
  182.                                       3
  183.    
  184.    USAGE(8)             Maintenance Procedures              USAGE(8)
  185.    
  186.    
  187.    
  188.         machine.  If you have plenty, i.e 4 MB or more  then  simply
  189.         hit  RETURN,  otherwise enter the size of your system RAM in
  190.         kilobytes.
  191.    
  192.         You can now skip the next section and move to "TESTING", but
  193.         it may be instructive to read it anyway.
  194.    
  195.      5. MANUAL INSTALLATION
  196.         The instructions that follow are at a  very  low  level  and
  197.         require  you  to be very careful.  The big advantage is that
  198.         you know precisely what tools have been used and how  every-
  199.         thing works.  The disadvantage is that you may easily make a
  200.         mistake that either forces you to  start  over  if  you  are
  201.         lucky,  or  wipes  out the contents of your hard disk if you
  202.         are not.  Only if you really want to do something  different
  203.         should  you  use a manual installation.  Slavishly following
  204.         the steps shown below will only make you  end  up  with  the
  205.         same result as an automatic installation.
  206.    
  207.         Run part to make partitions to load the  system  into.   The
  208.         best  thing  to do is to make one large primary partition of
  209.         type "MINIX" and to carve this partition up into three  sub-
  210.         partitions  for  root  and /usr.  The assumption is that you
  211.         will use the  second  partition  on  the  first  hard  disk,
  212.         /dev/hd2, and that hd2a is the root subpartition and hd2c is
  213.         /usr.  If you want to use the first partition on the  second
  214.         hard  disk for instance, then substitute hd6 and hd6[ac] for
  215.         the above.  On a SCSI disk  it  will  be  /dev/sd2  for  the
  216.         second  partition  on the disk at target 0.  See the section
  217.         on devices below, and the manual pages  of  part(8),  hd(4),
  218.         and sd(4).  Start part and select the whole hard disk device
  219.         (the "multiple of 5" device) that you want to install  MINIX
  220.         onto.  In our example it will be /dev/hd0.
  221.    
  222.         Use part to make a single partition in the primary partition
  223.         table of type "MINIX", then hit '>' on this new partition to
  224.         make a subpartition table.
  225.    
  226.         For the root subpartition you are advised  to  use  1440  kb
  227.         exactly.   You  can make it larger if you want to, but it is
  228.         advisable never to let the contents outgrow a floppy.   (The
  229.         ROOT  diskette  is a copy of a root file system, and will be
  230.         used to fill your root subpartition.)
  231.    
  232.         The second subpartition is either empty or a "scratch"  par-
  233.         tition.   MINIX  no  longer uses the b subpartition for any-
  234.         thing useful anymore, but it has become  customary  to  have
  235.         root  on a and /usr on c.  (You are free to ignore this con-
  236.         vention, of course.)
  237.    
  238.         Use the rest of the partition for the /usr c subpartition.
  239.    
  240.    
  241.    
  242.    
  243.                                    4
  244.    
  245.    
  246.    USAGE(8)             Maintenance Procedures              USAGE(8)
  247.    
  248.    
  249.    
  250.         When you are done check that  /dev/hd2a  is  active  (the  *
  251.         after the partition number) so you can boot from it later.
  252.    
  253.         If your disk has bad blocks  then  don't  put  the  root  or
  254.         scratch  subpartition  on  top of them.  Make sure the inode
  255.         tables in the other partitions don't have bad blocks either.
  256.         You  can  put  the subpartitions out of order on the disk if
  257.         that helps.  Subpartition tables, other than the main parti-
  258.         tion table, are not sorted by the driver.
  259.    
  260.         After making the partitions you do not have to reboot.   The
  261.         disk  driver reloads the partition tables on the next access
  262.         if the disk is not in use.  (Open or mounted.)
  263.    
  264.         To be able to boot from /dev/hd2a you must  place  a  master
  265.         bootstrap  in /dev/hd2.  It has been placed there by part if
  266.         it told you that it was creating a new partition table, but
  267.    
  268.              installboot -m /dev/hd2 /usr/mdec/masterboot
  269.    
  270.         will put it there for sure.
  271.    
  272.         You will start by making a file system for /usr and  filling
  273.         it  partially.   This  may  seem to be out of order, but you
  274.         can't insert the ROOT floppy right now.
  275.    
  276.              mkfs /dev/hd2c
  277.              readall -b /dev/hd2c | sh
  278.              mount /dev/hd2c /mnt
  279.              cpdir -v /usr /mnt
  280.    
  281.         This will create a file system on  /dev/hd2c,  mount  it  on
  282.         /mnt,  and copy the contents of the USR floppy onto it.  The
  283.         call to readall marks bad blocks on the file system as unus-
  284.         able, you can omit this on a drive known to be spotless (IDE
  285.         or SCSI.)
  286.    
  287.         You can now use the new /usr in place of the USR floppy:
  288.    
  289.              umount /dev/hd2c
  290.              umount /dev/fd0     # fd0c if combined
  291.              mount /dev/hd2c /usr
  292.    
  293.         This little dance has freed up your floppy drive, so  please
  294.         remove the USR diskette and replace it by the ROOT diskette.
  295.         Make a file system for the root with  at  least  512  inodes
  296.         (files), and fill it from the floppy:
  297.    
  298.              mkfs -i 512 /dev/hd2a
  299.              mount /dev/fd0 /fd0
  300.              mount /dev/hd2a /mnt
  301.              cpdir -v /fd0 /mnt
  302.    
  303.    
  304.                                    5
  305.    
  306.    USAGE(8)             Maintenance Procedures              USAGE(8)
  307.    
  308.    
  309.    
  310.              umount /dev/fd0
  311.    
  312.         Remove /mnt/etc/issue to get rid of the "use setup"  message
  313.         that   greets   you   when  you  boot,  and  edit  the  file
  314.         /mnt/etc/fstab to name the devices MINIX has been  installed
  315.         on.  In our example it should look like this:
  316.    
  317.              root=/dev/hd2a
  318.              usr=/dev/hd2c
  319.    
  320.         Unmount the new root:
  321.    
  322.              umount /dev/hd2a
  323.    
  324.         Make it bootable:
  325.    
  326.              installboot -d /dev/hd2a /usr/mdec/bootblock boot
  327.    
  328.         The automatic script would now  set  the  rootdev  and  ram-
  329.         imagedev  boot  variables.   You  can  do this now using the
  330.         edparams command, but it is easier to postpone it until  the
  331.         testing phase.  The settings should be:
  332.    
  333.              rootdev=hd2a
  334.              ramimagedev=hd2a
  335.    
  336.      6. TESTING
  337.         By now a new MINIX system is  present  on  your  hard  disk.
  338.         Time  to  see  if  it works.  Leave the ROOT diskette in the
  339.         drive and type halt.  You are now going to use the power  of
  340.         the Boot Monitor on the diskette to boot the MINIX partition
  341.         on the hard disk.  Use the monitor command boot hd2 to  boot
  342.         the  primary  partition MINIX has been installed in.  (It is
  343.         "hd2" in our example.)  For a SCSI disk you will have to use
  344.         a  'hd'  name  too.   The monitor uses the BIOS, so you will
  345.         have to treat it as a "normal" disk at this point.
  346.    
  347.         The hard disk bootstrap is now showing the menu again.   You
  348.         can type '=' to start MINIX, but you probably want to change
  349.         the boot parameters.  Hit ESC once more to get to  the  com-
  350.         mand prompt.  The command set shows what the current parame-
  351.         ters are.  Here is an example that shows how to make a  menu
  352.         to either start MINIX or boot MS-DOS:
  353.    
  354.              minix(=,MINIX) {boot}
  355.              dos(d,MS-DOS) {boot hd1}
  356.              save
  357.    
  358.         MS-DOS is assumed to be in the first partition in the  exam-
  359.         ple above (hd1).  When finished type menu to see if the menu
  360.         looks right. If so hit '=' to start MINIX. Log in as root.
  361.    
  362.    
  363.    
  364.    
  365.                                     6
  366.    
  367.    USAGE(8)             Maintenance Procedures              USAGE(8)
  368.    
  369.    
  370.    
  371.      7. ADDING PROGRAMS AND SOURCES TO /usr
  372.         The setup command can also be used to add files from  floppy
  373.         sets  to  the  system.   The  USR.TAZ  (programs and stuff),
  374.         SYS.TAZ (system sources), and CMD.TAZ (commands sources) are
  375.         all installed relative to the /usr directory, so the command
  376.         to use three times is
  377.    
  378.              setup /usr
  379.    
  380.         Setup will ask for the size of data on the  floppies,  which
  381.         is  by  default simply the entire floppy.  You will see some
  382.         "Cannot make directory" errors  while  extracting,  as  some
  383.         directories already exist.  Ignore these messages.  You need
  384.         the USR.TAZ set if you want a working MINIX system,  SYS.TAZ
  385.         if you want recompile the system or study it, and CMD.TAZ if
  386.         you also want the sources of the commands.  On a disk  space
  387.         starved  machine  you  could  opt to do without the commands
  388.         sources, as they are not absolutely necessary to  understand
  389.         MINIX.
  390.    
  391.         If  your  machine  does  not  have  enough  memory  to   run
  392.         setup /usr then type these commands manually:
  393.    
  394.              cd /usr
  395.              vol /dev/fd0 | uncompress | tar xvfp -
  396.    
  397.      8. NAMES
  398.         A standalone machine will have to be given a name.  As  root
  399.         type
  400.    
  401.              echo name >/etc/hostname.file
  402.    
  403.         to change the host name of your machine to name.
  404.    
  405.      9. ACTIVE ON BOOT
  406.         You may want to make the MINIX partition active so  that  it
  407.         is  automatically  booted.  With MS-DOS fdisk or MINIX part,
  408.         mark the  primary  partition  that  contains  MINIX  active.
  409.         Using the menu you made earlier you can boot either MINIX or
  410.         MS-DOS at a keypress.  You can even set timeouts.   To  boot
  411.         MINIX automatically after 5 seconds:
  412.    
  413.              main() {trap 5000 minix; menu}
  414.    
  415.         See monitor(8) for all the details on the monitor.
  416.    
  417.         If you don't trust this then you can rig up a diskette  that
  418.         boots the MINIX partition when left in the drive:
  419.    
  420.              installboot -m 2 /dev/fd0 /usr/mdec/masterboot
  421.    
  422.    
  423.    
  424.    
  425.    
  426.                                      7
  427.    
  428.    USAGE(8)             Maintenance Procedures              USAGE(8)
  429.    
  430.    
  431.    
  432.         The number 2 indicates the hard disk partition that must  be
  433.         booted, you can use the numbers 1 to 9 for hd1 to hd9.
  434.    
  435.      10. DEVICES
  436.         A crash course on the MINIX devices in /dev:  The  two  hard
  437.         disks  are named hd0 and hd5.  These "multiple of five" dev-
  438.         ices address the entire hard disk, from  the  first  to  the
  439.         last  byte.   Each disk has four partitions, for disk 0 they
  440.         are hd1, hd2, hd3, and hd4.  And for disk 1 they  are  named
  441.         hd6,  hd7,  hd8, and hd9.  These partitions may contain file
  442.         systems, hd1 often contains the  MS-DOS  "C:"  file  system.
  443.         MINIX can use these partitions for file systems too, but you
  444.         can also partition one of these  "primary  partitions"  into
  445.         four  so-called  "subpartitions".   The subpartitions of hd1
  446.         are named hd1a, hd1b, hd1c, and hd1d.  The other  partitions
  447.         may  have  four subpartitions that are named in the same way
  448.         by adding a letter from a to d.  So one disk may  have  four
  449.         partitions,  and  16  subpartititions total.  SCSI disks are
  450.         named in the same way, from sd0 to sd39d  for  all  possible
  451.         devices  for  all  eight SCSI targets.  The two floppy disks
  452.         are fd0 and fd1.  Each may have four partitions named  fd0a,
  453.         fd0b, ...  fd1d.  The command MAKEDEV knows how to make dev-
  454.         ices, and DESCRIBE can tell you what an unknown  device  may
  455.         be,  or  even  what  all  devices  in  /dev may be if called
  456.         without arguments.  Devices are described fully  in  dev(4),
  457.         and  in  the  device  specific  manual  pages like fd(4) and
  458.         hd(4).
  459.    
  460.      11. EDITORS
  461.         The editors available are elvis (a vi clone), elle (a simple
  462.         emacs clone), and the old MINIX mined editor.  Of these edi-
  463.         tors only elvis can recover your file after a system  crash.
  464.         Only mined is available at installation time.  (All you need
  465.         to know about mined right now is that CTRL-X gets you out of
  466.         it.)
  467.    
  468.      12. INSTALLING ON A SCSI DISK
  469.         Using a disk other than an (IDE) hd disk complicates  things
  470.         a  bit.   The  Boot  Monitor  uses the BIOS, so it names all
  471.         disks with hd names.  So it is boot hd1 to boot partition 1,
  472.         and  ramimagedev=sd2a  to tell MINIX its root partition.  If
  473.         you have both a normal and a SCSI disk then the disks may be
  474.         hd0 and hd5 to the Monitor, and hd0 and sd0 to MINIX.
  475.    
  476.      13. NATIONAL KEYBOARDS
  477.         The directory /usr/lib/keymaps contains  keymap  tables  for
  478.         several  national  keyboards.  If you have a German keyboard
  479.         for instance, then
  480.    
  481.              loadkeys /usr/lib/keymaps/german.map
  482.    
  483.    
  484.    
  485.    
  486.                                      8
  487.    
  488.    USAGE(8)             Maintenance Procedures              USAGE(8)
  489.    
  490.    
  491.    
  492.         will load the German key translation table into the keyboard
  493.         driver.  Copy the map to /etc/keymap once MINIX is installed
  494.         on the hard disk, because having to type a key sequence like
  495.         one of these:
  496.    
  497.              loadkezs -usr-lib-kezmaps-german.map
  498.              loqdkeys =usr=lib=key,qps=french.,qp
  499.    
  500.         on a reboot gets a bit annoying after a while.  Send correc-
  501.         tions  and  new  keymaps to the person named below.  (Do not
  502.         send a Dutch keymap, buy yourself a real keyboard instead.)
  503.    
  504.    SUGGESTIONS
  505.         Below are a few useful suggestions.  Some of the information
  506.         can be of use in other situations than described here.
  507.    
  508.      14. VIRTUAL CONSOLES
  509.         Hold down the ALT key and press the left or right arrow key,
  510.         F1, or F2.  This switches the console between two login ses-
  511.         sions.  (Unless you have an old mono adapter,  because  vir-
  512.         tual  consoles  sit in video memory, and a mono adapter only
  513.         has memory for one.)
  514.    
  515.         Note that kernel messages, including  function  key  output,
  516.         only  appear  on  the first console.  This may be confusing,
  517.         but it keeps the other consoles clean.
  518.    
  519.      15. LOW ON MEMORY
  520.         The normal installation requires that you have enough memory
  521.         for  a large RAM disk.  You can still install MINIX normally
  522.         if you either have a high density diskette drive for a  com-
  523.         bined  root+usr  floppy, or you have two floppy drives of at
  524.         least 720 kb.  Before booting you have to set  the  variable
  525.         rootdev  to  the  same value as ramimagedev.  This is slower
  526.         then a RAM disk, but saves a lot of memory.
  527.    
  528.         The automatic installation script knows how to  handle  this
  529.         new situation.  If you install manually then you have to use
  530.    
  531.              cpdir -vx / /mnt
  532.    
  533.         to copy the root device to disk.  When it is  time  to  fill
  534.         /usr  and you only have one floppy drive then hit DEL to get
  535.         out of the installation script and reboot  as  described  in
  536.         "TESTING".   You  can then finish the installation manually.
  537.         See the XT640K.TXT file for more advice on small machines.
  538.    
  539.      16. LOW ON MEMORY AND ONLY ONE 720 KB FLOPPY DRIVE
  540.         If you only have one 720 kb floppy drive and your system  is
  541.         low  on  memory  then  you  can use the TINYROOT boot image.
  542.         This image contains a small kernel with only the  BIOS  disk
  543.         driver, and a small root file system.  You can use this disk
  544.    
  545.    
  546.                                     9
  547.    
  548.    USAGE(8)             Maintenance Procedures              USAGE(8)
  549.    
  550.    
  551.    
  552.         to boot your machine.  Use the normal ROOT  to  install  the
  553.         root  file  system.  Keep booting your machine with TINYROOT
  554.         until you have compiled a small kernel for your system.  Use
  555.         the  rootdev boot variable to select the hard disk root file
  556.         system.  Do not use TINYROOT for anything other  than  boot-
  557.         ing, always use ROOT when mentioned.
  558.    
  559.      17. FLOPPY DRIVE 1 IS A HIGH DENSITY DRIVE
  560.         If you would like to install from floppy drive  1  then  you
  561.         need  to  copy at least one sector from the USR image onto a
  562.         diskette for drive 0.  The USR bootstrap has been rigged  to
  563.         boot the other drive.
  564.    
  565.      18. INSTALLING ON A SECOND HARD DISK
  566.         MINIX doesn't care if it is installed on the second disk  of
  567.         a  system  with  two  disks.   The only problem is to get it
  568.         booted.  You can either rig up a diskette to boot  MINIX  as
  569.         shown  earlier,  or  you can use the same trick on the first
  570.         disk.  The command
  571.    
  572.              installboot -m 5 /dev/hd0 /usr/mdec/masterboot
  573.    
  574.         will lock the first disk into booting the second disk.  Note
  575.         that  this  command modifies the disk outside a MINIX parti-
  576.         tion, overwriting a bit of code that  has  likely  been  put
  577.         there  by  MS-DOS fdisk.  First verify that the Boot Monitor
  578.         can boot an MS-DOS partition, because then the MINIX  master
  579.         bootstrap can do it too.
  580.    
  581.      19. LOTS OF MEMORY ON A 286
  582.         You will have a hard time making MINIX use up 3  MB  memory.
  583.         Memory  you  can spare can be used for a "second level block
  584.         cache" on the RAM disk.  The File  System  uses  the  second
  585.         level  cache  to store copies of disk blocks that are pushed
  586.         out of the normal (primary) block cache.  The  size  of  the
  587.         primary  cache  is compiled into the FS server, but the size
  588.         of the second level cache can be set with the  ramsize  boot
  589.         variable.   Set it to a number between 0 and 512.  512 kilo-
  590.         bytes is enough to keep most of the  compiler  cached.   You
  591.         must have extended memory; expanded memory is not supported.
  592.    
  593.      20. LOTS OF MEMORY ON A 386+
  594.         Processes can be as big as you would like on a 386,  but  in
  595.         practice 4 MB is plenty for all your processes.  The instal-
  596.         lation script sets up a second level cache for MINIX-386  of
  597.         up to 1024 kilobytes.  This is because the default file sys-
  598.         tem cache is only 80 kb.  Your first point of call is to get
  599.         rid  of  the poorly performing second level cache by setting
  600.         ENABLE_CACHE2 to 0 and to assign the memory used  by  it  to
  601.         the  normal block cache by enlarging the appropriate NR_BUFS
  602.         and NR_BUF_HASH constants in <minix/config.h> with  as  much
  603.         as  you can spare.  (1024 for NR_BUFS is the minimum to keep
  604.    
  605.    
  606.    
  607.                                     10
  608.    
  609.    USAGE(8)             Maintenance Procedures              USAGE(8)
  610.    
  611.    
  612.    
  613.         cc -c cached.  2048 is then a nice value  for  NR_BUF_HASH.)
  614.         Disable the second level cache, compile a new kernel, reboot
  615.         and set ramsize to 0.
  616.    
  617.      21. LOTS OF DISK SPACE
  618.         The maximum file system size is 1 GB for MINIX-386  and  128
  619.         MB  for MINIX-86.  (MINIX-86 can handle larger file systems,
  620.         but fsck can't check them.)  Note that a MINIX  file  system
  621.         can  only  contain 65535 inodes (files), so the average file
  622.         should be 16 kb to completely fill it.  It may be better  to
  623.         make  two smaller file systems.  Besides, fsck takes forever
  624.         on a large file system.
  625.    
  626.    SYSTEM ADMINISTRATION
  627.         The system has been set up with the  idea  that  working  as
  628.         root  is  a bad thing to do.  As root you are in no way pro-
  629.         tected from doing stupid things.  So don't do development as
  630.         root,  but  work  as  bin!  Only in exceptional cases do you
  631.         want to become root.  Being root is fun for wannabe hackers;
  632.         administrators know better.
  633.    
  634.         To make life easier  for  bin,  some  programs  like  su(1),
  635.         install(1)  and  shutdown(8)  treat bin and other members of
  636.         the operator group as special and allow them the  privileges
  637.         of  root.   (One  is an operator if one's group id is zero.)
  638.         Operators should share the shadow password of root by having
  639.         ##root  in their password field.  This way they all have one
  640.         face (password) to the outside  world,  forming  no  greater
  641.         security risk than root alone.
  642.    
  643.         The home directory of bin contains one  important  Makefile.
  644.         You  can  use it to recompile all the commands and libraries
  645.         of the system.  Type make to see the usage message.  If  you
  646.         want  to  compile  just one command then you can simply type
  647.         make to do so.  To put it in its proper place  you  have  to
  648.         type  make  install.  Read the Makefiles in the commands and
  649.         lib subdirectories  to  understand  how  everything  is  put
  650.         together.   If you are tight on memory then make may fail to
  651.         traverse down the source tree and also compile things.   You
  652.         will  have  to  type make in each subdirectory.  You can run
  653.         make in /usr/src at the end to see if  you've  missed  some-
  654.         thing or not.
  655.    
  656.         The login shell of bin is ash, the BSD shell.  It  has  been
  657.         modified  to offer simple line editing using the editline(3)
  658.         library.  Ash is rather big, so you may have to change bin's
  659.         shell back to /bin/sh with chsh(1) if you are low on memory.
  660.         Do not change root's  shell  to  ash,  and  do  not  replace
  661.         /bin/sh  by  ash.   It  may  run  out of memory at the wrong
  662.         moment.
  663.    
  664.    
  665.    
  666.    
  667.    
  668.                                   11
  669.    
  670.    USAGE(8)             Maintenance Procedures              USAGE(8)
  671.    
  672.    
  673.    
  674.         The kernel is not compiled from  the  master  Makefile.   To
  675.         make a new kernel you have to step into the tools directory.
  676.         There you can run four different make commands:
  677.    
  678.         make This makes all the different kernel parts and  combines
  679.              them in the file named image.
  680.    
  681.         make fdboot
  682.              As above and then makes a boot floppy that you can  use
  683.              to  restart your system with.  You are prompted for the
  684.              floppy device name.
  685.    
  686.         make hdboot
  687.              First makes the image file and then copies it into  the
  688.              directory  /minix.   If there are already two images in
  689.              that directory then the newest image will be removed to
  690.              make  space  for  this newer image.  It is assumed that
  691.              the oldest image is the most stable system  image,  one
  692.              that always works, and that the newest image is experi-
  693.              mental.  Check beforehand what /minix  contains  before
  694.              you  run  make  hdboot.  Remove the oldest image if you
  695.              want another image to become  the  stable  image.   The
  696.              Boot  Monitor  chooses  the  newest  image in /minix to
  697.              boot.  You can use the monitor command ls minix to view
  698.              the  images  present, and set the image variable to the
  699.              full name of the image you want to use instead  if  the
  700.              newest  doesn't  work.   The images in /minix are named
  701.              using the MINIX release and  version  numbers  with  an
  702.              extra revision number added to distinguish the images.
  703.    
  704.         The first new kernel you would like to make is  one  config-
  705.         ured  for  your system.  The kernel you are running now con-
  706.         tains several hard disk drivers you don't need, and it  does
  707.         not  have  a  TCP/IP  server  that you may want to have.  In
  708.         <minix/config.h> you can find a number of  ENABLE_XXX  vari-
  709.         ables  that  can  be  set to 0 to exclude, or 1 to include a
  710.         particular  driver.   Another  driver  related  variable  is
  711.         DMA_SECTORS.   This  variable sets the size of a buffer used
  712.         by DMA based disk drivers (all but the floppy,  AT/IDE,  and
  713.         Adaptec  drivers).   Raise  its  value  to  greatly  improve
  714.         throughput, especially writing.  A value of  16  shows  good
  715.         results.   (The  BIOS  driver benefits most, because it is a
  716.         long way to the BIOS from protected  mode,  especially  from
  717.         286  protected  mode.)  You can increase NR_CONS if you want
  718.         to have more virtual consoles.  Having more  consoles  costs
  719.         little  memory,  because  all the consoles are kept in video
  720.         memory.  Scrolling speed of the console will go down if more
  721.         virtual consoles share the available memory.  CGA cards have
  722.         space for 4 consoles, EGA and VGA can have 8 consoles.   The
  723.         NR_PTYS  variable  sets the number of pseudo-ttys.  You need
  724.         pseudo-ttys to be able to login remotely over a network with
  725.         the  rlogin  command.   Each  remote login session needs one
  726.    
  727.    
  728.    
  729.                                    12
  730.    
  731.    USAGE(8)             Maintenance Procedures              USAGE(8)
  732.    
  733.    
  734.    
  735.         pseudo-tty.  If you fear that the system will now run out of
  736.         processes  then increase NR_PROCS.  Configuring a new kernel
  737.         is sometimes not enough to enable new devices, you sometimes
  738.         need  to use the MAKEDEV command to make new device files in
  739.         /dev.  For pseudo-ttys you also have to check if /etc/ttytab
  740.         mentiones the new devices.
  741.    
  742.         New additions to the system can be made  in  the  /usr/local
  743.         tree.   An  empty directory tree has been set up for you and
  744.         binaries and manual pages are already in the  search  paths.
  745.         You can make a new user entry with the adduser command.
  746.    
  747.         The TZ variable in /etc/profile tells the time  zone  offset
  748.         from  the wall clock time to GMT.  You have to change it for
  749.         your time zone.  (See TZ(5).)
  750.    
  751.         The function  keys  produce  debug  dumps,  showing  various
  752.         interesting  data  about the system.  F1 lists processes and
  753.         F5 shows ethernet stats, which may be of use now.  Read con-
  754.         sole(4) to know all the details of the screen and keyboard.
  755.    
  756.      22. SYSTEM SHUTDOWN
  757.         You can't just turn a MINIX system off.  MINIX must be  told
  758.         to  flush  the modified data in the file system cache first.
  759.         The following commands/keystrokes can be used to exit  MINIX
  760.         properly:
  761.    
  762.         shutdown
  763.              First alert all users and then  all  processes  of  the
  764.              impending  shutdown  then  halt or reboot the system in
  765.              one of various ways.  See shutdown(8).
  766.    
  767.         reboot / halt
  768.              Alert all processes of the system shutdown then  reboot
  769.              or halt.
  770.    
  771.         CTRL-ALT-DEL
  772.              Halt the system by running shutdown -h now.
  773.    
  774.         MINIX halts by returning to the Boot Monitor, MINIX  reboots
  775.         by  instructing the monitor to reboot MINIX.  (MINIX is just
  776.         a subprocess to the monitor.)  Either  halt  MINIX  and  use
  777.         monitor  commands  to  escape  MINIX,  or use shutdown -R to
  778.         reset the system.
  779.    
  780.    FILES
  781.         /usr/ast    Honorary home directory of Andew  S.  Tanenbaum.
  782.                     Doubles as the place where the default setup for
  783.                     a new user is found.
  784.    
  785.    SEE ALSO
  786.         monitor(8),  boot(8),  part(8),  mkfs(1),  mount(8),   M(8),
  787.    
  788.    
  789.    
  790.                                     13
  791.    
  792.    USAGE(8)             Maintenance Procedures              USAGE(8)
  793.    
  794.    
  795.    
  796.         fstab(5),  hier(7),  console(4),  dev(4), adduser(8), TZ(5),
  797.         mkdist(8), shutdown(8).
  798.         "Operating Systems  -  Design  and  Implementation  2/e"  by
  799.         Andrew S. Tanenbaum and Albert S. Woodhull.
  800.    
  801.    NOTES
  802.         The notation <file.h> refers to a C language include file in
  803.         /usr/include.
  804.    
  805.         Root and bin do not have the current directory in their pro-
  806.         gram  search path to avoid executing programs left around by
  807.         malicious people.  This means  that  to  run  foo  from  the
  808.         current directory, ./foo must be typed.
  809.    
  810.         Some of the commands have changed since earlier  MINIX  ver-
  811.         sions.   For  instance  mkfs  doesn't  need  a size argument
  812.         anymore, and vol automagically determines  if  it  needs  to
  813.         read  or write.  Keep this in mind if you use an older MINIX
  814.         version to examine the newer system.
  815.    
  816.    BUGS
  817.         There are many PS/2 models, all different.   Some  will  run
  818.         MINIX, some won't, some crippled if you lie to MINIX by set-
  819.         ting processor to 86.  Almost no PS/2 has a  standard  disk,
  820.         so setting hd to esdi or bios will be necessary.
  821.    
  822.         While testing a full library rebuild of this distribution it
  823.         sometimes  happened  that some things were not put back into
  824.         the library.  This seems to be fixed, but we do  not  under-
  825.         stand  why the fix fixed the problem.  So if you see strange
  826.         "undefined" errors when compiling a program after a  library
  827.         rebuild  then run make install again in /usr/src/lib/ to try
  828.         and add the missing pieces.
  829.    
  830.         Except for the floppy driver, none of the DMA based  drivers
  831.         know  about DMA being limited to a 24 bits address, i.e. the
  832.         first 16 MB.  So under MINIX-386 you run a slight risk  that
  833.         a tar or dd command may use a buffer above 16 MB for reading
  834.         or writing to a character device.  This only happens if  the
  835.         low 16 MB is taken by some huge processes, and you have more
  836.         than 16 MB, of course.
  837.    
  838.    AUTHOR
  839.         Kees J. Bot (kjb@cs.vu.nl)
  840.    
  841.                                       14
  842.