Installing 4.3 BSD NFS Wisconsin Unix
Contents
Requirements
You will need the following materials to put together a 4.3 BSD+NFS Wisconsin Unix installation:
- A working perl interpeter to make the tape images.
- A copy of gzip.
- A method of extracting the boot file from either the binaries (tar/gzip) or uudecode to extract it from here.
- A compiled binary of vax780 from SIMH, along with the vmb.exe again from SIMH.
- The Mkdisttap.pl program, you can take the settings from Quasijarus as the names & block sizes match up.
You will need the following files from any 4 BSD archive from the 4.3BSD directory. I have used the files from mirror.cc.vt.edu. You can use whatever method you like to download them, wget, a web browser etc..
stand.gz
miniroot.gz
rootdump.gz
usr.tar.gz
srcsys.tar.gz
src.tar.gz
Preparing for installation
With the files downloaded you will need to uncompress them all and then create the tape file.
The following command will decompress the tape files.
gzip -d *.gz
The tape needs to be created with the mkdisttap.pl program. Simply run the program and redirect it into a file called uwisc.tap .
% ./mkdisttap.pl > uwisc.tap % ls -l uwisc.tap -rw-r--r-- 1 Neozeed None 74337572 Apr 7 19:40 uwisc.tap
Next you will need the boot program. The boot program from 4.2 BSD works with 4.3 BSD. I have uploaded a copy onto this wiki in uuencoded format. To decode it, simply access the article, and copy the contents of the quoted text (the begin/end part INCLUDING the begin & end segments) and save it to a text file. Then you will need to run the uudecode file as follows:
% ls -l boot42.uue -rw-r--r-- 1 Neozeed None 9117 Apr 7 19:42 boot42.uue % uudecode boot42.uue % ls -l boot42 -rw------- 1 Neozeed None 6600 Apr 7 19:42 boot42 % file boot42 boot42: data
Boot 1.
We are going to use the following config file to start the first phase of the installation. Save the following configuration into a file such as 'install.ini'. Since we are going to boot directly into the miniroot the rq1 disk will hold the installation target. Since the 'normal' way to install is to install from tape onto the first disk, we will have to add a device file uppon boot for the second disk, and be sure to point the xtr program to the second disk.
install.ini
set rq0 ra81 at rq0 miniroot set rq1 ra81 at rq1 rq.dsk set rq2 dis set rq3 dis set rp dis set lpt dis set rl dis set tq dis set tu dis att ts uwisc.tap set tti 7b set tto 7b load -o boot42 0 d r10 9 d r11 0 run 2
Booting the emulator
You then simply run the emulator and pass it the config file.
% ./vax780 install.ini VAX780 simulator V3.8-1 RQ: creating new file loading ra(0,0)boot Boot : ra(0,0)vmunix 290188+89696+102928 start 0x12f8 4.3 BSD UNIX #3: Mon Dec 29 11:54:56 CST 1986 tadl@brie:/usr/src/bsd/4.3/sys/GENERIC real mem = 8388608 SYSPTSIZE limits number of buffers to 134 avail mem = 7136256 using 134 buffers containing 524288 bytes of memory mcr0 at tr1 mcr1 at tr2 uba0 at tr3 hk0 at uba0 csr 177440 vec 210, ipl 15 rk0 at hk0 slave 0 rk1 at hk0 slave 1 rk2 at hk0 slave 2 rk3 at hk0 slave 3 uda0 at uba0 csr 172150 vec 774, ipl 15 ra0 at uda0 slave 0 ra1 at uda0 slave 1 zs0 at uba0 csr 172520 vec 224, ipl 15 ts0 at zs0 slave 0 dz0 at uba0 csr 160100 vec 300, ipl 15 dz1 at uba0 csr 160110 vec 310, ipl 15 dz2 at uba0 csr 160120 vec 320, ipl 15 dz3 at uba0 csr 160130 vec 330, ipl 15 Changing root device to ra0a WARNING: clock gained 81 days -- CHECK AND RESET THE DATE! erase ^?, kill ^U, intr ^C #
Restoring the rootdump
From here we are now running from the miniroot. The next steps are as follows:
# cd /dev # ./MAKEDEV ra1 # cd / # disk=ra1 type=ra81 tape=ts xtr
This will create a 'device' for the ra1 disk, then run the xtr program to restore the root dump. Take note that the chgrp & chmod commands are not found, however the install will proceed as normal.
# cd /dev # ./MAKEDEV ra1 syntax error ./MAKEDEV: chgrp: not found ./MAKEDEV: chmod: not found # cd / # disk=ra1 type=ra81 tape=ts xtr Build root file system Warning: 538 sector(s) in last cylinder unallocated /dev/rra1a: 15884 sectors in 23 cylinders of 14 tracks, 51 sectors 8.1Mb in 2 cyl groups (16 c/g, 5.85Mb/g, 1856 i/g) super-block backups (for fsck -b#) at: 32, 11520, Check the file system ** /dev/rra1a ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 2 files, 9 used, 7420 free (20 frags, 925 blocks, 0.3% fragmentation) Rewind tape Restore the dump image of the root Warning: ./lost+found: File exists ** /dev/rra1a ** Last Mounted on /a ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 329 files, 5370 used, 2059 free (3 frags, 257 blocks, 0.0% fragmentation) Root filesystem extracted If this is an 8650 or 8600, update the console rl02 If this is a 780 or 785, update the floppy If this is a 730, update the cassette #
After this stage, I just sync the disk a few times, then halt the emulator (CONTROL+E) and exit out. Now we are ready for stage two.
If this is a 730, update the cassette # sync # sync # sync Simulation stopped, PC: 800018A3 (MTPR #0,#12) sim> q Goodbye %
Boot 2.
Now that the install disk is prepared, we need to use a different config file to reflect us going back to a single disk/tape configuration. The new configuration is as follows:
boot.ini
set rq0 ra81 att rq0 rq.dsk set rq1 dis set rq2 dis set rq3 dis set rp dis set lpt dis set rl dis set tq dis set tu dis att ts uwisc.tap set tti 7b set tto 7b load -o boot42 0 d r10 9 d r11 0 run 2
Booting the emulator
Now boot up the emulator with the boot.ini
% ./vax780 boot.ini VAX780 simulator V3.8-1 loading ra(0,0)boot Boot : ra(0,0)vmunix 290188+89696+102928 start 0x12f8 4.3 BSD UNIX #3: Mon Dec 29 11:54:56 CST 1986 tadl@brie:/usr/src/bsd/4.3/sys/GENERIC real mem = 8388608 SYSPTSIZE limits number of buffers to 134 avail mem = 7136256 using 134 buffers containing 524288 bytes of memory mcr0 at tr1 mcr1 at tr2 uba0 at tr3 hk0 at uba0 csr 177440 vec 210, ipl 15 rk0 at hk0 slave 0 rk1 at hk0 slave 1 rk2 at hk0 slave 2 rk3 at hk0 slave 3 uda0 at uba0 csr 172150 vec 774, ipl 15 ra0 at uda0 slave 0 zs0 at uba0 csr 172520 vec 224, ipl 15 ts0 at zs0 slave 0 dz0 at uba0 csr 160100 vec 300, ipl 15 dz1 at uba0 csr 160110 vec 310, ipl 15 dz2 at uba0 csr 160120 vec 320, ipl 15 dz3 at uba0 csr 160130 vec 330, ipl 15 Changing root device to ra0a Automatic reboot in progress... Tue Apr 7 12:50:53 PDT 1987 Can't open /dev/rhp0a /dev/rhp0a: CAN'T CHECK FILE SYSTEM. /dev/rhp0a: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. Automatic reboot failed... help! erase ^?, kill ^U, intr ^C #
Preparing the disk
Now we have to prep the machine for both the tape, and the type of disk. Type in the following commands.
# disk=hp # name=hp0g;type=rp06 # cd /dev # sh ./MAKEDEV ts0;sync # cd / # newfs $name $type
The output will be like this:
# newfs $name $type Warning: 154 sector(s) in last cylinder unallocated /dev/rhp0g: 291192 sectors in 697 cylinders of 19 tracks, 22 sectors 149.1Mb in 44 cyl groups (16 c/g, 3.42Mb/g, 1536 i/g) super-block backups (for fsck -b#) at: 32, 6744, 13456, 20168, 26880, 33592, 40304, 47016, 53728, 60440, 67152, 73864, 80576, 87288, 94000, 100712, 107424, 114136, 120848, 127560, 134272, 140984, 147696, 154408, 161120, 167832, 174544, 181256, 187968, 194680, 201392, 208104, 214048, 220760, 227472, 234184, 240896, 247608, 254320, 261032, 267744, 274456, 281168, 287880,
Restoring the usr slice
The disk's /usr slice will not have been formatted. We can not go ahead and mount it, and restore the /usr files. Then we unmount the slice, and run fsck to make sure everything is ok.
# mount /dev/$name /usr # cd /usr # mkdir sys # mt rew # mt fsf 3 # tar xpbf 20 /dev/rmt12 # cd sys # mt fsf # tar xpbf 20 /dev/rmt12
Life interrupts again... I'll have to finish later.. but it's just like a 4.3 BSD install.