読者です 読者をやめる 読者になる 読者になる

開発環境セットアップメモ 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の基本設定

適当にやる。ドライバ落とす→入れる の繰り返し。


Linuxの基本設定

まずグラフィックカードのドライバを入れる。NICやらのドライバはオープンソースの物で良いけど、GPUのドライバはプロプライエタリの物の方が良い。
ATIGPUなので、ATIからごにょごにょと落としてきて入れる。