レスキューディスク不要:CentOS7の mdadm で構築したRAID1 で起動できなくなったら

CentOS7の mdadm で構築したRAID1 で、シャットダウン時にHDDを交換して起動できなくなった場合の復旧方法です。
下記記事では、レスキューディスクを使ったRAID復旧を紹介していましたが、コメント欄にてレスキューディスクが無くとも対処できる方法を教えていただいたので、ここで説明します。

CentOS7の mdadm で構築したRAID1 で起動できなくなったら パソコン鳥のブログ/ウェブリブログ


CentOS7の mdadm で構築したRAID1 で、シャットダウン時に片方のHDDを交換すると、ブート時に、下の画像のようになって、起動できなくなります。

画像


RAID1の2つのHDDのうち、どちらを交換しても同じで、実機でも仮想マシンでも発生します。
mdadm が検知できない状態で、HDD が変わってしまうと発生するようです。



この場合の対処方法です。

なお、先の画面にならずに、「FATAL: No bootable medium found!」と出る場合は、交換した新HDD(をつなげているポート)がブート順の優先度が高かった場合です。

交換した新HDDからは当然、ブートできないので、残りのHDDから起動するようにします。
起動時にBIOS設定画面に入り(たいてい、起動時にDELキーやF2キーを押していれば入れます)、BIOSのブートデバイス指定で、もう1つのHDDから起動するように指定します。




先の画像のコンソール画面で、cat /proc/mdstat を実行します。


Personalities :
md126 : inactive sda1[0][S]
      524288 blocks super 1.2

md127 : inactive sda2[0][S}
      7857152 blocks super 1.2

unused devices: 


この表示では、md126 と md127 が見えています。
以降の説明では md126、md127 で説明しますが、適宜皆さんの環境での値に置き換えて下さい。


次のコマンドを実行します。


mdadm --run /dev/md126
mdadm --run /dev/md127
mdadm --readwrite /dev/md126
mdadm --readwrite /dev/md127


--run によって、RAIDアレイを起動します。
-readwrite で、アレイを読み書き可能にします。


cat /proc/mdstat を実行すると、次のようになります。
raid1 の表示があり、縮退状態ですがRAIDとして動作しています。


Personalities : [raid1] 
md126 : active raid1 sda1[0]
      524288 blocks super 1.2 [2/1] [U_]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md127 : active raid1 sda2[0]
      7857152 blocks super 1.2 [2/1] [U_]
      bitmap:0/1 pages [0KB], 65536KB chunk

unused devices: 



ここで、exit を実行すると、コンソールから抜けて OSブートが継続します。


OSブート後、cat /proc/mdstat を実行します。


Personalities : [raid1]
md126 : active raid1 sda1[0]
      524288 blocks super 1.2 [2/1] [U_]
      bitmap: 1/1 pages [4KB], 65536KB chunk

md127 : active raid1 sda2[0]
      9950208 blocks super 1.2 [2/1] [U_]
      bitmap: 1/1 pages [4KB], 65536KB chunk

unused devices: 


のように表示されます。


ここで、以降、sdX が動作しているHDD、sdY が新規交換したHDDとします。
cat /proc/mdstat の結果が [U_] の場合は、sdX が sda 、sdY が sdb となります。
[_U] の場合は、sdX が sdb 、sdY が sda となります。


sfdisk -d /dev/sdX | sfdisk /dev/sdY
を実行します。
sdX と同じパーティション情報が、sdY(新HDD)にも設定されます。


次のコマンドを実行します。RAIDに新HDDが組み込まれます。


/sbin/mdadm --manage /dev/md126 --add /dev/sdY1
/sbin/mdadm --manage /dev/md127 --add /dev/sdY2



cat /proc/mdstat を実行します。
RAID構築が始まっています。



Personalities : [raid1]
md126 : active raid1 sdb1[2] sda1[0]
      524288 blocks super 1.2 [2/2] [UU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md127 : active raid1 sdb2[2] sda2[0]
      9950208 blocks super 1.2 [2/1] [U_]
      [==>..................]  recovery = 11.7% (1171840/9950208) finish=5.2min speed=27616K/sec
      bitmap: 1/1 pages [4KB], 65536KB chunk

unused devices: 



cat /proc/mdstat を何度か実行し、recovery = XXX % の表記がなくなれば、構築完了です。


root で grub2-install /dev/sdY を実行し、新規交換したHDDにも grub の設定を行います。
(先の説明の通り、sdY は新規交換したHDD のデバイス名(sda やsdb等)とします)

これで、交換した新HDDからも起動できるようになります。






"レスキューディスク不要:CentOS7の mdadm で構築したRAID1 で起動できなくなったら" へのコメントを書く

お名前
メールアドレス
ホームページアドレス
コメント