We have three SPARC64 machines at kmx.io. One is a SUN Entreprise 5400, and we have two SUN Ultra 60 of which one is broken : the bios needs an update which is a pain in the ass, I have to remove the power supply to activate a jumper on the motherboard directly. Both machines run OpenBSD 7.6-current on RAID1.
To boot OpenBSD on a SPARC64 with RAID1, you need to follow special steps. You need to use disklabel to create a non-raid partition of 2Gb before a RAID partition of the rest of the disk.
# /dev/rsd0c:
type: SCSI
disk: SCSI disk
label: X
duid: X
flags: vendor
bytes/sector: 512
sectors/track: 127
tracks/cylinder: 16
sectors/cylinder: 2032
cylinders: 1907730
total sectors: 3907029168 # total bytes: 1863.0G
boundstart: 0
boundend: 3907029168
16 partitions:
# size offset fstype [fsize bsize cpg]
a: 2.0G 0 4.2BSD 2048 16384 12960 # /sd0a
b: 2.0G 20972272 swap
c: 1863.0G 0 unused
d: 1851.0G 25168352 RAID
The non-raid partitions (sd0a and sd1a) need to contain two files : ofwboot and bsd.
Create the RAID1 :
# bioctl -c 1 -l /dev/sd0d,/dev/sd1d softraid0
softraid0: raid level 1 attached as sd2
Inside the RAID partition you can call disklabel again to create more partitions. Here is my usual partition scheme for OpenBSD :
# disklabel -E sd2
a a
offset: [XXX]
size: [XXX] 2G
type: [4.2BSD]
mount point: /
a b
offset: [XXX]
size: [XXX] 2G
type: [swap]
a d
offset: [XXX]
size: [XXX] 10G
type: [4.2BSD]
mount point: /tmp
a e
offset: [XXX]
size: [XXX] 10G
type: [4.2BSD]
mount point: /var
a f
offset: [XXX]
size: [XXX] 10G
type: [4.2BSD]
mount point: /usr
a g
offset: [XXX]
size: [XXX] 2G
type: [4.2BSD]
mount point: /usr/X11R6
a h
offset: [XXX]
size: [XXX] 20G
type: [4.2BSD]
mount point: /usr/local
a j
offset: [XXX]
size: [XXX] 10G
type: [4.2BSD]
mount point: /usr/src
a k
offset: [XXX]
size: [XXX] 10G
type: [4.2BSD]
mount point: /usr/obj
a l
offset: [XXX]
size: [XXX] 10G
type: [4.2BSD]
mount point: /usr/ports
a m
offset: [XXX]
size: [XXX] 10G
type: [4.2BSD]
mount point: /usr/ports/pobj
a n
offset: [XXX]
size: [XXX] 10G
type: [4.2BSD]
mount point: /usr/xenocara
a o
offset: [XXX]
size: [XXX] 10G
type: [4.2BSD]
mount point: /usr/xobj
a p
offset: [XXX]
size: [XXX] *
type: [4.2BSD]
mount point: /home
Then run installboot :
# installroot -v sd2
Using / as root
installing bootstrap on /dev/rsd2c
using first-stage /usr/mdec/bootblk, second-stage /usr/mdec/ofwboot
boot block is 6888 bytes (14 blocks @ 512 bytes = 7168 bytes)
sd2: softraid volume with 2 disk(s)
sd2: installing boot loader on softraid volume
sd0d: installing boot blocks on /dev/rsd0c
copying /usr/mdec/ofwboot to //ofwboot
writing boot block to disk /dev/rsd0c
sd1d: installing boot blocks on /dev/rsd1c
copying /usr/mdec/ofwboot to //ofwboot
writing boot block to disk /dev/rsd1c
The non-raid partitions (sd0a and sd1a) need to contain two files : ofwboot and bsd. Mount the boot partitions and copy files :
# mount /dev/sd0a /mnt
# cp /ofwboot /bsd /mnt/
# umount /mnt
# mount /dev/sd1a /mnt
# cp /ofwboot /bsd /mnt/
# umount /mnt