#freeze (このページではPC-UNIXのソフトウェアraidに関する情報を扱っています) TITLE:Tips: 一旦、1台のHDDでraid1を構築して、後から2台構成のraid1に変更する手順(mdadmの場合) RIGHT:初出 2006-8-29 RIGHT:最終更新 2006-9-3 LEFT: こういう表現で良かったでしょうか? #br こうとも言えます。 -データの入ったraidでない1台のHDDに、HDDを追加してraid1にする手順(mdadmの場合) -raid1を構成する予定の2台のHDDのうち、1台にraidアレイに格納したいデータが入っている場合のraid1構成手順(mdadmの場合) もう十分ですね。 このページに書いてある内容は他からも得ることができます。manに、デバイス名を指定する場所に代わりにmissingと指定すれば良いとちゃんと載っています。しかしraid用語を良く理解していないと、それをいきなり正しく拾い上げるのは難しいと思いますのでこのページを用意しました。 #br 当ホームページでは独自情報を含まないTipsはその他カテゴリーに分類することにしています。HOWTO物はあまり書きたくないのですが、需要が多そうに思えるのに掲載例が簡単に見つからないので書くことにしました。 #br ここではmdadmの場合のみ取り上げます(私が現在常用しているRedhatEL系OSでデフォだから)。 #br 大事な部分はこれだけです。 mdadm -C /dev/md0 -l1 -n2 /dev/hdd1 missing(最も大切なのはこの一語) mdadm -a /dev/md0 /dev/hda1 md0, hdd1, hda1は例えばの値 #br 一連の流れで説明してみます。 既に、1台のHDDにLinux OSをraidなしでインストール済みだとします。 Linuxパーティションは/dev/hda1だとします。 新しいHDDは/dev/hddだとします。 #br 先ず、fdiskで/dev/hddに/dev/hdd1パーティションを作ります(その実際は省略)。 #br その後の手順の1例を一気に示します。(繰り返しますが、あくまで例です。) ※その前にgrubのブートフロッピーを作成しておくことを推奨します。 # mdadm -C /dev/md0 -l1 -n2 /dev/hdd1 missing # mkfs.ext3 /dev/md0 (例えば) # tune2fs -c0 -i0 -m3 /dev/md0 (例えば) # mkdir /mnt/md0 # mount /dev/md0 /mnt/md0 # cp -ax / /mnt/md0 (例えば) # cd /mnt/md0/etc # vi fstab (LABEL=hogeもしくは/dev/hda1と書いてあるところを/dev/md0と修正する) # cd /mnt/md0/boot/grub # vi grub.conf (root=LABEL=hogeもしくはroot=/dev/hda1と書いてある ところをroot=/dev/md0と修正する) # rm /mnt/md0/boot/initrd-hoge.img # mkinitrd /mnt/md0/boot/initrd-hoge.img 2.6.hoge (raid1が稼動中にinitrdを作成する) # grub (引数なしで起動) grub> root (hdd1,0) (2番目のHDDの1番目のパーティション(ここでは/dev/hdd1) にある、grubディレクトリを読めとgrubに指定している) grub> setup (hd0) (1番目のHDDのMBRにstage1を書き込めとgrubに指定している) grub> quit 再起動(ちょっと怖い、だからgrubブートフロッピーの作成は絶対大事!) (2番目のHDDからブートする方法は説明が長くなるので省略) # mdadm -a /dev/md0 /dev/hda1 (この時既に/dev/hda1は使用していないから、) 同期が済んだ後、好みでgrubを/dev/hda1をrootにして再インストール COLOR(BLUE):実は私の場合、HDD代々、grubのstage1はMBRにインストールせず、各HDDに設けた小さな専用パーティション(の先頭)にインストールしています。(/bootとして確保したパーティションをgrubの為だけに使用しています。) #br #br * ご要望、ご意見、質問を下のフォームにどうぞ&br;(でもここより、[[掲示板>board]]や[[書き込みフォーム>form]]のページに書いて頂いた方が気づき易いと思います。) [#ybdcaef9] #areaedit(nofreeze,noauth,btn:[修正(書き間違った場合にご利用下さい)]) #comment #areaedit(end)