ZFS プールの HDD を再利用
自宅 Solaris サーバの ZFS rpool の HDD 構成を変更。以前は別の ZFS プールに使用していた HDD の rpool 組み入れを目論む。
rpool で使用する場合はブート用スライスを確保する必要がある(本当に必須なのかは個人的には「?」。後で調べようと思ってすっかり放置状態....)のだけど、そもそもどの程度ブート用スライスを確保すればよいのかわからなかったので:
- USB でブートし、対象 HDD に OpenSolaris をインストール
- シャットダウン後に対象 HDD を取り外し
- 通常起動用の HDD でブート
- 対象 HDD を接続(= SATA ホットプラグ)し、cfgadm で有効化
- zpool attach で対象 HDD のスライス0(= s0)を組み入れ
という手順を実施。
組み込み予定 HDD 2本のうち1本は無事に組み込みが成功したので、残りの HDD は「組み込み済み HDD の prtvtoc 出力を使って fmthard でスライス作成」作戦で行く事に。...が、なんか上手く書き込めない > fmthard
「スライス2(= HDD 全域指定)がアレだよ?」みたいなメッセージが出るのだが、原因を特定できるほどの情報は無し。そういえば、もう一本の HDD の prtvtoc 出力にはスライス2が無いなぁ。
どうせ消えて困るデータは入ってないので fdisk からやり直すか?ということで、format コマンドから fdisk を掛けようとしたら .... あれ? EFI パーティション?あ、そーゆー事か! > fmthard の失敗
つまり、ZFS でプール作成する際に HDD 全体を組み込み対象にすると、FDISK パーティションではなく、EFI パーティションになっちゃうのね。
ということで、ZFS のプールに使用されていた HDD を再利用する場合は要注意。