はじめに (対象読者・この記事でわかること)

本記事は、Linuxサーバーの構築や運用を担当しているシステム管理者、あるいは自宅サーバーをDIYで組み立てようとしている個人ユーザーを対象としています。特に、Debian 12 にソフトウェアRAID 1 を設定し、4 TB HDD を 2 台使用した環境で、BIOS の AHCI モードがディスクを認識しないというトラブルに直面した方に最適です。この記事を読むことで、以下のことができるようになります。

  • ディスクが BIOS に認識されない原因を体系的に把握できる
  • BIOS 設定、カーネルモジュール、RAID 設定の順に問題を切り分ける手順が身につく
  • Debian 12 で 4 TB HDD×2 のソフトRAID 1 を正しく構築し、ミラーリングが機能する状態に持っていく

背景として、近年 4 TB 以上の大容量 HDD が一般的になり、RAID 1 によるデータ保護を求めるケースが増えています。しかし、BIOS が古い規格や設定ミスにより大容量ディスクを正しく検出しないことがあり、特に AHCI モードと RAID モードの相違がトラブルの要因となります。本記事では、実際に遭遇した事例を元に、原因の特定から解決までをステップバイステップで解説します。

前提知識

この記事を読み進める上で、以下の知識があるとスムーズです。

  • 基本的な Linux のコマンド操作(lsblk、fdisk、mdadm など)
  • BIOS/UEFI の設定画面へのアクセス方法と用語(Secure Boot、CSM、AHCI、RAID)
  • Debian のインストール手順と /etc/fstab の基本的な書式

ソフトRAID1構築の概要と障害の背景

ソフトRAID1 の基本概念

Linux のソフトウェアRAID(mdadm)では、ハードウェアレベルの RAID コントローラを使用せずにカーネルがディスクを束ねてミラーリングやストライピングを実現します。RAID 1 は「ミラーリング」方式で、2 台以上のディスクに同一データを書き込み、片方が故障してももう片方から復旧できる冗長性が特徴です。メリットはハードウェア費用が不要で、Linux 標準のツールだけで構築・管理できる点です。

4 TB 以上のディスクが認識されない原因

BIOS がディスクを検出しないケースは大きく分けて次の 3 つに分類できます。

  1. BIOS の容量制限
    古い BIOS は 2 TB 以上のディスクを 32 ビット LBA で扱えず、一部しか認識しません。UEFI に切り替えるか、最新の BIOS にアップデートする必要があります。

  2. AHCI と RAID モードの不整合
    AHCI は SATA デバイスの標準モードで、RAID 用のフラッシュキャッシュやバッファは無効です。RAID 構成をソフトウェア側で行う場合でも、BIOS が AHCI モードで起動できるように設定しておく必要がありますが、特定のマザーボードでは AHCI 時に大容量ディスクがブロックデバイスとして認識されないバグがあります。

  3. ドライブのパーティションテーブル形式
    4 TB 以上のディスクは GPT(GUID Partition Table)で初期化しなければなりません。MBR では 2 TB の上限があるため、BIOS が MBR のままでは正しく認識できません。

この問題を解決するためには、まずハードウェア側の認識可否を確かめ、次に BIOS 設定を見直し、最後に Debian 側の mdadm 設定を行うという 3 段階のアプローチが有効です。

Debian 12 での具体的な対処手順

以下では、実際に 4 TB HDD×2 をソフトRAID 1 として構築し、BIOS が AHCI モードでディスクを認識しないケースを解決する流れを解説します。全体は 5 つのステップに分かれます。

ステップ1 BIOS の確認とアップデート

  1. UEFI/BIOS のバージョン確認
    起動時に DEL / F2 キーで BIOS 設定画面へ入り、BIOS バージョンをメモします。メーカーのサポートページで「4TB SATA」や「Large Disk Support」等のキーワードで検索し、最新ファームウェアが提供されているか確認します。

  2. UEFI モードへの切替
    Legacy BIOS(CSM)を無効化し、UEFI 起動を有効にします。UEFI は 4 TB 以上のディスクをネイティブにサポートします。

  3. Secure Boot の一時的無効化
    Debian のインストール中にドライバ署名の問題が出やすいため、インストール直前に Secure Boot を OFF にしておきます(インストール完了後に再度有効化可能)。

  4. BIOS のアップデート
    メーカー提供のツールまたは USB ブート可能なフラッシュユーティリティで最新 BIOS に更新します。更新後は必ず Load Optimized Defaults で初期化し、再度 UEFI が有効か確認してください。

ポイント:BIOS のアップデートはリスクが伴うため、電源が安定した環境で行い、必ずリカバリ用のバックアップ手段(BIOS Flashback)を用意しておきましょう。

