| [9] | 1 | .TH USAGE 8 | 
|---|
|  | 2 | .SH NAME | 
|---|
|  | 3 | usage \- installing and using MINIX | 
|---|
|  | 4 | .SH DESCRIPTION | 
|---|
|  | 5 | .de SP | 
|---|
|  | 6 | .if t .sp 0.4 | 
|---|
|  | 7 | .if n .sp | 
|---|
|  | 8 | .. | 
|---|
|  | 9 | .de XB  \" An example in bold print. | 
|---|
|  | 10 | .RS | 
|---|
|  | 11 | .nf | 
|---|
|  | 12 | .ft B | 
|---|
|  | 13 | \&\\$1 | 
|---|
|  | 14 | .ft R | 
|---|
|  | 15 | .fi | 
|---|
|  | 16 | .RE | 
|---|
|  | 17 | .. | 
|---|
|  | 18 | .de 3A  \" Three Letter Acronym at 1 point size smaller. | 
|---|
|  | 19 | \&\\$3\s-1\\$1\s+1\\$2 | 
|---|
|  | 20 | .. | 
|---|
|  | 21 | .de 3B  \" TLA in bold. | 
|---|
|  | 22 | \&\\$3\fB\s-1\\$1\s+1\fR\\$2 | 
|---|
|  | 23 | .. | 
|---|
|  | 24 | This manual page describes the installation and use of MINIX from a | 
|---|
|  | 25 | System Administrators point of view.  It contains an installation guide, | 
|---|
|  | 26 | instructions on how to do the initial configuration and some other info. | 
|---|
|  | 27 | Please read this document entirely before attempting to install MINIX. | 
|---|
|  | 28 | The installation steps are in the proper order, but not all the | 
|---|
|  | 29 | information you may need is presented at the right moment. | 
|---|
|  | 30 | Other detailed information that may be useful can be found in | 
|---|
|  | 31 | .BR boot (8), | 
|---|
|  | 32 | .BR hier (7), | 
|---|
|  | 33 | and in | 
|---|
|  | 34 | .BR dosminix (8) | 
|---|
|  | 35 | if you run MINIX under DOS. | 
|---|
|  | 36 | .SS "1. MINIX UNDER DOS" | 
|---|
|  | 37 | Installation of MINIX to run under DOS is a nonevent.  Chances are, you are | 
|---|
|  | 38 | reading this manual page from an already running MINIX system, but if not | 
|---|
|  | 39 | then the setup goes like this: | 
|---|
|  | 40 | .PP | 
|---|
|  | 41 | Unpack the DOSMINIX.ZIP file using one of the popular ZIP utilities, such as | 
|---|
|  | 42 | PKZIP or WinZIP.  Next reboot Windows and hit F8 just when you see the | 
|---|
|  | 43 | "Booting Windows" message.  From the menu that appears choose "Command | 
|---|
|  | 44 | prompt only", or if that doesn't work "Safe mode command prompt only".  Under | 
|---|
|  | 45 | Windows Me you can use a startup disk to boot the PC into DOS.  Move | 
|---|
|  | 46 | to the directory containing the MINIX files and type: | 
|---|
|  | 47 | .PP | 
|---|
|  | 48 | .XB "boot minix.mnx" | 
|---|
|  | 49 | .PP | 
|---|
|  | 50 | Type '=' and presto, you are running MINIX.  Most of the rest of this manual, | 
|---|
|  | 51 | which deals mainly with running MINIX in a true hard disk partition, does | 
|---|
|  | 52 | not apply to you.  Your system is already installed completely, with all | 
|---|
|  | 53 | binaries and sources present, so all the talk about getting MINIX on your | 
|---|
|  | 54 | disk can be skimmed over.  Pay attention again when the focus shifts to the | 
|---|
|  | 55 | configuration of the system.  Section 9 is where this happens first.  (The | 
|---|
|  | 56 | main challange to a DOS installation is to figure out which parts of the | 
|---|
|  | 57 | installation manual do not apply.) | 
|---|
|  | 58 | .SS "2. REQUIREMENTS" | 
|---|
|  | 59 | The minimum system MINIX can be installed on comfortably is an IBM PC/AT | 
|---|
|  | 60 | or PS/2 with a 286 processor, 2 MB memory, a 720 kb diskette drive, and 35 | 
|---|
|  | 61 | MB free space on an AT, | 
|---|
|  | 62 | ESDI, or SCSI hard disk (the latter controlled by an Adaptec 1540.)  MINIX | 
|---|
|  | 63 | for the 386 (MINIX-386 for short) can be installed on a machine with at | 
|---|
|  | 64 | least a 386sx processor, 3 MB memory and at least 35 MB of disk space. | 
|---|
|  | 65 | .PP | 
|---|
|  | 66 | The minimum system MINIX can be installed on | 
|---|
|  | 67 | .BR un comfortably | 
|---|
|  | 68 | is an IBM PC/XT with 640 kb memory.  MINIX-386 can more or less run in 2 | 
|---|
|  | 69 | MB memory.  See sections 16 and 17 on "low memory" issues. | 
|---|
|  | 70 | .SS "3. MINIX INSTALLATION BACKGROUND" | 
|---|
|  | 71 | The objective of the installation is to create a partition on your disk | 
|---|
|  | 72 | and to put MINIX into it.  MINIX really requires at least two partitions | 
|---|
|  | 73 | however, so the single "primary" partition is split into two or three | 
|---|
|  | 74 | subpartitions. | 
|---|
|  | 75 | The | 
|---|
|  | 76 | .B s0 | 
|---|
|  | 77 | subpartition will contain the root file system, the | 
|---|
|  | 78 | .B s1 | 
|---|
|  | 79 | subpartition may optionally contain swapspace, and the | 
|---|
|  | 80 | .B s2 | 
|---|
|  | 81 | subpartition will contain the | 
|---|
|  | 82 | .B /usr | 
|---|
|  | 83 | file system.  What Windows calls | 
|---|
|  | 84 | "drives", i.e C:, D:, E:, MINIX calls "file systems".  MINIX does not use | 
|---|
|  | 85 | drive letters, but requires that one file system is made a part of another | 
|---|
|  | 86 | file system by "mounting" one on the other.  The "root" file system is | 
|---|
|  | 87 | always present and starts with the directory "/", the root of the directory | 
|---|
|  | 88 | tree.  The root file system contains a few programs in | 
|---|
|  | 89 | .BR /bin , | 
|---|
|  | 90 | device files in | 
|---|
|  | 91 | .BR /dev , | 
|---|
|  | 92 | and configuration files in | 
|---|
|  | 93 | .BR /etc . | 
|---|
|  | 94 | This is just enough to get the system started.  MINIX will soon extend | 
|---|
|  | 95 | its directory tree by mounting a file system on the | 
|---|
|  | 96 | .B /usr | 
|---|
|  | 97 | directory.  What is henceforth known as the /usr file system contains all | 
|---|
|  | 98 | MINIX programs in | 
|---|
|  | 99 | .BR /usr/bin , | 
|---|
|  | 100 | file system sources in | 
|---|
|  | 101 | .BR /usr/src , | 
|---|
|  | 102 | etc, etc. | 
|---|
|  | 103 | The \s-2ROOT.MNX\s+2 image contains the complete MINIX root file system, but | 
|---|
|  | 104 | \s-2USR\s+2 contains just a small subset of the /usr file system, with just | 
|---|
|  | 105 | enough utilities to install MINIX.  The complete /usr file system is | 
|---|
|  | 106 | split up into the \s-2USR.TAZ\s+2, \s-2SYS.TAZ\s+2 and \s-2CMD.TAZ\s+2 | 
|---|
|  | 107 | archives that are installed later to fill /usr. | 
|---|
|  | 108 | .PP | 
|---|
|  | 109 | Let's suppose your first hard disk, which has | 
|---|
|  | 110 | device name | 
|---|
|  | 111 | .BR /dev/c0d0 , | 
|---|
|  | 112 | has Windows already present in the first primary partition | 
|---|
|  | 113 | .RB ( /dev/c0d0p0 ), | 
|---|
|  | 114 | and some free space left after that.  After MINIX is installed in that | 
|---|
|  | 115 | free space the disk will look like this: | 
|---|
|  | 116 | .PP | 
|---|
|  | 117 | .nf | 
|---|
|  | 118 | .in +4n | 
|---|
|  | 119 | .ta +\w'/dev/c0d0p1s0mmmm'u | 
|---|
|  | 120 | /dev/c0d0       Whole hard disk #0 | 
|---|
|  | 121 | /dev/c0d0p0     Windows C: drive | 
|---|
|  | 122 | /dev/c0d0p1     MINIX primary partition | 
|---|
|  | 123 | /dev/c0d0p1s0   MINIX root partition | 
|---|
|  | 124 | /dev/c0d0p1s1   MINIX swap partition (optional) | 
|---|
|  | 125 | /dev/c0d0p1s2   MINIX /usr partition | 
|---|
|  | 126 | .in -8n | 
|---|
|  | 127 | .fi | 
|---|
|  | 128 | .PP | 
|---|
|  | 129 | /dev/c0d0 is the sum of a partition table, /dev/c0d0p0 and /dev/c0d0p1. | 
|---|
|  | 130 | Likewise is /dev/c0d0p1 the sum of a subpartition table, /dev/c0d0p1s0 and | 
|---|
|  | 131 | /dev/c0d0p1s2.  Read the "DEVICES" sections for more information on MINIX | 
|---|
|  | 132 | devices. | 
|---|
|  | 133 | .SS "4. INSTALLATION" | 
|---|
|  | 134 | .ig \" Only relevant when on CD-ROM. | 
|---|
|  | 135 | If you have not already copied MINIX to floppy disks, please read | 
|---|
|  | 136 | the README.TXT file in the MINIX directory now, for it tells how to do this. | 
|---|
|  | 137 | You should also print out EXAMPLE.TXT and read it in parallel with this | 
|---|
|  | 138 | document.  This one tells you what to do; that one shows you what the | 
|---|
|  | 139 | screen is supposed to look like at each step, so you can see if everything | 
|---|
|  | 140 | is OK. | 
|---|
|  | 141 | .PP | 
|---|
|  | 142 | .. | 
|---|
|  | 143 | You can install MINIX automatically or manually as described in the sections | 
|---|
|  | 144 | below.  The end result is the same, but manual installation allows | 
|---|
|  | 145 | one to deviate from the preconfigured choices.  You may wish to read the | 
|---|
|  | 146 | manual pages of the programs used below before you start.  You may especially | 
|---|
|  | 147 | want to read | 
|---|
|  | 148 | .BR boot (8) | 
|---|
|  | 149 | if your machine is different from what the majority buys, because you | 
|---|
|  | 150 | may need to set a few boot parameters to configure drivers.  To do this type | 
|---|
|  | 151 | .B ESC | 
|---|
|  | 152 | to get to the Boot Monitor prompt, set the appropriate variables, use | 
|---|
|  | 153 | .B save | 
|---|
|  | 154 | to store the settings and | 
|---|
|  | 155 | .B menu | 
|---|
|  | 156 | to continue where you left off. | 
|---|
|  | 157 | .PP | 
|---|
|  | 158 | To install the system you need two diskettes: a bootable root diskette and a | 
|---|
|  | 159 | diskette full of binaries to use as | 
|---|
|  | 160 | .BR /usr . | 
|---|
|  | 161 | These diskettes are named | 
|---|
|  | 162 | .B \s-2ROOT\s+2 | 
|---|
|  | 163 | and | 
|---|
|  | 164 | .BR \s-2USR\s+2 . | 
|---|
|  | 165 | These two diskettes may also be combined on a single high density diskette. | 
|---|
|  | 166 | In that case the \s-2USR\s+2 part is on the | 
|---|
|  | 167 | .B p2 | 
|---|
|  | 168 | partition. | 
|---|
|  | 169 | .PP | 
|---|
|  | 170 | Insert the \s-2ROOT\s+2 diskette, boot the machine and type '=' to the menu. | 
|---|
|  | 171 | The MINIX kernel is loaded and takes control when you see the copyright | 
|---|
|  | 172 | banner.  After loading the root diskette into the RAM disk you will be asked | 
|---|
|  | 173 | to finish the name of the device to mount on | 
|---|
|  | 174 | .BR /usr . | 
|---|
|  | 175 | Type | 
|---|
|  | 176 | .BR fd0p2 | 
|---|
|  | 177 | for a diskette that contains both \s-2ROOT\s+2 and \s-2USR\s+2, otherwise | 
|---|
|  | 178 | replace \s-2ROOT\s+2 by \s-2USR\s+2 and type | 
|---|
|  | 179 | .BR fd0 . | 
|---|
|  | 180 | Login as | 
|---|
|  | 181 | .BR root . | 
|---|
|  | 182 | .SS "5. AUTOMATIC INSTALLATION" | 
|---|
|  | 183 | Before starting the installation, you must either have a free partition | 
|---|
|  | 184 | available or have at least 35 MB not in any partition so you can create | 
|---|
|  | 185 | a MINIX partition. | 
|---|
|  | 186 | .PP | 
|---|
|  | 187 | Type | 
|---|
|  | 188 | .B setup | 
|---|
|  | 189 | to start the installation script.  First it offers to install a national | 
|---|
|  | 190 | keyboard map.  The names should be clear, except for | 
|---|
|  | 191 | .BR us-swap , | 
|---|
|  | 192 | which swaps the CTRL and CAPS LOCK keys of a standard US style keyboard | 
|---|
|  | 193 | for people who believe that the natural place of CTRL is next to A. | 
|---|
|  | 194 | The default suggested between [ and ] is the US standard keyboard. | 
|---|
|  | 195 | .PP | 
|---|
|  | 196 | The next thing to do is to make a partition, for this you are placed in a | 
|---|
|  | 197 | partition table editor named | 
|---|
|  | 198 | .BR part . | 
|---|
|  | 199 | This partition table editor is very easy to use (in the author's opinion), | 
|---|
|  | 200 | but you will probably hate it.  You can move all over the place with the | 
|---|
|  | 201 | arrow keys, change values, and make a mess of your partition table real quick. | 
|---|
|  | 202 | So if you get into trouble, type 'q' to quit, 'n' to not write the table, | 
|---|
|  | 203 | and RETURN to start over.  Use the '?' key to get help. | 
|---|
|  | 204 | .PP | 
|---|
|  | 205 | With the '+' and '\-' keys you can select the disk device to install on, | 
|---|
|  | 206 | probably | 
|---|
|  | 207 | .BR /dev/c0d0 , | 
|---|
|  | 208 | the first hard disk.  Type 'r' to load the partition table of the selected | 
|---|
|  | 209 | disk.  Either create one new partition by modifying a partition marked | 
|---|
|  | 210 | "None", or reuse an existing partition by changing its type to "MINIX" (hex | 
|---|
|  | 211 | code 81).  DO NOT use part to shrink an existing partition!  It will destroy | 
|---|
|  | 212 | all data in that partition.  MINIX needs a partition of at least 20 MB, but | 
|---|
|  | 213 | not larger than 128 MB (MINIX-86) or 1 GB (MINIX-386).  The system needs 35 | 
|---|
|  | 214 | MB in compiled state. | 
|---|
|  | 215 | .PP | 
|---|
|  | 216 | The script then wants to know the name of the partition you've created.  The | 
|---|
|  | 217 | partition name is probably still visible on the screen.  Combined with the | 
|---|
|  | 218 | drive name you have to type c0d0p1, c0d2p0 or something. | 
|---|
|  | 219 | .PP | 
|---|
|  | 220 | The next question is the amount of swapspace you want to give MINIX.  There | 
|---|
|  | 221 | will be a suggested value based on the amount of memory your system has. | 
|---|
|  | 222 | If you have more then enough memory then don't bother with swap.  MINIX | 
|---|
|  | 223 | doesn't handle it very well yet, or ever, only memory starved systems need it | 
|---|
|  | 224 | so that | 
|---|
|  | 225 | .B "make world" | 
|---|
|  | 226 | can run. | 
|---|
|  | 227 | .PP | 
|---|
|  | 228 | The new partition table is reloaded into the disk driver, and the | 
|---|
|  | 229 | new MINIX partition is carved up into two or three subpartitions, a 1440 kb | 
|---|
|  | 230 | root, maybe some amount of swap, and the rest for /usr. | 
|---|
|  | 231 | .PP | 
|---|
|  | 232 | After making /usr, it is immediately put to use to replace the installation | 
|---|
|  | 233 | /usr file system so that you can remove the \s-2USR\s+2 diskette and insert | 
|---|
|  | 234 | the \s-2ROOT\s+2 diskette (unless they are one and the same).  The root file | 
|---|
|  | 235 | system is filled with the contents of the \s-2ROOT\s+2 diskette and slightly | 
|---|
|  | 236 | patched up to work on the hard disk (/etc/fstab.) | 
|---|
|  | 237 | .PP | 
|---|
|  | 238 | You can now skip the next section and move to "TESTING", but it may be | 
|---|
|  | 239 | instructive to read it anyway. | 
|---|
|  | 240 | .SS "6. MANUAL INSTALLATION" | 
|---|
|  | 241 | The instructions that follow are at a very low level and require you to be | 
|---|
|  | 242 | very careful.  The big advantage is that you know precisely what | 
|---|
|  | 243 | tools have been used and how everything works.  The disadvantage is that | 
|---|
|  | 244 | you may easily make a mistake that either forces you to start over if you | 
|---|
|  | 245 | are lucky, or wipes out the contents of your hard disk if you are not. | 
|---|
|  | 246 | Only if you really want to do something different should you use a manual | 
|---|
|  | 247 | installation.  Slavishly following the steps shown below will only make | 
|---|
|  | 248 | you end up with the same result as an automatic installation. | 
|---|
|  | 249 | .PP | 
|---|
|  | 250 | Run | 
|---|
|  | 251 | .B part | 
|---|
|  | 252 | to make partitions to load the system into.  The best thing to do is to make | 
|---|
|  | 253 | one large primary partition of type "MINIX" and to carve this partition up | 
|---|
|  | 254 | into three subpartitions for root, swap and /usr.  The assumption is that you | 
|---|
|  | 255 | will use the second partition on the first hard disk, | 
|---|
|  | 256 | .BR /dev/c0d0p1 , | 
|---|
|  | 257 | and that | 
|---|
|  | 258 | .B c0d0p1s0 | 
|---|
|  | 259 | is the root subpartition, | 
|---|
|  | 260 | .B c0d0p1s1 | 
|---|
|  | 261 | is swap and | 
|---|
|  | 262 | .B c0d0p1s2 | 
|---|
|  | 263 | is /usr.  If you want to use the first partition on | 
|---|
|  | 264 | the second hard disk for instance, then substitute c0d1p0 and c0d1p0s[012] for | 
|---|
|  | 265 | the above.  See the section on devices below, and the manual | 
|---|
|  | 266 | pages of | 
|---|
|  | 267 | .BR part (8) | 
|---|
|  | 268 | and | 
|---|
|  | 269 | .BR controller (4). | 
|---|
|  | 270 | Start | 
|---|
|  | 271 | .B part | 
|---|
|  | 272 | and select the disk that you | 
|---|
|  | 273 | want to install MINIX onto.  In our example it will be | 
|---|
|  | 274 | .BR /dev/c0d0 . | 
|---|
|  | 275 | .PP | 
|---|
|  | 276 | Use | 
|---|
|  | 277 | .B part | 
|---|
|  | 278 | to make a single partition in the primary partition table of type "MINIX", | 
|---|
|  | 279 | then hit '>' on this new partition to make a subpartition table. | 
|---|
|  | 280 | .PP | 
|---|
|  | 281 | For the root subpartition you are advised to use 1440 kb exactly.  You can | 
|---|
|  | 282 | make it larger if you want to, but it is advisable never to let the contents | 
|---|
|  | 283 | outgrow a floppy.  (The \s-2ROOT\s+2 diskette is a copy of a root file | 
|---|
|  | 284 | system, and will be used to fill your root subpartition.) | 
|---|
|  | 285 | .PP | 
|---|
|  | 286 | The second subpartition is for swapspace.  You can use it to enlarge the | 
|---|
|  | 287 | amount of total memory (real + swap) if your system has less than 2M | 
|---|
|  | 288 | (16-bit mode) or 4M (32-bit mode).  Note that only one MINIX swap partition | 
|---|
|  | 289 | is needed on your system, so if you have another MINIX partition then you can | 
|---|
|  | 290 | use its swap partition instead. | 
|---|
|  | 291 | .PP | 
|---|
|  | 292 | Use the rest of the partition for | 
|---|
|  | 293 | .BR s2 , | 
|---|
|  | 294 | the /usr subpartition. | 
|---|
|  | 295 | .PP | 
|---|
|  | 296 | When you are done check that /dev/c0d0p1s0 is active (the * after the partition | 
|---|
|  | 297 | number) so you can boot from it later. | 
|---|
|  | 298 | .PP | 
|---|
|  | 299 | If your disk has bad blocks then don't put the root or swap subpartition | 
|---|
|  | 300 | on top of them.  Make sure the inode tables in the other partitions don't | 
|---|
|  | 301 | have bad blocks either.  You can put the subpartitions out of order on the | 
|---|
|  | 302 | disk if that helps.  Subpartition tables, unlike the main partition | 
|---|
|  | 303 | table, are not sorted by the driver. | 
|---|
|  | 304 | .PP | 
|---|
|  | 305 | After making the partitions you do not have to reboot.  The disk driver | 
|---|
|  | 306 | reloads the partition tables on the next access if the disk is not in use. | 
|---|
|  | 307 | (Open or mounted.) | 
|---|
|  | 308 | .PP | 
|---|
|  | 309 | To be able to boot from /dev/c0d0p1s0 you must place a master bootstrap in | 
|---|
|  | 310 | /dev/c0d0p1.  It has been placed there by | 
|---|
|  | 311 | .B part | 
|---|
|  | 312 | if it told you that it was creating a new partition table, but | 
|---|
|  | 313 | .PP | 
|---|
|  | 314 | .XB "installboot\0\-m\0/dev/c0d0p1\0/usr/mdec/masterboot" | 
|---|
|  | 315 | .RE | 
|---|
|  | 316 | .PP | 
|---|
|  | 317 | will put it there for sure. | 
|---|
|  | 318 | .PP | 
|---|
|  | 319 | Let's start by initializing the swap partition first, if you allocated one. | 
|---|
|  | 320 | We may need it already, so mount it. | 
|---|
|  | 321 | .PP | 
|---|
|  | 322 | .XB "mkswap\0/dev/c0d0p1s1" | 
|---|
|  | 323 | .XB "mount\0\-s\0/dev/c0d0p1s1" | 
|---|
|  | 324 | .PP | 
|---|
|  | 325 | Next make a file system for on-disk /usr and copy the floppy /usr on to it. | 
|---|
|  | 326 | .PP | 
|---|
|  | 327 | .XB "mkfs\0/dev/c0d0p1s2" | 
|---|
|  | 328 | .XB "readall\0\-b\0/dev/c0d0p1s2 | sh" | 
|---|
|  | 329 | .XB "mount\0/dev/c0d0p1s2\0/mnt" | 
|---|
|  | 330 | .XB "cpdir\0\-v\0/usr\0/mnt" | 
|---|
|  | 331 | .PP | 
|---|
|  | 332 | This will create a file system on /dev/c0d0p1s2, mount it on /mnt, and copy the | 
|---|
|  | 333 | contents of the \s-2USR\s+2 floppy onto it.  The call to | 
|---|
|  | 334 | .B readall | 
|---|
|  | 335 | marks bad blocks on the file system as unusable, you can omit this on a | 
|---|
|  | 336 | drive known to be spotless (\s-2IDE\s+2 or \s-2SCSI\s+2.) | 
|---|
|  | 337 | .PP | 
|---|
|  | 338 | You can now use the new /usr in place of the \s-2USR\s+2 floppy: | 
|---|
|  | 339 | .PP | 
|---|
|  | 340 | .XB "umount\0/dev/c0d0p1s2" | 
|---|
|  | 341 | .XB "umount\0/dev/fd0\0\0\0\0\0\0\0\0\0# fd0p2 if combined" | 
|---|
|  | 342 | .XB "mount\0/dev/c0d0p1s2\0/usr" | 
|---|
|  | 343 | .PP | 
|---|
|  | 344 | This little dance has freed up your floppy drive, so please remove the | 
|---|
|  | 345 | \s-2USR\s+2 diskette and replace it by the \s-2ROOT\s+2 diskette.  Make a | 
|---|
|  | 346 | file system for the root with at least 512 inodes (files), and | 
|---|
|  | 347 | fill it from the floppy: | 
|---|
|  | 348 | .PP | 
|---|
|  | 349 | .XB "mkfs\0\-i\0512\0/dev/c0d0p1s0" | 
|---|
|  | 350 | .XB "mount\0/dev/fd0\0/fd0" | 
|---|
|  | 351 | .XB "mount\0/dev/c0d0p1s0\0/mnt" | 
|---|
|  | 352 | .XB "cpdir\0\-v\0/fd0\0/mnt" | 
|---|
|  | 353 | .XB "umount\0/dev/fd0" | 
|---|
|  | 354 | .PP | 
|---|
|  | 355 | Remove | 
|---|
|  | 356 | .B /mnt/etc/issue | 
|---|
|  | 357 | to get rid of the "use setup" message that greets you when you boot, and | 
|---|
|  | 358 | edit the file | 
|---|
|  | 359 | .B /mnt/etc/fstab | 
|---|
|  | 360 | to name the devices MINIX has been installed on.  In our example it | 
|---|
|  | 361 | should look like this: | 
|---|
|  | 362 | .PP | 
|---|
|  | 363 | .XB "root=/dev/c0d0p1s0" | 
|---|
|  | 364 | .XB "swap=/dev/c0d0p1s1" | 
|---|
|  | 365 | .XB "usr=/dev/c0d0p1s2" | 
|---|
|  | 366 | .PP | 
|---|
|  | 367 | Unmount the new root: | 
|---|
|  | 368 | .PP | 
|---|
|  | 369 | .XB "umount\0/dev/c0d0p1s0" | 
|---|
|  | 370 | .PP | 
|---|
|  | 371 | Make it bootable: | 
|---|
|  | 372 | .PP | 
|---|
|  | 373 | .XB "installboot\0\-d\0/dev/c0d0p1s0\0/usr/mdec/bootblock\0boot" | 
|---|
|  | 374 | .PP | 
|---|
|  | 375 | The automatic script would now set the | 
|---|
|  | 376 | .B rootdev | 
|---|
|  | 377 | and | 
|---|
|  | 378 | .B ramimagedev | 
|---|
|  | 379 | boot variables.  You can do this now using the | 
|---|
|  | 380 | .B edparams | 
|---|
|  | 381 | command, but it is easier to postpone it until the testing phase.  The | 
|---|
|  | 382 | settings should be: | 
|---|
|  | 383 | .PP | 
|---|
|  | 384 | .XB "rootdev=c0d0p1s0" | 
|---|
|  | 385 | .XB "ramimagedev=c0d0p1s0" | 
|---|
|  | 386 | .SS "7. TESTING" | 
|---|
|  | 387 | By now a new MINIX system is present on your hard disk.  Time to see if | 
|---|
|  | 388 | it works.  Leave the \s-2ROOT\s+2 diskette in the drive and type | 
|---|
|  | 389 | .BR halt . | 
|---|
|  | 390 | You are now going to use the power of the Boot Monitor on the diskette to | 
|---|
|  | 391 | boot the MINIX partition on the hard disk.  Use the monitor command | 
|---|
|  | 392 | .B boot c0d0p1 | 
|---|
|  | 393 | to boot the primary partition MINIX has been installed in.  (It is "c0d0p1" in | 
|---|
|  | 394 | our example.) | 
|---|
|  | 395 | .PP | 
|---|
|  | 396 | The hard disk bootstrap is now showing the menu again.  You can type '=' | 
|---|
|  | 397 | to start MINIX, but you probably want to change the boot parameters. | 
|---|
|  | 398 | Hit | 
|---|
|  | 399 | .B ESC | 
|---|
|  | 400 | once more to get to the command prompt.  The command | 
|---|
|  | 401 | .B set | 
|---|
|  | 402 | shows what the current parameters are.  Here is an example that shows how | 
|---|
|  | 403 | to make a menu to either start MINIX or boot Windows: | 
|---|
|  | 404 | .PP | 
|---|
|  | 405 | .XB "minix(=,Minix)\0boot" | 
|---|
|  | 406 | .XB "win(w,Windows)\0boot\0c0d0p0" | 
|---|
|  | 407 | .XB "save" | 
|---|
|  | 408 | .PP | 
|---|
|  | 409 | Windows is assumed to be in the first partition in the example above (c0d0p0). | 
|---|
|  | 410 | When finished type | 
|---|
|  | 411 | .B menu | 
|---|
|  | 412 | to see if the menu looks right.  If so hit '=' to start MINIX.  Log in as | 
|---|
|  | 413 | root. | 
|---|
|  | 414 | .SS "8. ADDING PROGRAMS AND SOURCES TO /usr" | 
|---|
|  | 415 | The | 
|---|
|  | 416 | .B setup | 
|---|
|  | 417 | command can also be used to add files from floppy sets to the system.  The | 
|---|
|  | 418 | .B \s-2USR.TAZ\s+2 | 
|---|
|  | 419 | (programs and stuff), | 
|---|
|  | 420 | .B \s-2SYS.TAZ\s+2 | 
|---|
|  | 421 | (system sources), and | 
|---|
|  | 422 | .B \s-2CMD.TAZ\s+2 | 
|---|
|  | 423 | (commands sources) | 
|---|
|  | 424 | are all installed relative to the | 
|---|
|  | 425 | .B /usr | 
|---|
|  | 426 | directory, so the command to use three times is | 
|---|
|  | 427 | .PP | 
|---|
|  | 428 | .XB setup\0/usr | 
|---|
|  | 429 | .PP | 
|---|
|  | 430 | .B Setup | 
|---|
|  | 431 | will ask for the size of data on the floppies, which is by default simply | 
|---|
|  | 432 | the entire floppy.  You will see some "Cannot make directory" errors | 
|---|
|  | 433 | while extracting, as some directories already exist.  Ignore these messages. | 
|---|
|  | 434 | You need the | 
|---|
|  | 435 | .B \s-2USR.TAZ\s+2 | 
|---|
|  | 436 | set if you want a working MINIX system, | 
|---|
|  | 437 | .B \s-2SYS.TAZ\s+2 | 
|---|
|  | 438 | if you want recompile the system or study it, and | 
|---|
|  | 439 | .B \s-2CMD.TAZ\s+2 | 
|---|
|  | 440 | if you also want the sources of the commands.  On a disk space | 
|---|
|  | 441 | starved machine you could opt to do without the commands sources, as they | 
|---|
|  | 442 | are not absolutely necessary to understand MINIX. | 
|---|
|  | 443 | .PP | 
|---|
|  | 444 | If your machine does not have enough memory to run | 
|---|
|  | 445 | .B setup\0/usr | 
|---|
|  | 446 | then type these commands manually: | 
|---|
|  | 447 | .PP | 
|---|
|  | 448 | .XB "cd\0/usr" | 
|---|
|  | 449 | .XB "vol\0/dev/fd0 | zcat | tar\0xvfp\0\-" | 
|---|
|  | 450 | .PP | 
|---|
|  | 451 | If | 
|---|
|  | 452 | .3B USR.TAZ | 
|---|
|  | 453 | is already present on the hard disk in an | 
|---|
|  | 454 | .3A DOS | 
|---|
|  | 455 | or Windows partition, then this command can be used under MINIX-386 to | 
|---|
|  | 456 | extract it to avoid the floppy detour: | 
|---|
|  | 457 | .PP | 
|---|
|  | 458 | .XB "cd\0/usr" | 
|---|
|  | 459 | .XB "mtools\0copy\0c0d0p0:USR.TAZ\0\- | setup\0/usr" | 
|---|
|  | 460 | .PP | 
|---|
|  | 461 | In 16-bit mode you don't have mtools, but maybe dosread will work: | 
|---|
|  | 462 | .PP | 
|---|
|  | 463 | .XB "cd\0/usr" | 
|---|
|  | 464 | .XB "dosread\0c0d0p0\0USR.TAZ | setup\0/usr" | 
|---|
|  | 465 | .PP | 
|---|
|  | 466 | The file doesn't have to be in the root directory of | 
|---|
|  | 467 | .BR c0d0p0 , | 
|---|
|  | 468 | of course, | 
|---|
|  | 469 | .B "c0d1p0:/TMP/USR.TAZ" | 
|---|
|  | 470 | would name a file on the first partition of the second hard disk in the | 
|---|
|  | 471 | directory | 
|---|
|  | 472 | .BR \eTMP . | 
|---|
|  | 473 | .PP | 
|---|
|  | 474 | The /usr file system can also be filled through a network from a remote host | 
|---|
|  | 475 | if MINIX if you can get networking going with the NET.TAZ supplement.  Use | 
|---|
|  | 476 | .B "setup\0/" | 
|---|
|  | 477 | to install NET.TAZ (note that it goes into / instead of /usr), then | 
|---|
|  | 478 | follow the instructions in | 
|---|
|  | 479 | .BR boot (8) | 
|---|
|  | 480 | to configure TCP/IP and boot MINIX.  There are now two ways to fill | 
|---|
|  | 481 | /usr.  One is to add the host name and login name of a remote host and a | 
|---|
|  | 482 | remote user to | 
|---|
|  | 483 | .BR /.rhosts , | 
|---|
|  | 484 | as root, and to use the following command on the remote host: | 
|---|
|  | 485 | .PP | 
|---|
|  | 486 | .XB "rsh\0\-l\0root\0\fIminix-box\fP\0setup\0/usr\0< USR.TAZ" | 
|---|
|  | 487 | .PP | 
|---|
|  | 488 | Two is to use | 
|---|
|  | 489 | .B urlget | 
|---|
|  | 490 | to copy the data directly from a Web or FTP site by using these | 
|---|
|  | 491 | commands under MINIX: | 
|---|
|  | 492 | .PP | 
|---|
|  | 493 | .XB "cd\0/usr" | 
|---|
|  | 494 | .XB "urlget\0\fIurl\fP.../USR.TAZ | setup\0/usr" | 
|---|
|  | 495 | .PP | 
|---|
|  | 496 | The sources may be installed using exactly the same commands, but with | 
|---|
|  | 497 | .3B USR.TAZ | 
|---|
|  | 498 | replaced by | 
|---|
|  | 499 | .3B SRC.TAZ . | 
|---|
|  | 500 | Note that this means that the sources must also be extracted relative to | 
|---|
|  | 501 | .BR /usr . | 
|---|
|  | 502 | .SS "9. NAMES" | 
|---|
|  | 503 | A standalone machine will have to be given a name.  As | 
|---|
|  | 504 | .B root | 
|---|
|  | 505 | type | 
|---|
|  | 506 | .PP | 
|---|
|  | 507 | .XB "echo\0\fIname\fB\0>/etc/hostname.file" | 
|---|
|  | 508 | .PP | 
|---|
|  | 509 | to change the host name of your machine to | 
|---|
|  | 510 | .IR name . | 
|---|
|  | 511 | .SS "10. ACTIVE ON BOOT" | 
|---|
|  | 512 | You may want to make the MINIX partition active so that it is automatically | 
|---|
|  | 513 | booted.  With Windows | 
|---|
|  | 514 | .B fdisk | 
|---|
|  | 515 | or MINIX | 
|---|
|  | 516 | .BR part , | 
|---|
|  | 517 | mark the primary partition that contains MINIX active.  Using the menu you | 
|---|
|  | 518 | made earlier you can boot either MINIX or Windows at a keypress.  You can even | 
|---|
|  | 519 | set timeouts.  To boot MINIX automatically after 5 seconds: | 
|---|
|  | 520 | .PP | 
|---|
|  | 521 | .XB "main()\0{trap\05000\0minix;\0menu}" | 
|---|
|  | 522 | .PP | 
|---|
|  | 523 | See | 
|---|
|  | 524 | .BR monitor (8) | 
|---|
|  | 525 | for all the details on the monitor. | 
|---|
|  | 526 | .PP | 
|---|
|  | 527 | If you don't trust this then you can rig up a diskette that boots the MINIX | 
|---|
|  | 528 | partition when left in the drive: | 
|---|
|  | 529 | .PP | 
|---|
|  | 530 | .XB "installboot\0\-m\0/dev/fd0\0/usr/mdec/jumpboot\0010" | 
|---|
|  | 531 | .PP | 
|---|
|  | 532 | The numbers 010 indicate the device (disk or partition) that must be booted, | 
|---|
|  | 533 | i.e. | 
|---|
|  | 534 | .B /dev/c0d0p1s0 | 
|---|
|  | 535 | in this example.  Take the name of the device, and use the disk, partition | 
|---|
|  | 536 | and subpartition numbers, or less.  So c0d1p2s0 -> 120, c0d3 -> 3, | 
|---|
|  | 537 | c0d2p0 -> 20.) | 
|---|
|  | 538 | .SS "11. DEVICES" | 
|---|
|  | 539 | A crash course on the MINIX devices in | 
|---|
|  | 540 | .BR /dev : | 
|---|
|  | 541 | The first two hard disks are named | 
|---|
|  | 542 | .BR c0d0 | 
|---|
|  | 543 | and | 
|---|
|  | 544 | .BR c0d1 . | 
|---|
|  | 545 | These devices address the entire hard disk, from the | 
|---|
|  | 546 | first to the last byte.  Each disk has four partitions, for disk 0 they are | 
|---|
|  | 547 | .BR c0d0p0 , | 
|---|
|  | 548 | .BR c0d0p1 , | 
|---|
|  | 549 | .BR c0d0p2 , | 
|---|
|  | 550 | and | 
|---|
|  | 551 | .BR c0d0p3 . | 
|---|
|  | 552 | And for disk 1 they are named | 
|---|
|  | 553 | .BR c0d1p0 | 
|---|
|  | 554 | to | 
|---|
|  | 555 | .BR c0d1p3 . | 
|---|
|  | 556 | These partitions may contain file systems, | 
|---|
|  | 557 | .B c0d0p0 | 
|---|
|  | 558 | often contains the | 
|---|
|  | 559 | .3A MS-DOS | 
|---|
|  | 560 | or Windows "C:" file system.  MINIX can use these partitions | 
|---|
|  | 561 | for file systems too, but you can also partition one of these "primary | 
|---|
|  | 562 | partitions" into four so-called "subpartitions".  The subpartitions of | 
|---|
|  | 563 | .B c0d0p0 | 
|---|
|  | 564 | are named | 
|---|
|  | 565 | .BR c0d0p0s0 , | 
|---|
|  | 566 | .BR c0d0p0s1 , | 
|---|
|  | 567 | .BR c0d0p0s2 , | 
|---|
|  | 568 | and | 
|---|
|  | 569 | .BR c0d0p0s3 . | 
|---|
|  | 570 | The other partitions may have four subpartitions that are named in the same | 
|---|
|  | 571 | way.  See | 
|---|
|  | 572 | .BR controller (4) | 
|---|
|  | 573 | for an elaborate description. | 
|---|
|  | 574 | .PP | 
|---|
|  | 575 | You may need to add devices to | 
|---|
|  | 576 | .BR /dev , | 
|---|
|  | 577 | because not all devices are present to keep down the clutter. | 
|---|
|  | 578 | The command | 
|---|
|  | 579 | .3B MAKEDEV | 
|---|
|  | 580 | knows how to make devices, and | 
|---|
|  | 581 | .3B DESCRIBE | 
|---|
|  | 582 | can tell you what an unknown device may be, or even what all devices in | 
|---|
|  | 583 | .B /dev | 
|---|
|  | 584 | may be if called without arguments.  Devices are described in | 
|---|
|  | 585 | .BR dev (4), | 
|---|
|  | 586 | with pointers to more specific pages. | 
|---|
|  | 587 | .SS "12. EDITORS" | 
|---|
|  | 588 | The editors available are | 
|---|
|  | 589 | .B elvis | 
|---|
|  | 590 | (a | 
|---|
|  | 591 | .B vi | 
|---|
|  | 592 | clone), | 
|---|
|  | 593 | .B elle | 
|---|
|  | 594 | (a simple | 
|---|
|  | 595 | .B emacs | 
|---|
|  | 596 | clone), | 
|---|
|  | 597 | and the old MINIX | 
|---|
|  | 598 | .B mined | 
|---|
|  | 599 | editor.  Of these editors only elvis can recover your file after a system | 
|---|
|  | 600 | crash.  Only | 
|---|
|  | 601 | .B mined | 
|---|
|  | 602 | is available at installation time.  (All you need to know about mined right | 
|---|
|  | 603 | now is that CTRL-X gets you out of it.) | 
|---|
|  | 604 | .SS "13. BOOT MONITOR VS. MINIX" | 
|---|
|  | 605 | The Boot Monitor uses the | 
|---|
|  | 606 | .3A BIOS | 
|---|
|  | 607 | to address disks, so it has no idea of controllers, it just lumps everything | 
|---|
|  | 608 | together and ignores controller numbers.  So what the monitor thinks are | 
|---|
|  | 609 | .BR d0 , | 
|---|
|  | 610 | .BR d1 , | 
|---|
|  | 611 | and | 
|---|
|  | 612 | .BR d2 , | 
|---|
|  | 613 | may be | 
|---|
|  | 614 | .BR c0d0 | 
|---|
|  | 615 | (IDE primary master), | 
|---|
|  | 616 | .BR c0d2 | 
|---|
|  | 617 | (IDE secondary master), and | 
|---|
|  | 618 | .BR c1d3 | 
|---|
|  | 619 | (SCSI disk at target 3). | 
|---|
|  | 620 | One must keep this in mind when MINIX is installed on a disk other than the | 
|---|
|  | 621 | very first.  So if MINIX is installed in the third partition of the SCSI disk, | 
|---|
|  | 622 | then | 
|---|
|  | 623 | .B "boot d2p2" | 
|---|
|  | 624 | will boot it, and | 
|---|
|  | 625 | .B "rootdev=c1d3p2s0" | 
|---|
|  | 626 | will tell MINIX where its root file system is. | 
|---|
|  | 627 | .SS "14. NATIONAL KEYBOARDS" | 
|---|
|  | 628 | The directory | 
|---|
|  | 629 | .B /usr/lib/keymaps | 
|---|
|  | 630 | contains keymap tables for several national keyboards.  If you have a German | 
|---|
|  | 631 | keyboard for instance, then | 
|---|
|  | 632 | .PP | 
|---|
|  | 633 | .XB "loadkeys\0/usr/lib/keymaps/german.map" | 
|---|
|  | 634 | .PP | 
|---|
|  | 635 | will load the German key translation table into the keyboard driver.  Copy | 
|---|
|  | 636 | the map to | 
|---|
|  | 637 | .B /etc/keymap | 
|---|
|  | 638 | once MINIX is installed on the hard disk, because having to type a key | 
|---|
|  | 639 | sequence like one of these: | 
|---|
|  | 640 | .PP | 
|---|
|  | 641 | .XB "loadkezs\0\-usr\-lib\-kezmaps\-german.map" | 
|---|
|  | 642 | .XB "loqdkeys\0=usr=lib=key,qps=french.,qp" | 
|---|
|  | 643 | .PP | 
|---|
|  | 644 | on a reboot gets a bit annoying after a while.  Send corrections and new | 
|---|
|  | 645 | keymaps to the person named below.  (Do not send a Dutch keymap, buy | 
|---|
|  | 646 | yourself a real keyboard instead.) | 
|---|
|  | 647 | .SH SUGGESTIONS | 
|---|
|  | 648 | Below are a few useful suggestions.  Some of the information can be of use | 
|---|
|  | 649 | in other situations than described here. | 
|---|
|  | 650 | .SS "15. VIRTUAL CONSOLES" | 
|---|
|  | 651 | Hold down the ALT key and press the left or right arrow key, F1, or F2. | 
|---|
|  | 652 | This switches the console between two login sessions.  (Unless you have | 
|---|
|  | 653 | an old mono adapter, because virtual consoles sit in video memory, and | 
|---|
|  | 654 | a mono adapter only has memory for one.) | 
|---|
|  | 655 | .PP | 
|---|
|  | 656 | Note that kernel messages, including function key output, only appear on | 
|---|
|  | 657 | the first console.  This may be confusing, but it keeps the other consoles | 
|---|
|  | 658 | clean. | 
|---|
|  | 659 | .SS "16. LOW ON MEMORY" | 
|---|
|  | 660 | The normal installation requires that you have enough memory for a large RAM | 
|---|
|  | 661 | disk.  You can still install MINIX normally if you either have a high density | 
|---|
|  | 662 | diskette drive for a combined root+usr floppy, or you have two floppy drives | 
|---|
|  | 663 | of at least 720 kb.  Before booting you have to set the variable | 
|---|
|  | 664 | .B rootdev | 
|---|
|  | 665 | to the same value as | 
|---|
|  | 666 | .BR ramimagedev . | 
|---|
|  | 667 | This is slower then a RAM disk, but saves a lot of memory. | 
|---|
|  | 668 | .PP | 
|---|
|  | 669 | The automatic installation script knows how to handle this new situation. | 
|---|
|  | 670 | If you install manually then you have to use | 
|---|
|  | 671 | .PP | 
|---|
|  | 672 | .XB "cpdir\0\-vx\0/\0/mnt" | 
|---|
|  | 673 | .PP | 
|---|
|  | 674 | to copy the root device to disk.  When it is time to fill /usr and you only | 
|---|
|  | 675 | have one floppy drive then hit DEL to get out of the installation script and | 
|---|
|  | 676 | reboot as described in "TESTING".  You can then finish the installation | 
|---|
|  | 677 | manually. | 
|---|
|  | 678 | .ig | 
|---|
|  | 679 | See the XT640K.TXT file for more advice on small machines. | 
|---|
|  | 680 | .. | 
|---|
|  | 681 | .SS "17. LOW ON MEMORY AND ONLY ONE 720 KB FLOPPY DRIVE" | 
|---|
|  | 682 | If you only have one 720 kb floppy drive and your system is low on memory | 
|---|
|  | 683 | then you can use the \s-2TINYROOT.MNX\s+2 boot image.  This image contains a | 
|---|
|  | 684 | small kernel with only the BIOS disk driver, and a small root file system. | 
|---|
|  | 685 | You can use this disk to boot your machine.  Use the normal \s-2ROOT.MNX\s+2 to | 
|---|
|  | 686 | install the root file system.  Keep booting your machine with | 
|---|
|  | 687 | \s-2TINYROOT\s+2 until you have compiled a small kernel for your system. | 
|---|
|  | 688 | Use the | 
|---|
|  | 689 | .B rootdev | 
|---|
|  | 690 | boot variable to select the hard disk root file system.  Do | 
|---|
|  | 691 | .B not | 
|---|
|  | 692 | use \s-2TINYROOT\s+2 for anything other than booting, always use | 
|---|
|  | 693 | \s-2ROOT\s+2 when mentioned. | 
|---|
|  | 694 | .SS "18. FLOPPY DRIVE 1 IS A HIGH DENSITY DRIVE" | 
|---|
|  | 695 | If you would like to install from floppy drive 1 then you need to copy at | 
|---|
|  | 696 | least one sector from the \s-2USR\s+2 image onto a diskette for drive 0. | 
|---|
|  | 697 | The \s-2USR\s+2 bootstrap has been rigged to boot the other drive. | 
|---|
|  | 698 | .SS "19. INSTALLING ON A SECOND HARD DISK" | 
|---|
|  | 699 | MINIX doesn't care if it is installed on the second disk of a system with | 
|---|
|  | 700 | two disks.  The only problem is to get it booted.  You can either rig up | 
|---|
|  | 701 | a diskette to boot MINIX as shown earlier, or you can use the same trick | 
|---|
|  | 702 | on the first disk.  The command | 
|---|
|  | 703 | .PP | 
|---|
|  | 704 | .XB "installboot\0\-m\0/dev/c0d0\0/usr/mdec/jumpboot\01" | 
|---|
|  | 705 | .PP | 
|---|
|  | 706 | will lock the first disk into booting the second disk.  Note that this | 
|---|
|  | 707 | command modifies the disk outside a MINIX partition, overwriting a bit of | 
|---|
|  | 708 | code that has likely been put there by Windows fdisk.  First verify that the | 
|---|
|  | 709 | Boot Monitor can boot a Windows partition, because then the MINIX master | 
|---|
|  | 710 | bootstrap can do it too. | 
|---|
|  | 711 | .SS "20. LOTS OF MEMORY ON A 286" | 
|---|
|  | 712 | You will have a hard time making MINIX use up 3 MB memory.  Memory you | 
|---|
|  | 713 | can spare can be used for a "second level block cache" on the RAM disk.  The | 
|---|
|  | 714 | File System uses the second level cache to store copies of disk blocks that | 
|---|
|  | 715 | are pushed out of the normal (primary) block cache.  The size of the primary | 
|---|
|  | 716 | cache is compiled into the FS server, but the size of the second level cache | 
|---|
|  | 717 | can be set with the | 
|---|
|  | 718 | .B ramsize | 
|---|
|  | 719 | boot variable.  Set it to a number between 0 and 512.  512 kilobytes is | 
|---|
|  | 720 | enough to keep most of the compiler cached. | 
|---|
|  | 721 | .SS "21. LOTS OF MEMORY ON A 386+" | 
|---|
|  | 722 | Processes can be as big as you would like on a 386, but in practice 4 MB is | 
|---|
|  | 723 | a lot, and 8 MB is infinite. | 
|---|
|  | 724 | The installation script sets up a second level cache for MINIX-386 | 
|---|
|  | 725 | of up to 1024 kilobytes.  This is because the default file system cache | 
|---|
|  | 726 | is only 80 kb.  Your first point of call is to get rid of the poorly | 
|---|
|  | 727 | performing second level cache by setting | 
|---|
|  | 728 | .B ENABLE_CACHE2 | 
|---|
|  | 729 | to 0 and to assign the memory used by it to the | 
|---|
|  | 730 | normal block cache by enlarging the appropriate | 
|---|
|  | 731 | .B NR_BUFS | 
|---|
|  | 732 | and | 
|---|
|  | 733 | .B NR_BUF_HASH | 
|---|
|  | 734 | constants in <minix/config.h> with as much as you can spare.  (1024 for | 
|---|
|  | 735 | NR_BUFS is the minimum to keep | 
|---|
|  | 736 | .B "cc \-c" | 
|---|
|  | 737 | cached.  2048 is then a nice value for NR_BUF_HASH.) | 
|---|
|  | 738 | Disable the second level cache, compile a new kernel, reboot and set | 
|---|
|  | 739 | .B ramsize | 
|---|
|  | 740 | to 0. | 
|---|
|  | 741 | .SS "22. LOTS OF DISK SPACE" | 
|---|
|  | 742 | The maximum file system size is 1 GB for MINIX-386 and 128 MB for | 
|---|
|  | 743 | MINIX-86.  (MINIX-86 can handle larger file systems, but | 
|---|
|  | 744 | .B fsck | 
|---|
|  | 745 | can't check them.)  Note that a MINIX file system can only contain 65535 | 
|---|
|  | 746 | inodes (files), so the average file should be 16 kb to completely fill it. | 
|---|
|  | 747 | It may be better to make two smaller file systems.  Besides, fsck takes | 
|---|
|  | 748 | forever on a large file system. | 
|---|
|  | 749 | .SH SYSTEM ADMINISTRATION | 
|---|
|  | 750 | The system has been set up with the idea that working as root is a bad thing | 
|---|
|  | 751 | to do.  As root you are in no way protected from doing stupid things.  So | 
|---|
|  | 752 | don't do development as root, but work as | 
|---|
|  | 753 | .BR bin ! | 
|---|
|  | 754 | Only in exceptional cases do you want to become root.  Being root is fun for | 
|---|
|  | 755 | wannabe hackers; administrators know better. | 
|---|
|  | 756 | .PP | 
|---|
|  | 757 | To make life easier for bin, some programs like | 
|---|
|  | 758 | .BR su (1), | 
|---|
|  | 759 | .BR install (1) | 
|---|
|  | 760 | and | 
|---|
|  | 761 | .BR shutdown (8) | 
|---|
|  | 762 | treat bin and other members of the operator group as special and allow them | 
|---|
|  | 763 | the privileges of root.  (One is an operator if one's | 
|---|
|  | 764 | group id is zero.)  Operators should share the shadow password of root by | 
|---|
|  | 765 | having | 
|---|
|  | 766 | .B ##root | 
|---|
|  | 767 | in their password field.  This way they all have one face (password) | 
|---|
|  | 768 | to the outside world, forming no greater security risk than root alone. | 
|---|
|  | 769 | .PP | 
|---|
|  | 770 | The home directory of bin contains one important Makefile.  You can use it | 
|---|
|  | 771 | to recompile all the commands and libraries of the system.  Type | 
|---|
|  | 772 | .B make | 
|---|
|  | 773 | to see the usage message.  If you want to compile just one command then you | 
|---|
|  | 774 | can simply type | 
|---|
|  | 775 | .B make | 
|---|
|  | 776 | to do so.  To put it in its proper place you have to type | 
|---|
|  | 777 | .BR "make install" . | 
|---|
|  | 778 | Read the Makefiles in the | 
|---|
|  | 779 | .B commands | 
|---|
|  | 780 | and | 
|---|
|  | 781 | .B lib | 
|---|
|  | 782 | subdirectories to understand how everything is put together.  If you are | 
|---|
|  | 783 | tight on memory then | 
|---|
|  | 784 | .B make | 
|---|
|  | 785 | may fail to traverse down the source tree and also compile things.  You will | 
|---|
|  | 786 | have to type | 
|---|
|  | 787 | .B make | 
|---|
|  | 788 | in each subdirectory.  You can run make in /usr/src at the end to see if | 
|---|
|  | 789 | you've missed something or not. | 
|---|
|  | 790 | .PP | 
|---|
|  | 791 | The shell used by MINIX is a minimal version of | 
|---|
|  | 792 | .BR ash , | 
|---|
|  | 793 | the BSD shell.  It has been modified to offer simple line editing using the | 
|---|
|  | 794 | .BR editline (3) | 
|---|
|  | 795 | library. | 
|---|
|  | 796 | .PP | 
|---|
|  | 797 | The kernel is not compiled from the master Makefile.  To make a new kernel | 
|---|
|  | 798 | you have to step into the | 
|---|
|  | 799 | .B tools | 
|---|
|  | 800 | directory.  There you can run four different make commands: | 
|---|
|  | 801 | .PP | 
|---|
|  | 802 | .TP | 
|---|
|  | 803 | .B make | 
|---|
|  | 804 | This makes all the different kernel parts and combines them in the file | 
|---|
|  | 805 | named | 
|---|
|  | 806 | .BR image . | 
|---|
|  | 807 | .TP | 
|---|
|  | 808 | .B make fdboot | 
|---|
|  | 809 | As above and then makes a boot floppy that you can use to restart your | 
|---|
|  | 810 | system with.  You are prompted for the floppy device name. | 
|---|
|  | 811 | .TP | 
|---|
|  | 812 | .B make hdboot | 
|---|
|  | 813 | First makes the image file and then copies it into the directory | 
|---|
|  | 814 | .BR /minix . | 
|---|
|  | 815 | If there are already two images in that directory then the newest image will | 
|---|
|  | 816 | be removed to make space for this newer image.  It is assumed that the | 
|---|
|  | 817 | oldest image is the most stable system image, one that always works, and | 
|---|
|  | 818 | that the newest image is experimental.  Check beforehand what | 
|---|
|  | 819 | .B /minix | 
|---|
|  | 820 | contains before you run | 
|---|
|  | 821 | .BR "make hdboot" . | 
|---|
|  | 822 | Remove the oldest image if you want another image to become the stable | 
|---|
|  | 823 | image.  The Boot Monitor chooses the newest image in | 
|---|
|  | 824 | .B /minix | 
|---|
|  | 825 | to boot.  You can use the monitor command | 
|---|
|  | 826 | .B ls minix | 
|---|
|  | 827 | to view the images present, and set the | 
|---|
|  | 828 | .B image | 
|---|
|  | 829 | variable to the full name of the image you want to use instead if the newest | 
|---|
|  | 830 | doesn't work.  The images in | 
|---|
|  | 831 | .B /minix | 
|---|
|  | 832 | are named using the MINIX release and version numbers with an extra revision | 
|---|
|  | 833 | number added to distinguish the images. | 
|---|
|  | 834 | .PP | 
|---|
|  | 835 | The first new kernel you would like to make is one configured for your | 
|---|
|  | 836 | system.  The kernel you are running now contains several drivers | 
|---|
|  | 837 | you don't need, or may be missing drivers that you might want. | 
|---|
|  | 838 | In <minix/config.h> you can find a number of | 
|---|
|  | 839 | .BI ENABLE_ XXX | 
|---|
|  | 840 | variables that can be set to | 
|---|
|  | 841 | .B 0 | 
|---|
|  | 842 | to exclude, or | 
|---|
|  | 843 | .B 1 | 
|---|
|  | 844 | to include a particular driver.  The full list of configurable parameters | 
|---|
|  | 845 | and what they do are described in | 
|---|
|  | 846 | .BR config (8). | 
|---|
|  | 847 | It is invaluable in figuring out what to change and how in <minix/config.h>. | 
|---|
|  | 848 | .PP | 
|---|
|  | 849 | Configuring a new kernel is sometimes not enough to enable new devices, you | 
|---|
|  | 850 | sometimes need to use the | 
|---|
|  | 851 | .B MAKEDEV | 
|---|
|  | 852 | command to make new device files in | 
|---|
|  | 853 | .BR /dev . | 
|---|
|  | 854 | For pseudo-ttys you also have to check if | 
|---|
|  | 855 | .B /etc/ttytab | 
|---|
|  | 856 | mentiones the new devices. | 
|---|
|  | 857 | .PP | 
|---|
|  | 858 | New additions to the system can be made in the | 
|---|
|  | 859 | .B /usr/local | 
|---|
|  | 860 | tree.  An empty directory tree has been set up for you and binaries and | 
|---|
|  | 861 | manual pages are already in the search paths.  You can make a new user entry | 
|---|
|  | 862 | with the | 
|---|
|  | 863 | .B adduser | 
|---|
|  | 864 | command. | 
|---|
|  | 865 | .PP | 
|---|
|  | 866 | The | 
|---|
|  | 867 | .B TZ | 
|---|
|  | 868 | variable in | 
|---|
|  | 869 | .B /etc/profile | 
|---|
|  | 870 | tells the time zone offset from the wall clock time to GMT.  You have to | 
|---|
|  | 871 | change it for your time zone.  (See | 
|---|
|  | 872 | .BR TZ (5).) | 
|---|
|  | 873 | .PP | 
|---|
|  | 874 | The function keys produce debug dumps, showing various interesting data | 
|---|
|  | 875 | about the system.  F1 lists processes and F5 shows ethernet stats, which | 
|---|
|  | 876 | may be of use now.  Read | 
|---|
|  | 877 | .BR console (4) | 
|---|
|  | 878 | to know all the details of the screen and keyboard. | 
|---|
|  | 879 | .SS "23. SYSTEM SHUTDOWN" | 
|---|
|  | 880 | You can't just turn a MINIX system off.  MINIX must be told to flush the | 
|---|
|  | 881 | modified data in the file system cache first.  The following | 
|---|
|  | 882 | commands/keystrokes can be used to exit MINIX properly: | 
|---|
|  | 883 | .TP | 
|---|
|  | 884 | .B shutdown | 
|---|
|  | 885 | First alert all users and then all processes of the impending shutdown | 
|---|
|  | 886 | then halt or reboot the system in one of various ways.  See | 
|---|
|  | 887 | .BR shutdown (8). | 
|---|
|  | 888 | .TP | 
|---|
|  | 889 | .B reboot / halt | 
|---|
|  | 890 | Alert all processes of the system shutdown then reboot or halt. | 
|---|
|  | 891 | .TP | 
|---|
|  | 892 | .B \s-2CTRL\-ALT\-DEL\s+2 | 
|---|
|  | 893 | Halt the system by running | 
|---|
|  | 894 | .BR "shutdown \-h now" . | 
|---|
|  | 895 | .PP | 
|---|
|  | 896 | MINIX halts by returning to the Boot Monitor, MINIX reboots by instructing | 
|---|
|  | 897 | the monitor to reboot MINIX.  (MINIX is just a subprocess to the monitor.) | 
|---|
|  | 898 | Either halt MINIX and use monitor commands to escape MINIX, or use | 
|---|
|  | 899 | .B shutdown \-R | 
|---|
|  | 900 | to reset the system. | 
|---|
|  | 901 | .PP | 
|---|
|  | 902 | When exiting MINIX running under DOS the Boot Monitor's | 
|---|
|  | 903 | .B exit | 
|---|
|  | 904 | command will return you to the DOS prompt.  The Boot Monitor and MINIX | 
|---|
|  | 905 | are together just a pretty big DOS program as far DOS is concerned. | 
|---|
|  | 906 | .SH FILES | 
|---|
|  | 907 | .TP 12 | 
|---|
|  | 908 | .B /usr/ast | 
|---|
|  | 909 | Honorary home directory of Andrew S. Tanenbaum.  Doubles as the place where | 
|---|
|  | 910 | the default setup for a new user is found. | 
|---|
|  | 911 | .SH "SEE ALSO" | 
|---|
|  | 912 | .BR dosminix (8), | 
|---|
|  | 913 | .BR monitor (8), | 
|---|
|  | 914 | .BR boot (8), | 
|---|
|  | 915 | .BR part (8), | 
|---|
|  | 916 | .BR mkfs (1), | 
|---|
|  | 917 | .BR mount (8), | 
|---|
|  | 918 | .BR M (8), | 
|---|
|  | 919 | .BR fstab (5), | 
|---|
|  | 920 | .BR hier (7), | 
|---|
|  | 921 | .BR config (8), | 
|---|
|  | 922 | .BR console (4), | 
|---|
|  | 923 | .BR dev (4), | 
|---|
|  | 924 | .BR adduser (8), | 
|---|
|  | 925 | .BR TZ (5), | 
|---|
|  | 926 | .BR mkdist (8), | 
|---|
|  | 927 | .BR shutdown (8). | 
|---|
|  | 928 | .br | 
|---|
|  | 929 | "Operating Systems \- Design and Implementation 2/e" by Andrew S. Tanenbaum | 
|---|
|  | 930 | and Albert S. Woodhull. | 
|---|
|  | 931 | .SH NOTES | 
|---|
|  | 932 | The notation | 
|---|
|  | 933 | .BI < file .h> | 
|---|
|  | 934 | refers to a C language include file in /usr/include. | 
|---|
|  | 935 | .PP | 
|---|
|  | 936 | .B Root | 
|---|
|  | 937 | and | 
|---|
|  | 938 | .B bin | 
|---|
|  | 939 | do not have the current directory in their program search path to avoid | 
|---|
|  | 940 | executing programs left around by malicious people.  This means that to run | 
|---|
|  | 941 | .B foo | 
|---|
|  | 942 | from the current directory, | 
|---|
|  | 943 | .B ./foo | 
|---|
|  | 944 | must be typed. | 
|---|
|  | 945 | .SH BUGS | 
|---|
|  | 946 | There are many PS/2 models, all different.  Some will run MINIX, some won't, | 
|---|
|  | 947 | some crippled if you lie to MINIX by setting | 
|---|
|  | 948 | .B processor | 
|---|
|  | 949 | to | 
|---|
|  | 950 | .BR 86 . | 
|---|
|  | 951 | Almost no PS/2 has a standard disk, so setting | 
|---|
|  | 952 | .B c0 | 
|---|
|  | 953 | to | 
|---|
|  | 954 | .B esdi | 
|---|
|  | 955 | or | 
|---|
|  | 956 | .B bios | 
|---|
|  | 957 | will be necessary. | 
|---|
|  | 958 | .PP | 
|---|
|  | 959 | Except for the floppy driver, none of the DMA based drivers know about DMA | 
|---|
|  | 960 | being limited to a 24 bits address, i.e. the first 16 MB.  So under MINIX-386 | 
|---|
|  | 961 | you run a slight risk that a | 
|---|
|  | 962 | .B tar | 
|---|
|  | 963 | or | 
|---|
|  | 964 | .B dd | 
|---|
|  | 965 | command may use a buffer above 16 MB for reading or writing to a character | 
|---|
|  | 966 | device.  This only happens if the low 16 MB is taken by some huge processes, | 
|---|
|  | 967 | and you have more than 16 MB, of course. | 
|---|
|  | 968 | .SH AUTHOR | 
|---|
|  | 969 | Kees J. Bot <kjb@cs.vu.nl> | 
|---|