NetBSD/amd64 on Phenom X3 on Asrock A780FullDisplayPort

長い名前の main board だ。

最初 NetBSD 4.0-STALBE では AMD SB780 に対応してなくてはまった。 CentOS試したり,Debian試したり,紆余曲折があったが結局 BIOS設定で SATA コントローラを AHCI にしたらNetBSDの ahcisataでちゃんと認識したので全く問題なかった。ただ, GENERICカーネルでの起動でこけるので以下のエントリをコメントアウト。

##pckbc*        at acpi?                # PC keyboard controller
##ohci* at pci? dev ? function ?        # Open Host Controller
##ohci* at cardbus? function ?  # Open Host Controller
##usb*  at ohci?

今回のマシンは Seagate ST31000340AS (1GB-SATA) x2 でセットアップ。 いつものように,raidframe による RAID1 でいきましょー。 慣れると raidframe 楽ですな。Debianのインストーラに Software RAID の設定ができるようになってたけど,一度間違って設定したのが 直せなかったり意外に楽ではなかった。間違っても即最初から やりなおせるからやっぱCUIでやるのが楽だなあ。

で毎度おなじみの手順だが今回初めて disklabel の -i オプションを 知って試したら,あぁらくちん。

  1. NetBSD/amd64 のインストール

    ふつーにインストールCDからwd0に入れるだけ。どうせあとで RAID1に載せ替えるので,パーティション設定画面では

    くらいにしとくとnewfsが早く終わる。

  2. wd1に片肺RAID1を構築
    fdisk -iu wd1
    (パーティション0をNetBSDに)
    disklabel -Ie wd1
    (初期ラベルを作ってもらったらZZですぐ抜ける,やんなくてもいいかも)
    disklabel -i wd1
    partition> a
    Filesystem type [?] [unused]: RAID
    Start offset ('x' to start after partition 'x') [0c, 0s, 0M]: 
    Partition size ('$' for all remaining) [0c, 0s, 0M]: 22g
     a:  46137344        63       RAID           # (Cyl.      0*- 45771*)
    partition> e
    Filesystem type [?] [unused]: RAID
    Start offset ('x' to start after partition 'x') [0c, 0s, 0M]: a
    Partition size ('$' for all remaining) [0c, 0s, 0M]: $
     e: 1907387761  46137407       RAID          # (Cyl.  45771*-  1938020
    partition> W
    Label disk [n]? y
    partition> Q
    (いえ〜いらくちーん)
    raidctl -C raid0.conf raid0
    raidctl -I 2008092500 raid0
    raidctl -iv raid0
    disklabel -i raid0
    (同じ要領でパーティション作成)
    newfs /dev/rraid0a
    newfs /dev/rraid0e
    (とnewfsしまくったらまうんとしまくる)
    mount -o softdep /dev/raid0a /mnt
    mkdir /mnt/usr
    mount -o softdep /dev/raid0e /mnt
    (まうんとしたらこぴー)
    cd /
    tar -cf - --one-file-system . usr|tar xpfC - /mnt
    (RAIDのroot属性がyesなので次にブートすると /dev/raid0a が / とfstabに)
    vi /mnt/etc/fstab
    (wd0をぜんぶraid0に書き換えまくる)
    tar -cf - --one-file-system . usr|tar xpfC - /mnt
    (続いてブートプログラムをインストール)
    installboot -v /dev/rwd1e /usr/mdec/bootxx_ffsv1
    shutdown -r now
    

あとは wd0 のほうのdisklabelをwd0と同じにして

raidctl -a /dev/wd0a raid0
raidctl -F component0 raid0

としておとなしく再構築が終わるのを待つのみ。

実はraid0というのは例のためで実際にはraid8とraid9にした。 raidframeの自動構築って結構便利なことが体験できたので 手持ちのマシン群で違う番号を割り当てておこうと思ったのだ。 そうすりゃあるマシンのマザーボードや電源がこわれたときに 外したHDDを2個セットで別のマシンに繋いでリブートすれば, 別のマシンの持っているRAID1セットと干渉せずに RAID1情報自動構築して上がってくれるから。 でも番号ってのがあんまり美しくないな。 なんか別にいい方法ある? gmirrorみたいにボリューム名で 独立して構築してくれるのはすっきり行くんだけどねえ。で,結局 こんな感じになった。

df -htffs
Filesystem    Size      Used     Avail Capacity  Mounted on
/dev/raid8a   1.0G       36M      922M     3%    /
/dev/raid8f   2.0G      958K      1.9G     0%    /var
/dev/raid8e   7.9G      376M      7.1G     4%    /usr
/dev/raid8g   9.8G       10M      9.3G     0%    /usr/local
/dev/raid9e   118G      339M      112G     0%    /opt
/dev/raid9f   777G      2.0K      738G     0%    /x

おおお,777だ。いいことありそう。その分ここまで苦労したけど。

さて次はgrub入れてXenか…… うわあああああ,しまったー,grubは NetBSD/i386 が必要なのを 忘れていたあああ(;_;)。また今度。