Atom de OpenSolaris

自宅サーバのOSとしてSXCE(Solaris Express Community Edition)を使用していましたが、SXCEは10月で終了し、OpenSolarisに一本化されるようなのでOpenSolaris 2009.06に乗り替えることにしました。

SXCE終了のアナウンス

環境

シナリオ

OpenSolarisUSBメモリから起動することができます。KnoppixのようにUSBメモリだけでOS環境を使用することもでき、HDDにインストールすることもできます。

手順

USBメモリにOSイメージを書き込む
  1. 1GBくらいの適当なUSBメモリを用意してください。USBメモリの中身はすべて削除されますのでご注意ください。
  2. http://genunix.org/dist/indiana/ からUSB用のイメージファイルをダウンロードしてください。(現時点の最新版は osol-0906-x86.usb)
  3. OpenSolaris Live USB Creator for Windowsをダウンロードしてください。
  4. OpenSolaris Live USB Creator でUSBメモリにOSイメージを書き込んでください。

OSイメージを書き込むとWindowsからはパーティションが認識できなくなります。マイコンピュータなどでUSBメモリを開こうとすると「フォーマットしますか?」と尋ねられますがフォーマットしてはいけません。
気のせいかもしれませんが、書き込めないUSBメモリもあるようでした。

USBメモリから起動する
  1. USBメモリを挿してPCを起動してください。BIOSでブートデバイスの優先順位を変える必要があるかもしれません。
  2. GRUBのブートメニューが表示されます。通常は一番上の項目を選べばいいと思います。
  3. キーボードと言語を尋ねられるので環境にあったものを選択してください。
  4. しばらくするとGNOMEのグラフィカルな画面が起動します。この時点でOSの機能を一通り試すこともできます。

私の環境では特に何も設定しなくても、DHCPIPアドレスが割り振られ、ネットワークに接続できました。また、サウンドも再生できました。何という楽ちん。

インストールする
  1. デスクトップにあるインストーラのアイコンをダブルクリックしてインストーラを起動してください。
  2. インストール時には ZFS mirror の設定ができないので1つのHDDにインストールしてください。
  3. インストール後、USBメモリを抜いてリブートするとHDDからOpenSolarisが起動します。
ZFS mirror 化

OSをインストールしたHDDに、もう1台のHDDをmirrorとして追加します。OSをインストールした方のデバイス名が c8d0s0、もう一方が c9d0s0 とします。デバイス名は環境によって変わってきますので適宜読み替えてください。

  1. fdiskコマンドとformatコマンドでc9d0s0パーティションを作成してください。詳細はmanなどを参照してください。
  2. zpool attach コマンドでmirrorを追加してください。(例: zpool attach -f rpool c8d0s0 c9d0s0)
  3. 追加したHDDにGRUBをインストールします。(例: installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c9d0s0)
  4. zpool status コマンドでミラー化の進行状況を確認できます。
  5. ミラー化が完了したら、念のため、追加した方のHDDからもブートできることを確認してください。
# fdisk c9d0p0
...

# format -e c9d0
...

# zpool attach -f rpool c8d0s0 c9d0s0
Please be sure to invoke installgrub(1M) to make 'c9d0s0' bootable.

# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c9d0s0

# zpool status
  pool: rpool
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scrub: resilver in progress for 0h2m, 4.25% done, 0h48m to go
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c8d0s0  ONLINE       0     0     0
            c9d0s0  ONLINE       0     0     0  2.16G resilvered

errors: No known data errors