wiki:Ubuntu804RaidResize

Ubuntu 8.04LTSでRAIDディスクの増量をしたメモ

Ubuntu 8.04LTSなマシンでRAID1のディスクの増量をしたら、とても苦労したのでとりあえずメモ。 手順書にはなっていません。

普通だったら、以下の手順で増量できる。

  1. 新しいドライブをUSB経由で外付けする。
  2. fdiskする。
  3. RAID1の構成ドライブ数を増やして参加させる。
  4. リビルドを待つ。
  5. 現在のRAID1から外し、別のRAID1として構成する。
  6.  RAIDのリサイズ(bitmapのクリアに注意)
  7. 中に入っているファイルシステムのリサイズ。
  8. GRUBをMBRに入れる。
  9. シャットダウン
  10. 外付けだったのを内蔵1台目にする。
  11. 2台目には、もう1台の新品ドライブを入れる。
  12. 起動
  13. 2台目をfdisk、RAIDに参加させる。
  14. 2台目にもGRUBを入れる。

2TB問題

買ってきたドライブが2TBを超えていた。fdisk、つまりMS-DOS方式のディスクラベル(パーティションテーブル)が使えない。 ディスクラベルとして、GPT(GUIDパーティションテーブル)を使う。

parted

GPTを扱うにはpartedが必要。 partedって、CUIがバグバグで、うまいこと設定できなかったりして苦労。

fdiskで言うところの「Linux RAID Autodetect」は存在しない。 パーティションに入れる予定のファイルシステムタイプ(ext3)を指定してパーティションを作り、「set 1 raid on」などとして「raid」フラグを立てる。

GRUB

旧来のGRUB(GRUB 0.97とか)では、GPTを扱えない。 GRUB2(GRUB 1.96とか)に変更する必要がある。  変更手順はここに書いてある。

GRUB2とRAID

GRUB2ならRAIDに正式対応しているから、これ幸い、と思っていたら落とし穴があった。 Ubuntu 8.04LTSにあるGRUB2は、ちょっと古くて、RAIDにちゃんと対応していない。 これで悩むこと数時間。 Ubuntu 10.04LTSにアップグレードする必要があった。

BIOSブートパーティション

GRUB2って初めて使ったんだけど、 BIOSブートパーティションっていうパーティションが必要なのね。 おかげで、パーティションを全て壊して作り直し→RAIDリビルドし直しになった。

GUID

ちゃんとわかってないんだけど、RAID1のドライブを逆順にすると、ファイルシステムのGUIDが変わってしまう(mdのGUIDではない)。 このため、ブート時にパーティションが見つからなくてエラーになる。 でも、grub-installでは修正されない。

スワップ

パーティションをスワップに使っている状態のままリサイズすると大変に危険なので注意。 ただし、partedだと、使用中のパーティションは削除できないのでちょっと安心。

今回使ったツール類

  •  Super GRUB Disk USBメモリに入れて使用。本体のGRUBが壊れてても起動できる。
  • Ubuntu 10.04 Serverのインストールディスク(レスキューっていう選択肢がある)。

(2011/1/4 - sgk)