NetBSD7: GPT + raidframe root

Over 2TBのHDDでは fdisk 使えない。gpt で。

以下、sd0 と sd1 2台構成を raidframe にして、そこから root パーティション起動させるための設定のダイジェスト。 すでに別ディスク(たとえばwd0)にNetBSDがインストールしてあってそこから起動して sd0 と sd1 にミラーを構築してブートできるようにする手順を想定。

: sd0にGPTラベルを作成し、RAIDframe用領域を割り当てる
gpt create sd0
gpt add -i 1 -b 80 -t raid sd0
dkctl sd0 addwedge sd0root 80 セクタサイズ raidframe
gpt biosboot -i 1 sd0

: sd1も同様
gpt create sd1
gpt add -i 1 -b 80 -t raid sd1
dkctl sd1 addwedge sd1root 80 セクタサイズ raidframe
gpt biosboot -i 1 sd1

: いつものように raidctl でRAID-1を構成(dev=raid0)
cat<EOF >raid0.conf
START array
1 2 0
START disks
/dev/dk0
/dev/dk1
START layout
128 1 1 1
START queue
fifo 100
EOF
raidctl -C raid0.conf raid0
raidctl -I 2016020600 raid0
: raid0デバイスにルートパーティションフラグを付ける。softrootおすすめ。
raidctl -A softroot raid0

: raid0内にパーティションを切ってマウントして既存システムをコピー
disklabel -i -I raid0
newfs -O 2 /dev/rraid0a
mount -o noatime,async /dev/raid0a /mnt
cd /
tar lcf - .|tar xpfC - /mnt
vi mnt/etc/fstab	# wd0をraid0に書き変える

: dk0, dk1 にブートコードを書き込む
installboot -v /dev/rdk0 /usr/mdec/bootxx_ffsv2
installboot -v /dev/rdk1 /usr/mdec/bootxx_ffsv2

shutdown -r now

sd0かsd1を選んで起動。はい行けました。なんだ、こんな簡単だったのか。

3/3追記: GPTでのRAID構築時の注意 → 2016/03/03