How to make a tape 386 Unix boot diskette (LONG)
Dennis S. Breckenridge
root at nebulus.UUCP
Sat Feb 3 13:13:18 AEST 1990
Chris has the right idea, I tried creating a stanza file for /etc/mkpart
but the boot (/etc/fboot) did not work. I tried to make a 3.5 inch disk
bootable. I assume you used whatever method you are comfortable with
copying the diskette so when I refer to disk 1 of 7 I mean the copy!
Insert disk 1 in the drive and check it. "fsck -y /dev/rdsk/f0" will
do a good job on it.
Go to some directory with a lot of space and mount the boot floppy.
"mount /dev/dsk/f0q15d /mnt" and cpio all of the goo over to the target
directory. We will call the new directory /usr/bootme. Then take all of
the floppies of the base system and cpio them into the /usr/bootme
directory. They all use relative paths so don't panic.
umount /mnt # Dont forget to unmount the boot disk
cd /usr/bootme
cpio -idumv < /dev/rdsk/f0
You can now take the tape driver diskette and cpio it to /usr/tmp
This is where it can get confusing so try and bear with me. You
have to glue in the tape driver by hand into the new directory
structure. This is not hard to do.
This is the line to be editted in the mdevice file. One change has
to be made. The Driver must have a major number. To find the major
number look at the file /usr/bootme/etc/conf/cf.d/mdevice in the
same column as the "XX" here and change the "XX" to the next sequential
number (I believe it is 12 but that is OS dependant). Change the DMA
channel to that of the controller (typically 1)
* qt Iiocrw ioHc qt 0 XX 0 2 DMA
qt Iiocrw ioHc qt 0 12 0 2 1
Step 2 is to edit the sdevice entry and you must change the INT to the
interrupt that the tape controller is using (typically 5) and the low
address LADD to 288 and the high address to 289 (for a Wangtek controller)
get these numbers from the manual on the tape controller. If you are
using AT&T then DMA should be 1, INT should be 5, LADD = 288, HADD = 289.
* qt Y 1 6 1 INT LADD HADD 0 0
qt Y 1 6 1 5 288 289 0 0
Once the entry is complete copy this line into a file called
/usr/bootme/etc/conf/sdevice.d/qt
The next step is to set up Unix to create the nodes. To do this remount
the boot disk
mount /dev/dsk/f0 /mnt # leave it mounted here
mknod /mnt/dev/rmt/c0s0n c XX 0
mknod /mnt/dev/rmt/c0s0n c XX 4
mknod /mnt/dev/rmt/c0s0n c XX 8
mknod /mnt/dev/rmt/c0s0n c XX 12
and replace XX with the MAJOR number you assigned in step one!
Copy the next four lines into a directory called /usr/bootme/etc/conf/node.d/qt
qt rmt/c0s0n c 0
qt rmt/c0s0 c 4
qt rmt/c0s0nr c 8
qt rmt/c0s0r c 12
Finally all you have to do is install the driver into the appropriate directory
with the following commands:
mkdir /usr/bootme/etc/conf/pack.d/qt
cp /usr/tmp/Driver.o /usr/bootme/etc/conf/pack.d/qt/Driver.o
cp /usr/tmp/Space.c /usr/bootme/etc/conf/pack.d/qt/space.c
Note the case change on the space.c file. This is important.
We are now ready to try and make a new kernel.
type:
ROOT=/usr/bootme
export ROOT
/etc/conf/bin/idbuild
If all is well the new kernel will build and link correctly. If it
breaks it will tell you exactly what is wrong. Once it is built
then type
strip /usr/bootme/etc/conf/cf.d/unix
cp /usr/bootme/etc/conf/cf.d/unix /mnt/unix
It should fit on the floppy. Don't add all kinds of drivers to it
it will not fit. I believe that there is 100 blocks or so of free
space left on the bootable disk.
take a copy of INSTALL and INSTALL2 and remove the commented out
sections of the code (and probably fix it as well :-))
Presto - installable Unix from tape. Maybe in another article I
will tell you how to put Unix on Tape. AT&T if you are listening
why did you guys not release a TAPE version of Unix. It's obvious
to me that such a copy exists by looking at the INSTALL scripts
Have Fun!
--
-----------------------------------------------------------------------------
NAME: Dennis S. Breckenridge UUCP: dennis at nebulus
EMACS: Eight Megabytes And Constantly Swapping!
-----------------------------------------------------------------------------
More information about the Comp.sys.att
mailing list