ステップ2 ディスクの初期化と GPT パーティション作成

  1. ディスクの接続確認
    Debian のライブ環境(インストールメディアの「Try Debian」)で lsblk を実行し、/dev/sda/dev/sdb が表示されるか確認します。表示されない場合はケーブルや電源供給を再チェック。

  2. GPT パーティションテーブルの作成
    bash sudo gdisk /dev/sda # n (新規パーティション) → 1 # デフォルトで全容量使用 → エンター # t (パーティションタイプ) → fd00 (Linux RAID) ←指定 # w (書き込み) → yes sudo gdisk /dev/sdb # 同様に実施

  3. パーティションの確認
    bash sudo partprobe lsblk -f /dev/sda1/dev/sdb1fd00 タイプで表示されれば成功です。

ステップ3 mdadm による RAID1 の作成

  1. mdadm パッケージのインストール(インストール済みの場合はスキップ)
    bash sudo apt update sudo apt install mdadm -y

  2. RAID デバイスの作成
    bash sudo mdadm --create /dev/md0 \ --level=1 \ --raid-devices=2 \ /dev/sda1 /dev/sdb1

作成中に「Are you sure?」と聞かれたら YES と入力。

  1. RAID の状態確認
    bash cat /proc/mdstat sudo mdadm --detail /dev/md0

resync が始まっていることが確認できれば OK。

ステップ4 ファイルシステム作成とマウント設定

  1. ext4 ファイルシステムの作成
    bash sudo mkfs.ext4 /dev/md0

  2. マウントポイント作成
    bash sudo mkdir -p /mnt/raid1 sudo mount /dev/md0 /mnt/raid1

  3. 永続的マウント設定(/etc/fstab に追記)
    bash sudo blkid /dev/md0 # UUID を取得 # 例: UUID=1234abcd-5678-efgh-ijkl-9012mnopqrst echo "UUID=1234abcd-5678-efgh-ijkl-9012mnopqrst /mnt/raid1 ext4 defaults,noatime 0 2" | sudo tee -a /etc/fstab

  4. 再起動テスト
    bash sudo reboot # 起動後にマウント状態を確認 df -h /mnt/raid1

ステップ5 ハマった点とエラー解決

5-1 BIOS がディスクを検出しないケース

  • 症状lsblk/dev/sda / /dev/sdb が表示されず、dmesg | grep -i ata でもエラーが出る。
  • 原因:マザーボードの SATA コントローラがレガシーモード(IDE)に固定されていた。
  • 対策:BIOS で「SATA Mode」を AHCI に変更し、RAID オプションは無効化。さらに、Fast Boot を OFF にしてデバイス列挙のタイミングを遅らせた。

5-2 mdadm が「No usable devices」エラー

  • 症状mdadm --create 実行時に No usable devices detected と出る。
  • 原因:パーティションタイプが fd00 ではなく 8300(Linux filesystem)になっていた。
  • 対策gdisk で再度パーティションタイプを fd00 に変更し、partprobe 後に再実行。

5-3 RAID デバイスが起動時に自動復旧しない

  • 症状:再起動後に /dev/md0 が存在せず、mdadm --assemble --scan が失敗。
  • 原因/etc/mdadm/mdadm.conf が作成されていなかった。
  • 対策:以下コマンドで設定ファイルを生成し、initramfs に組み込む。
    bash sudo mdadm --detail --scan | sudo tee /etc/mdadm/mdadm.conf sudo update-initramfs -u

完全な構成例(/etc/mdadm/mdadm.conf の抜粋)

Text
DEVICE partitions ARRAY /dev/md0 level=1 num-devices=2 UUID=abcd1234:ef56:7890:1234:56789abcdeff

この設定が入っていると、システム起動時に自動的に /dev/md0 が組み立てられます。

まとめ

本記事では、Debian 12 環境で 4 TB HDD ×2 のソフトRAID 1 を構築しようとした際に、BIOS の AHCI モードでディスクが認識されない問題を体系的に解決する手順を紹介しました。

  • BIOS の UEFI 化と最新ファームウェアの適用で大容量ディスクの認識を保証
  • GPT パーティションと RAID タイプ (fd00) の正しい設定で Linux がディスクを認識
  • mdadm による RAID1 の作成・fstab への永続マウントでミラーリングを有効化
  • トラブルシューティング例(BIOS 設定ミス、パーティションタイプの誤り、mdadm 設定不足)を通じて、同様の障害を迅速に切り分けられるように

これにより、システム管理者は大容量データを安全に保管できる冗長環境を確立できます。次回は、RAID1 のパフォーマンスチューニングや、バックアップ戦略との組み合わせについて掘り下げた記事を予定しています。

参考資料