以前にUbuntu 8.04に付けておいたHDDの引越しをする時に、/dev/md0と/dev/md1に相当するディスクを付けたままUbuntu 8.04を新規インストールしたために'/'に相当するデバイスが/dev/md2と番号が飛んでいる状態になっています。
いまは古いmd0, md1デバイスを削除しているので、番号を飛ばしたまま/dev/md2のみを使っている状態です。それでも古い情報が"/etc/mdadm/mdadm.conf"に残っているので、他のマシンでRAIDで使っていたHDDをeSATA経由で接続などすると微妙に面倒な状態になっています。
古いmd0, md1の情報をmdadm.confから削除してもよかったのですが、今回は/dev/md0を'/'として使うべく変更を加えてみました。
mdadm.confの編集
まずはRAIDの構成情報が入っているファイルを修正します。 ”/etc/mdadm/mdadm.conf”の修正前はこんな感じでした。
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=d082ac73:3124c6d4:e368bf24:bd0fce41 ARRAY /dev/md2 level=raid1 num-devices=2 UUID=4b794d70:02464c5d:990747c6:3412373c ARRAY /dev/md0 level=raid1 num-devices=2 UUID=cd55e5a4:25c64e41:e368bf24:bd0fce41
この中から現在使っていないmd0, md1の行を削除して、md2をmd0にrenameします。
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=4b794d70:02464c5d:990747c6:3412373c
GRUB menu.listの編集
カーネルのオプションで、どのデバイスを'/'として扱うのか記述する個所があります。 ”/boot/grub/menu.lst”ファイルは通常カーネルのパッケージを最新版にするときに再生成されるなど、自動的にメンテナンスされています。
古いカーネル設定でも起動できないと微妙に不便だったりするので、古い設定を残しつつ/dev/md0を使うように変更しておきます。 変更前の設定ファイル。
title Ubuntu 8.04.3 LTS, kernel 2.6.24-24-generic root (hd0,1) kernel /boot/vmlinuz-2.6.24-24-generic root=/dev/md2 ro quiet splash initrd /boot/initrd.img-2.6.24-24-generic
単純にmd2をmd0にしても良いのですが、問題があった場合に古い設定で起動できるようにinitrdファイルを残しつつ、エントリを増やします。
title Ubuntu 8.04.3 LTS, kernel 2.6.24-24-generic on md0 root (hd0,1) kernel /boot/vmlinuz-2.6.24-24-generic root=/dev/md0 ro quiet splash initrd /boot/initrd.img-2.6.24-24-generic title Ubuntu 8.04.3 LTS, kernel 2.6.24-24-generic root (hd0,1) kernel /boot/vmlinuz-2.6.24-24-generic root=/dev/md2 ro quiet splash initrd /boot/initrd.img-2.6.24-24-generic.old
元々のエントリ(下段)は残しつつ、initrdファイル名を微妙に変更しています。 新しいエントリ(上段)はmd0を'/'にするように指定しています。
initrdの再作成
UbuntuというかDebian系列ではinitrdファイルの再生成には mkinitramfs を使用します。 使い方は単純。
$ cd /boot $ sudo cp -ip initrd.img-2.6.24-24-generic initrd.img-2.6.24-24-generic.old $ sudo mkinitramfs -o initrd.img-2.6.24-24-generic 2.6.24-24-generic
"2.6.24-24-generic"に相当する文字列は$ uname -rコマンドの戻り値と同じで、現在動いているカーネルのバージョンを示していて、パッケージの管理やらいろいろ使われるキーワードです。
さいごに
あとは再起動をすれば、initrdファイルの中から mdadm.conf が読み込まれて/dev/md0が作成され、その/dev/md0が'/'としてマウントされる事になります。
ここで/dev/md0が'/'にマウントされるためには、/etc/fstabの中で"/dev/md2"といったデバイス名を使わずにext3ファイルシステムのUUIDを使用している事が条件になります。
# /dev/md2 UUID=81f555da-76a2-4e7f-96e4-ed59ad010b3d / ext3 relatime,errors=remount-ro 0 1
おもいついてから終るまで30分ぐらいで終ったけれど、意外に落とし穴が多いかもしれない。 今日得たものは、番号が変ったデバイスファイルと、mdadm周りに対するチョットした知識でした。
0 件のコメント:
コメントを投稿