テクノロジーガイド

RAID1:故障したHDDの交換とテスト

1 min read システム運用 更新されました 09 Oct 2025
RAID1の故障HDDを置換して復旧する手順
RAID1の故障HDDを置換して復旧する手順

RAID1で故障したディスクを置換し、同期を完了してブートローダーを再インストールする手順です。mdadmでデバイスをfail/removeし、パーティションをsfdiskでコピーし、mdadmで再追加して同期完了を確認します。

前提条件

  • 対象はソフトウェアRAID1です。mdadmコマンドに慣れていることを想定します。
  • ここでは例として /dev/sdb が故障した想定です。/dev/sda が故障する場合はデバイス名を入れ替えて読んでください。

重要: 実機で操作する前に、可能ならテスト環境で手順を確認してください。誤操作でデータを失う可能性があります。

故障をシミュレーションする

任意の方法で故障を再現できます。電源を落として物理的にディスクを抜くか、ソフト的にデバイスを失効させます。例:

mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md1 --fail /dev/sdb2
mdadm --manage /dev/md2 --fail /dev/sdb3

続けて取り外しを指示します:

mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm --manage /dev/md1 --remove /dev/sdb2
mdadm --manage /dev/md2 --remove /dev/sdb3

システムをシャットダウンします:

shutdown -h now

故障ディスクの代わりに新しいHDDを装着し、システムを起動します。システムは通常通り起動するはずです。

配列の状態を確認する

起動後、配列がデグレードしていることを確認します:

cat /proc/mdstat

期待される出力の例:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sda1[0]
      104320 blocks [2/1] [U_]

md1 : active raid1 sda2[0]
      513984 blocks [2/1] [U_]

md2 : active raid1 sda3[0]
      4618560 blocks [2/1] [U_]

unused devices: 
[root@server1 ~]#

また fdisk -l で新しいディスクがパーティションテーブルを持たないことを確認できます。例:

fdisk -l

(出力は元の例参照)

パーティションテーブルをコピーする

故障していないディスク(例: /dev/sda)のパーティションテーブルを新しいディスク(/dev/sdb)に複製します:

sfdisk -d /dev/sda | sfdisk /dev/sdb

エラーが出る場合は –force オプションを試します:

sfdisk -d /dev/sda | sfdisk --force /dev/sdb

成功すると、新しいディスクに同じパーティション構成が書き込まれます。

古いRAID情報を消去して再追加する

新ディスクの各パーティションに残っている可能性のあるスーパーブロック情報を消します:

mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
mdadm --zero-superblock /dev/sdb3

その後、各mdデバイスに新しいパーティションを追加します:

mdadm -a /dev/md0 /dev/sdb1
mdadm -a /dev/md1 /dev/sdb2
mdadm -a /dev/md2 /dev/sdb3

同期の監視

同期中は /proc/mdstat を監視します:

cat /proc/mdstat

同期が進行中の例:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
      104320 blocks [2/2] [UU]

md1 : active raid1 sdb2[1] sda2[0]
      513984 blocks [2/2] [UU]

md2 : active raid1 sdb3[2] sda3[0]
      4618560 blocks [2/1] [U_]
      [===>.................]  recovery = 15.4% (715584/4618560) finish=4.9min speed=13222K/sec

unused devices: 
[root@server1 ~]#

完了後は全て [UU] になっていることを確認します。

ブートローダーの再インストール

必要ならGRUBを両方のディスクにインストールします。grubコマンドで対話的に作業する例:

grub

grubプロンプトで:

root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit

これで両方のディスクから起動可能になります。

確認と後片付け

  • 再起動して問題なく起動することを確認します。
  • mdadm –detail /dev/mdX で各アレイの状態を確認します。
  • 監視ツールや通知設定がある場合は、復旧完了をトリガーしておきます。

トラブルシューティングのポイント

  • sfdisk の書き込みが失敗する: デバイス名が正しいか、ディスクが完全に接続されているかを確認します。
  • 同期が非常に遅い: I/O負荷やケーブル不良、ディスクのSMARTエラーを疑います。
  • GRUBがインストールできない: パーティションのブートフラグやファイルシステムの整合性を確認してください。

代替アプローチ

  • dd でパーティションの最初のセクタを丸ごとコピーする(注意: リスク高)
  • バックアップから復元して再構築する(大容量データや複雑な構成の場合)
  • 新規ディスクに手動でパーティションを作成し、mdadm –add で参加させる

ロール別チェックリスト

  • システム管理者: デバイス名確認、mdstat監視、GRUB再インストール
  • ストレージ担当: ケーブルと電源の物理チェック、SMARTログの確認
  • 運用担当: 通知と監視の更新、手順のログ保存

1行用語集

  • mdadm: Linux のソフトウェアRAID管理ツール
  • sfdisk: パーティションテーブルのダンプ/書き込みを行うツール
  • /proc/mdstat: Linuxが管理するRAIDの状態表示ファイル

リンク

まとめ

この手順では、RAID1で故障したディスクを安全に置換し、パーティションを複製してmdadmで再追加、同期完了後にGRUBを両ディスクへ再インストールします。同期を必ず監視し、問題があればログやディスクヘルスを確認してください。

共有する: X/Twitter Facebook LinkedIn Telegram
著者
編集

類似の素材

Debian 11 に Podman をインストールして使う
コンテナ

Debian 11 に Podman をインストールして使う

Apt-pinning入門:Debianで複数リポジトリを管理
Linux

Apt-pinning入門:Debianで複数リポジトリを管理

OptiScalerでFSR 4を全対応ゲームに導入する方法
ゲーム

OptiScalerでFSR 4を全対応ゲームに導入する方法

Dansguardian と Squid(NTLM)を Debian Etch に導入する方法
ネットワーク

Dansguardian と Squid(NTLM)を Debian Etch に導入する方法

AndroidでSDカードのインストールエラーを修正する方法
トラブルシューティング

AndroidでSDカードのインストールエラーを修正する方法

KNetAttach と KDE の remote:/ でネットワークフォルダーを設定
Linux ネットワーク

KNetAttach と KDE の remote:/ でネットワークフォルダーを設定