====== Installation of 2.11BSD on SIMH ======
I assume you have [[http://simh.trailing-edge.com/ | SIMH]] binary "pdp11" available. You can download a binary version for Linux {{pdp11:211bsd:pdp11.gz | from here}}.
For impatient: you can get the resulting root disk image from here:
{{pdp11:211bsd:211bsd.dsk.gz | "211bsd.dsk.gz"}} (gzipped 29 Mbytes, unpacked 170 Mbytes). To boot, ungzip the disk image and use the following SIMH commands:
sim> set cpu 11/44 1M
sim> attach rp0 211bsd.dsk
sim> boot rp0
On boot prompt ':', just hit Enter. On single user prompt, type ^D. Login as root, password is empty.
===== Download files =====
To install 2.11BSD you need a file {{pdp11:211bsd:211bsd.tap.gz | "211bsd.tap.gz"}} (gzipped 28 Mbytes), which contains an image of distribution tape. Ungzip it before installation.
The original 2.11BSD distribution files could be found at
[[https://www.tuhs.org/Archive/Distributions/UCB/2.11BSD/ | The Unix History]] archive, but you will not need them.
The tape contains following files:
^ File ^ Size ^ Contents ^
| 0 | 512*1 | primary tape boot block |
| | 512*1 | boot block (some tape boot ROMs go for this copy) |
| | 512*69 | standalone boot program |
| 1 | 1024*37 | standalone disklabel |
| 2 | 1024*33 | standalone mkfs(8) |
| 3 | 1024*35 | standalone restor(8) |
| 4 | 1024*32 | standalone icheck(8) |
| 5 | 10240*285 | dump of ..root.. file system |
| 6 | 10240*3368 | tar dump of /usr, excepting /usr/src |
| 7 | 10240*519 | tar dump of /usr/src/include and /usr/src/sys |
| 8 | 10240*4092 | tar dump of /usr/src, excepting include and sys |
===== Create disk image =====
Create an RP06 disk image file "root.dsk". Device RP06 has
C/H/S geometry 815/19/22, total 815*19*22/2 = 170335 kbytes.
$ dd bs=1k count=170335 < /dev/zero > root.dsk
Another choice is RP05 with geometry 411/19/22, total 85899 kbytes.
===== Create script for simulator =====
Create file "install.simh":
set cpu 11/44 1M
show cpu
attach tm0 211bsd.tap
attach rp0 root.dsk
boot tm0
===== Run simulator =====
Run SIMH:
$ pdp11 install.simh
You will see:
PDP-11 simulator V3.6-1
Disabling XQ
CPU, 11/44, FPP, NOCIS, autoconfiguration on, 1024KB
44Boot from tm(0,0,0) at 0172522
:
===== Disklabel =====
To start disklabel, enter "tm(0,1)" :
: tm(0,1)
Boot: bootdev=0401 bootcsr=0172522
disklabel
Disk?
Enter "xp(0,0)".
Modify disklabel, create:
- partition 'c' on a whole disk - size 340670, offset 0, type unused
- partition 'b' for swap - size 8360, offset 332310, type swap
- partition 'a' for root - size 332310, offset 0, type 2.11BSD
The manual on using standalone disklabel is available at page 50 of {{pdp11:211bsd:211bsd-setup.pdf | 2.11BSD installation guide}}.
You must see:
3 partitions:
# size offset fstype [fsize bsize]
a: 332310 0 2.11BSD 1024 1024 # (Cyl. 0 - 794)
b: 8360 332310 swap # (Cyl. 795 - 814)
c: 340670 0 unused 1024 1024 # (Cyl. 0 - 814)
Do not forget to write a new label to disk before quit.
After quit you will see boot prompt again:
44Boot from tm(0,0,1) at 0172522
:
===== Create root filesystem =====
To create root filesystem, enter "tm(0,2)":
Boot: bootdev=0402 bootcsr=0172522
Mkfs
file system:
Enter "xp(0,0)". Then enter default values:
file sys size [166155]:
bytes per inode [4096]:
interleaving factor (m; 2 default):
interleaving modulus (n; 209 default):
isize = 41536
m/n = 2 209
Exit called
44Boot from tm(0,0,2) at 0172522
:
===== Restore root filesystem =====
To restore the root file system, type "tm(0,3)":
Boot: bootdev=0403 bootcsr=0172522
Restor
Tape?
For tape, enter "tm(0,5)". For disk, enter "xp(0,0)":
Tape? tm(0,5)
Disk? xp(0,0)
Last chance before scribbling on disk.
Type a carriage return to start. When restore finished, you will see:
End of tape
44Boot from tm(0,0,3) at 0172522
:
===== Boot from disk =====
To boot from disk, type "xp(0,0)unix":
Boot: bootdev=05000 bootcsr=0176700
2.11 BSD UNIX #115: Sat Apr 22 19:07:25 PDT 2000
sms1@curly.2bsd.com:/usr/src/sys/GENERIC
phys mem = 1048576
avail mem = 824640
user mem = 307200
June 8 21:21:24 init: configure system
hk 0 csr 177440 vector 210 attached
ht ? csr 172440 vector 224 skipped: No CSR.
ra 0 csr 172150 vector 154 vectorset attached
rl 0 csr 174400 vector 160 attached
tm 0 csr 172520 vector 224 attached
tms 0 csr 174500 vector 260 vectorset attached
ts ? csr 172520 vector 224 interrupt vector already in use.
xp 0 csr 176700 vector 254 attached
erase, kill ^U, intr ^C
#
You are in single-user Unix now!
To make disk bootable, you need to install an RP06 boot record:
# dd if=/mdec/hpuboot of=/dev/rxp0a count=1
Set date:
# date yymmddhhmm
===== Read /usr =====
Now we need to read /usr from tape.
# cd /dev
# rm *mt*
# ./MAKEDEV tm0
# sync
# cd /usr
# mt rew
# mt fsf 6
# tar xpbf 20 /dev/rmt12
# sync
Done /usr.
===== Read /usr/src =====
Now read sources from tape to /usr/src:
# mkdir /usr/src
# cd /usr/src
# mt -f /dev/rmt12 fsf
# tar xpbf 20 /dev/rmt12
# sync
# mt -f /dev/rmt12 fsf
# tar xpbf 20 /dev/rmt12
# cd /
# chmod 755 / /usr /usr/src /usr/src/sys
# sync
===== Fix fstab and swap =====
Edit /etc/fstab and replace /dev/ra0 by /dev/xp0. Use vi editor.
Set swapping on /dev/xp0b:
# cd /dev
# rm swap drum
# mknod swap b 10 1
# mknod drum b 10 1
# sync
All done. After installation, you will have 80 magabytes free space:
# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/xp0a 163557 82734 80823 51% /
===== How to stop =====
To stop the system cleanly, run:
halt
and wait until SIMH prompt appears:
syncing disks... done
halting
HALT instruction, PC: 000014 (MOV #1,17406)
sim>
Then enter "q".