README for BigRAM Installation (rev 09.03.98) version 0.1 asw 30.11.97 Introduction: BigRAM is a set of four disks that contain files and compressed archives to allow one to do a temporary installation of 32-bit networked Minix 2.0.0 on a large RAM disk. This is useful for demonstrations and beginning an installation via network. It is also intended to be an alternative for students who have access to machines outside of the lab which they cannot repartition for a standard Minix installation. The BigRAM installation includes most of the standard Minix binaries, including three editors and the Minix C compiler. It also includes the C libraries and header files and the man pages, so it provides an environment adequate for simple programming assignments. Requirements: Intel 386 or better 10M or more of RAM (partially usable with less) 1 1.44M floppy disk drive optional: NE2000 or WD8003 compatible ethernet card How it works: Disk 1 is a boot disk. The standard Minix installation boot disk creates a RAM disk just big enough to hold a copy of the file system on the boot disk. The BigRAM boot disk makes an 8M RAM disk, copies itself to this, and then starts Minix. A shell and other essential executable files are present, and the Minix startup script in /etc/rc uses these to unpack compressed archives containing additional files. After unpacking everything from the Disk 1 image the user is prompted to insert Disks 2, 3, and 4 in turn, and additional compressed archives are unpacked to fill the standard directories of a Minix installation. At the end of this startup process the user is permitted to mount an optional floppy disk on the /usr/home directory. The process of booting and unpacking the four standard disks takes less than 3 1/2 minutes on the system on which this distribution was developed. Directories in the BigRAM distribution: bigram/ -- top directory /README -- this file /images/ -- the image files /imag.docs/ -- directory listings of disk contents /arch.docs/ -- contents of various archives How to use it: Download the four image files (disk*.image) from the images directory. If you are working on an MS-DOS or Windows system download fdvol.exe from the regular minix/dosutil directory and use it to copy each of the image files to a 1.44M floppy disk. See the README file in the minix/dosutil directory for information on using fdvol. There are two other utilities, rawrite and wrtdisk, which can be used instead of fdvol if you prefer. If you are working on an existing Unix-like system like Minix or Linux that can write IBM-PC floppy disks you can use dd or cat to write the images to floppy disks, for example: cat disk1.image > /dev/fd0 Note that the floppy disks you use for the images must be perfect, with no bad sectors. Use brand new high quality disks and test them first. You are writing an image of an entire file system, so ordinary programs for copying files will not work, and ordinary operating system methods for avoiding bad sectors are not available. When the disks are ready you can boot from the disk to which you wrote disk1.image. If you have 10M of RAM or more you can press "=" when you see the message and Minix will start. If you have less than 10M RAM press Esc to enter the boot monitor, and use the "set" command to view the boot parameters. Change the ramsize parameter to reflect the size of RAM disk you want to use, reserving 2M of RAM for ordinary use. For example, if you have 8M of RAM, enter "ramsize=6144". The entire BigRAM installation requires about 7.5M. If your RAM disk is smaller the entire installation will not fit, but you may find that the result is still useful. You can customize the installation later to make best use of a more limited RAM. While in the boot monitor you can change the DPETH0 (ethernet) parameters if you need to. If you don't know how to set up for your ethernet just proceed, and read the boot (8) man page after you are running, so you will know how to do it next time. If you have made changes in the boot parameters you can give the command "save" to write them to the disk. If you don't save them the modified parameters will be used this time, and then you will get the defaults again the next time you boot. Next type "boot" to start Minix. When Minix has started it will inform you of its progress as archive files are unpacked. When everything from the first disk has been unpacked you will be asked which disk drive will be used for the remaining disks. Enter "fd0" or "fd1" and then press Enter. You will be prompted to put disks 2, 3, and 4 in the drive in turn. After all four disks are loaded you will be invited to mount a floppy on /usr/home; say "no" this time because you don't yet have a floppy to mount. Finally, you will be shown an IP (network) address and asked if you want to change it. If you want to use the network you should enter an IP address usable on the network to which you are connected. Finally, you can log in. Three user accounts are available, root, bin, and asw. None of them require a password. Making a home disk: To do real work you need a permanent home directory. Put a formatted disk into a drive and use mkfs to make a file system, for example: mkfs /dev/fd0 Then mount the floppy on one of the directories provided for temporary mounting ("M fd0" will mount it on /fd0). The copy the /usr/home directory to the floppy: cpdir -msv /usr/home /fd0 Now you can unmount the floppy from /fd0 ("U fd0") and mount it on /usr/home. You will have to be logged in as root and cd to the root directory to do this. You can use this disk for all work you want to save, and mount it the next time you start the system. Be sure to unmount the floppy when you want to stop the system, so all buffered files are written. The easiest way is to use the shutdown or halt commands before turning off the system. Later you may want to create a user account with your own name, but this requires modifying /etc/passwd and then making a new etc.tar.Z file for disk 1, so it is probably easiest just to work as asw for the time being. Loose ends: This is version 0.1, and was assembled while I was working at the National Autonomous University of Nicaragua (UNAN) in 1997. For this reason some of the messages you may see and some comments inside scripts will appear in Spanish. Also, the selection of files to include is not necessarily the best one for your purposes, so you may want to change the contents of some of the archives. It should be obvious how to change the archives: the original disks can be mounted on /fd0 or another mount directory and an archive can be expanded into a convenient directory, such as /usr/tmp, using zcat and tar. You can then add or delete files, and use tar and compress to make a new archive and write it back to the floppy. Be careful about file sizes, however, some disks have very little free space. You may also have to delete some directories from the RAM disk to give yourself working room; the include and man trees are good candidates. Remember, it's just a RAM disk, and everything will be there the next time you start. For your own installation you need to edit /etc/rc to use your correct IP address, and /etc/hosts to include addresses of other hosts in your network -- the current file contains an obsolete list of systems at the UNAN. You will then need to rebuild etc.tar.Z on disk 1 with your new files. TODO: Ideally the various archives would be assembled and written to disks using a script which consults easily edited lists of files to be included. The same general scheme, loading compressed files into a large RAM disk, can be used to advantage in installing Minix. A much smaller subset of Minix containing files and programs needed to run Minix on a network can be used to boot Minix and start the hard disk installation, with the bulk of the files installed via ethernet. Juggling files between archives to make optimal use of the space on floppy disks is a pain. An alternative would be to load one or two large archives using the vol program, which allows splitting of a file image across multiple disks. It is also probable that other compression programs, such as gzip, would give better results than the standard Unix compress. While developing this approach I decided using a larger number of small archives would be easier, and more flexible, but other approaches should be tested. Feedback: BigRAM is an experiment. I would appreciate feedback with suggestions of any kind. Even just a quick acknowledgement that you found the idea interesting enough to get this far in reading the README would be appreciated. Please write to Al Woodhull, awoodhull@hampshire.edu. asw 09.03.98