開発環境セットアップメモ OS編
BIOSがトンだことを受けて、新マザーボード・新CPUの新マシン。ついでにOSも総入れ替え。
新開発環境をセットアップ。後学のためにメモっておく。
計画
HDDは、AHCIのSerial ATAコントローラに接続された物が4台(すべて同種)ある。160GB×4=640GB
- OSはWindows XP(32bit)とMandriva Linux 2007(i586)
- メインはLinuxで、Windowsはオマケ
- Linuxのシステム領域とデータ領域はRAID10+LVMに載せる
- Linuxの作業用領域とswapはRAID0に載せる
パーティション割り
Windows XPはあまりにレガシーで、いろいろ制約があるので困る。しょうがないのでWindowsに併せてパーティションを作ってやる。
HDD 4台は全部同じパーティションレイアウトにする。
インデックス | パーティションID | サイズ | 用途 |
パーティション1 | NTFS | 30GB | Windowsシステム&データ用 |
パーティション2 | Linux | 1GB | /bootとそのフェイルオーバー |
パーティション3 | Linux RAID | 100GB | Linuxシステム&データ(LVM) |
パーティション4 | Linux拡張パーティション | 24GB | |
パーティション5 | Linux RAID | 22GB | Linux作業用領域 |
パーティション6 | Linux RAID | 2GB | Linux swap |
1台目のHDDのパーティション1にはブート可能フラグを付けておく。
Windowsインストール
1台目のHDDのパーティション1にWindowsを入れる。AHCIのドライバをFDに入れておいて、起動時に読み込ませる。その他は普通に。
Linuxインストール
Mandriva Linux 2007のインストーラは、RAID10に対応していない。と言うことでちょっと面倒になる。
インストーラでは、まずパーティション3をRAID1(md0)、パーティション5をRAID0(md1)、パーティション6もRAID0(md2)にする。
md0にLVMを作成し、適当なサイズのLVを作る。/hogeにでもマウントさせておく。
md1にLVMを作成し、2GBほどのLVを作る。これをext3でフォーマットして、/にする。
md2は全部swap。
1台目のHDDのパーティション2を/bootにする。
md1のLVMに、/homeを作成。
/usrとか/varとかは分けないことにした。
これでインストール開始。MBRは当然上書きで。
これで、ほどよく設定されたmdadm.confやlvm.confが作成済みのLinuxがインストールされる。おいしく手抜く。
インストールが終わったら、VIVERで起動する。
起動したらRAIDとLVMをアクティブにする。
modprobe raid0 modprobe raid1 mknod /dev/md0 b 9 0 mknod /dev/md1 b 9 1 mdadm --assemble /dev/md0 /dev/sd[abcd]3 mdadm --assemble /dev/md1 /dev/sd[abcd]5 vgscan vgchange -a y # いろいろ確認 vgchange -a n
まずRAID1なmd0を削除して、RAID10で作り直す。このmd0にLVMを作り、先ほどLinuxをインストールしたmd1上のLVとまったく同じサイズのLVを作る。ここにmd1のLVをddでコピーする。
同様に/homeもコピーする。
mdadm -S /dev/md0 mdadm --create /dev/md0 -c 64 --level=10 --raid-devices=4 /dev/sd[abcd]3 pvcreate /dev/md0 vgcreate vgcosmo /dev/md0 vgchange -a y vgcosmo lvcreate -L2G -nlvsys vgcosmo lvcreate -L1G -nlvhome vgcosmo lvdisplay # 確認 dd if=/dev/vgtmp/lvs of=/dev/vgcosmo/lvsys dd if=/dev/vgtmp/lvh of=/dev/vgcosmo/lvhome
コピーした先のLVをマウントし、mdadm --detailなどなどを参考にして、fstabやmdadm.confをさくっと修正する。
また、/bootにできているinitrdを併せて作り直す。RAID0のドライバをRAID10にする、LVの名前を修正するなどなど。grubの設定も修正。
LVMとRAIDを停止して再起動。
vgscan -a n mdadm --stop /dev/md0 mdadm --stop /dev/md1
RAID 10上のLinuxが起動するかどうかを確認。起動できたら、/bootの内容を2、3,4台目のHDDのパーティション2にもコピーしておく。
さらにGRUBのstage1をすべてのHDDのMBRにインストールする。これで/bootのフェイルオーバーも完了。
Windowsの基本設定
適当にやる。ドライバ落とす→入れる の繰り返し。