[INDENT]提示
要确保Disk1/wd1完全是空白的,最好的方式是将用 dd(1) 最前面的几个扇区用0覆盖。这将删除 MBR (i386) 或 Sun disk label (sparc64), 还有NetBSD disk label. 如果你在RIAD配置过程中任何时候出现了一个错误, 你可以参考上述思路随时将这块磁盘恢复为清空状态。
[/INDENT]说明
On sparc64, 使用 /dev/rwd1c 代替 /dev/rwd1d!
代码: 全选
# dd if=/dev/zero of=/dev/rwd1d bs=8k count=1
1+0 records in
1+0 records out
8192 bytes transferred in 0.003 secs (2730666 bytes/sec)
一旦这步完成, 在 i386 上, 校验MBR和NetBSD disk labels. 在 sparc64, 也校验Sun Disk label.
在 i386 上:
代码: 全选
# fdisk /dev/rwd1d
fdisk: primary partition table invalid, no magic in sector 0
Disk: /dev/rwd1d
NetBSD disklabel disk geometry:
cylinders: 19386, heads: 16, sectors/track: 63 (1008 sectors/cylinder)
total sectors: 19541088
BIOS disk geometry:
cylinders: 1023, heads: 255, sectors/track: 63 (16065 sectors/cylinder)
total sectors: 19541088
Partition table:
0: <UNUSED>
1: <UNUSED>
2: <UNUSED>
3: <UNUSED>
Bootselector disabled.
# disklabel -r wd1
[...snip...]
16 partitions:
# size offset fstype [fsize bsize cpg/sgs]
c: 19541025 63 unused 0 0 # (Cyl. 0* - 19385)
d: 19541088 0 unused 0 0 # (Cyl. 0 - 19385)
在 sparc64:
代码: 全选
# sunlabel /dev/rwd1c
sunlabel: bogus label on `/dev/wd1c' (bad magic number)
# disklabel -r wd1
[...snip...]
3 partitions:
# size offset fstype [fsize bsize cpg/sgs]
c: 19541088 0 unused 0 0 # (Cyl. 0 - 19385)
disklabel: boot block size 0
disklabel: super block size 0
现在已确认了第二块磁盘是空的, 在i386平台你必须在第二块磁盘上用从Disk0/wd0获得的值建立MBR。我们必须记住将NetBSD分区标记为激活,否则系统无法启动。 你还必须在Disk1/wd1上建立一个NetBSD的disklabel,这将启用它上面的RAID卷. 在sparc64平台上, 你只要简单地 disklabel(8) 第二块磁盘,这将写入适当的Sun Disk Label.
说明
disklabel(8) 将使用你的shell的环境变量 $EDITOR 变量来编辑disklabel. 默认的是 vi(1)
在 i386 上:
代码: 全选
# fdisk -0ua /dev/rwd1d
fdisk: primary partition table invalid, no magic in sector 0
Disk: /dev/rwd1d
NetBSD disklabel disk geometry:
cylinders: 19386, heads: 16, sectors/track: 63 (1008 sectors/cylinder)
total sectors: 19541088
BIOS disk geometry:
cylinders: 1023, heads: 255, sectors/track: 63 (16065 sectors/cylinder)
total sectors: 19541088
Do you want to change our idea of what BIOS thinks? [n]
Partition 0:
<UNUSED>
The data for partition 0 is:
<UNUSED>
sysid: [0..255 default: 169]
start: [0..1216cyl default: 63, 0cyl, 0MB]
size: [0..1216cyl default: 19541025, 1216cyl, 9542MB]
bootmenu: []
Do you want to change the active partition? [n] y
Choosing 4 will make no partition active.
active partition: [0..4 default: 0] 0
Are you happy with this choice? [n] y
We haven't written the MBR back to disk yet. This is your last chance.
Partition table:
0: NetBSD (sysid 169)
start 63, size 19541025 (9542 MB, Cyls 0-1216/96/1), Active
1: <UNUSED>
2: <UNUSED>
3: <UNUSED>
Bootselector disabled.
Should we write new partition table? [n] y
# disklabel -r -e -I wd1
type: unknown
disk: Disk1
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 16
sectors/cylinder: 1008
cylinders: 19386
total sectors: 19541088
[...snip...]
16 partitions:
# size offset fstype [fsize bsize cpg/sgs]
a: 19541025 63 RAID # (Cyl. 0*-19385)
c: 19541025 63 unused 0 0 # (Cyl. 0*-19385)
d: 19541088 0 unused 0 0 # (Cyl. 0 -19385)
在 sparc64 上:
代码: 全选
# disklabel -r -e -I wd1
type: unknown
disk: Disk1
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 16
sectors/cylinder: 1008
cylinders: 19386
total sectors: 19541088
[...snip...]
3 partitions:
# size offset fstype [fsize bsize cpg/sgs]
a: 19541088 0 RAID # (Cyl. 0 - 19385)
c: 19541088 0 unused 0 0 # (Cyl. 0 - 19385)
# sunlabel /dev/rwd1c
sunlabel> P
a: start cyl = 0, size = 19541088 (19386/0/0 - 9541.55Mb)
c: start cyl = 0, size = 19541088 (19386/0/0 - 9541.55Mb)
[/INDENT]说明
在 i386 上, c: and d: 分区(slices)是预留的。 c: 表示这块磁盘内的NetBSD部分。 d: 表示整个磁盘。 因为我们想把整个NetBSD的MBR分区分配给RAID, 而且因为 a: 在 c:的范围内, 所以 a: 和 c: 分区(slices) 有相同的 size 和 offset 数值及 sizes. The offset 必须开始于一个磁道以外 (在磁盘label中一个扇区数的增量,应对于扇区数/磁道的数值) . 然而在sparc64上, c: 表示在Sun disk label中的整个NetBSD分区, 而 d: 并为预留。也要注意sparc64的 c: 及 a: 不需要从磁盘开始处偏移, 但是如果它们需要偏移, offset必须开始于一个柱面边界 (一个扇区的增量对应扇区数/柱面的数值)。