1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
|
nvalias ofdisk0 /pci/isa/floppy
nvalias ofdisk1 /pci/scsi@c/disk@0,0
...
for each disk, actually it is only necessary for disks that
are to be booted from.
ofdisk0 /pci/isa/floppy
ofdisk1 /pci/scsi@c/disk@0,0
ofdisk2 /pci/scsi@c/disk@1,0
ofdisk6 /pci/scsi@c/disk@5,0
the boot from the floppy.
ok boot ofdisk0:\boot.ppc
Before installing on the harddrive, first a DOS partition needs
to be created.
fat-partition hdiskX 1
This will create a 1 MB dos partition. This is necessary to
boot, The boot loader will be copied here later.
Now boot off of the boot (kc) floppy.
ok boot ofdisk0:\boot.ppc -a
Boot: ofdisk0:/bsd -s
Note: it is necessary to use the -a option and specify
ofdisk0 (devaliased above) to correctly mount the floppy
root disk. Also the floppies are in ISO9660 format, so
it is not possible to mount them read/write, MFS or the like will
eventually be nessary.
At the prompt to insert the filesystem disk,
--
Please insert root disk and press ENTER
--
put in the disk with the inst-20.fs image in the floppy.
Using fdisk, create a disk partition of type 0xa6. (0xa6 may change)
fdisk -u <drive>.
Do not use the -i option, we do not want to replace the bootblock
that openfirmware has put down, just modify the parition information.
the "fat-parition 1 hdiskX" from before will have created a
parition similar to this:
--
MBR Partition 0: sysid 6=0x06 (Primary 'big' DOS (> 32MB))
start 1, size 2048 (1 MB), flag 0x80
beg: cylinder 0, head 0, sector 0
end: cylinder 0, head 0, sector 0
--
sample disklabel output
--
--
Make certain to leave that unmodified and as the active partition.
That parition is currently used to hold the boot loader.
I changed the labeling to have non 1 for heads and sectors/track.
I am not certian if that is correct or wise.
Modify one of the paritions (Use 3 for example)
Create a partition with:
sysid [166]
start [2048*] "Should use sectors/cyl * n to get just greater than 2048."
size [disk size - start]
when the label is written back out to the disk these messages are normal:
--
fdisk: DIOCWLABEL: Inappropriate ioctl for device
fdisk: DIOCWLABEL: Inappropriate ioctl for device
--
example fdisk output
--
Using device /dev/rsd1c:
Parameters extracted from in-core disklabel are:
cylinders=8004 heads=8 sectors/track=16
sectors/cylinder=128 total=1024512
Figures below won't work with BIOS for partitions not in cylinder 1
Parameters to be used for BIOS calculations are:
cylinders=8004 heads=8 sectors/track=16
sectors/cylinder=128
WARNING: BIOS sector numbers start at 1 (not 0)
MBR Partition 0: sysid 6=0x06 (Primary 'big' DOS (> 32MB))
start 1, size 2048 (1 MB), flag 0x80
beg: cylinder 0, head 0, sector 0
end: cylinder 0, head 0, sector 0
MBR Partition 1: <UNUSED>
MBR Partition 2: <UNUSED>
MBR Partition 3: sysid 166=0xa6 (OpenBSD or BSD Big Endian)
start 2176, size 1022336 (499 MB), flag 0x00
beg: cylinder 17, head 0, sector 1
end: cylinder 836, head 7, sector 16
--
Now it is necessary to create a UNIX disklabel for the drive
(Would be nice if /etc/disktab had some ready)
The easiest way to do this currently is to take the output of
disklabel sdX
and cut and paste it on another machine to edit it into the desired
disklabel.
Then using a trick I found, cut and past the edited label back into
the other machine after running the command
disklabel -R sdX /dev/tty
NEVER use the "-r" option
Also make certain to check the label just written
with "disklabel sdX"
Note: only paste a few lines of the disklabel into the console
at a time, Otherwise the input buffer can overflow and lose characters.
Make certain to keep the partition 'd' around. The only
change to possibly make to it would be make it's type MSDOS?
example disklabel output
---
type: unknown
disk:
label:
flags:
bytes/sector: 512
sectors/track: 16
tracks/cylinder: 8
sectors/cylinder: 128
cylinders: 8004
total sectors: 1024512
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# size offset fstype [fsize bsize cpg]
a: 56704 2176 4.2BSD 512 4096 64 # (Cyl. 17 - 459)
b: 102400 58880 swap # (Cyl. 460 - 1259)
c: 1024512 0 unused 0 0 # (Cyl. 0 - 8003)
d: 2048 1 unused 0 0 # (Cyl. 0*- 16)
g: 460800 161280 4.2BSD 512 4096 64 # (Cyl. 1260 - 4859)
h: 402432 622080 4.2BSD 512 4096 64 # (Cyl. 4860 - 8003)
---
It probably would be nice to eventually make the install kernel
have option MFS or the rd device, so that "disklabel -e" could be used.
Now newfs the newly created FFS partitions.
Do not newfs the parition d (size 2048)
mount /dev/sdXa /mnt
mkdir /mnt/usr
mount /dev/sdXg /mnt/usr
(network installtion, CDrom or other do as necessary)
ifconfig ofnet0 inet XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX
mount third parition (/usr/src?) as /tmp
mount /dev/sdXh /tmp
cd /tmp
ftp XXX.XXX.XXX.XXX
cd <snapshot-dir>
get ...
get ...
Unfortunately since /tmp is not writable, mget will not work.
after all of the files are transfered
umask 0
cd /mnt
for file in /tmp/*.tar.gz
do
echo ${file}
gzip -dc ${file} | pax -r -pe
PATH=/mnt/bin:/mnt/sbin:/mnt/usr/sbin:/mnt/usr/bin:$PATH
mount -t msdos /dev/sdXd /mnt/mnt #this doesn't work, so ...
mount_msdos /dev/sd2d /mnt/mnt
cp /mnt/usr/mdec/boot.ppc /mnt/mnt
umount /mnt/mnt
gzip -dc /tmp/bsd.gz >/mnt/bsd
|