🐧 CentOS6でfstabをUUID指定すると起動時にfsckエラーが出た話(原因と対処まとめ)

Linux

CentOS6.10 を使った少し古めの環境を触っていたとき、
fstab を UUID 指定にした途端、起動時に fsck エラーで止まる
というトラブルに遭遇しました💥

/dev/sdb1 のような デバイス名指定では普通に起動するのに、
「推奨されているはずの UUID 指定にすると起動しない」…
正直かなりハマりました😇

同じように困っている方のために、
実際に自分が調べて解決した内容をまとめます📝


❓ 何が起きていたのか

  • 🖥 OS:CentOS 6.10
  • 💾 HDD:4台搭載
  • /etc/fstab
    • /dev/sdb1 → 問題なし ✅
    • UUID=xxxx-xxxx → 起動時 fsck エラー ❌

UUID は blkid からコピーしており、
一見すると正しそうでした。


⚠️ 原因① UUIDをそのままコピペしていた(クォート問題)

blkid の出力、こんな感じですよね👇

/dev/sdb1: UUID="1234-ABCD" TYPE="ext4"

この ダブルクォート付き UUID をそのまま fstab に書くと
CentOS6 では 起動時の fsck が誤認識して失敗することがあります😱

✅ 正しい書き方(fstab)

UUID=1234-ABCD  /data  ext4  defaults  1 2

❌ ダメな例

UUID="1234-ABCD"  /data  ext4  defaults  1 2

👉 mount コマンドでは通るのに
👉 起動時だけ失敗するのが最大の罠でした🕳

🔐 安全なUUID取得方法

blkid -s UUID -o value /dev/sdb1

これなら 余計な記号が一切入らず安心です✨


⚠️ 原因② UUIDが重複していた(クローンディスクあるある)

次に疑ったのが UUIDの重複です💣

  • dd でディスクを丸ごとコピー
  • 同じOSイメージを複数HDDに展開

こうすると、同じUUIDを持つディスクが複数存在します。

その結果👇

  • 🤔 fsck がどのディスクをチェックすべきか分からない
  • 😵 想定外のディスクをチェックしてエラー

🔍 確認方法

blkid | grep UUID=

同じ UUID が複数出たら アウトです🚨

🔄 UUID再生成方法

ext3 / ext4

tune2fs -U random /dev/sdc1

XFS

xfs_admin -U generate /dev/sdc1

※ 必ずアンマウント状態で実行してください⚠️


⚠️ 原因③ 起動時にディスクがまだ認識されていない

CentOS6 は systemd ではなく SysVinit 世代なので、
ディスク認識より fsck が先に走ることがあります⏳

起きやすい環境👇

  • SATAカード増設
  • 特定のHBA
  • USB接続ディスク

🧪 確認ポイント

ls -l /dev/disk/by-uuid/
dmesg | grep -i sd

起動後は見えるのに、起動途中では見えていない場合、
UUID指定は失敗しがちです😵‍💫

🩹 応急処置(妥協案)

UUID=1234-ABCD  /data  ext4  defaults  0 0

👉 fsck を無効化
👉 起動は安定
👉 ただし安全性は低下⚠️


✅ 私が実際にやった対処

1️⃣ blkid -s UUID -o value で UUID を取り直す
2️⃣ fstab から クォート・余計な文字を完全排除
3️⃣ blkid 全体を確認して UUID重複チェック

これで 起動時エラーは完全に解消しました🎉


📝 まとめ:UUID指定は万能じゃない(特にCentOS6)

UUID指定は理想的ですが、

  • 🕰 古いOS
  • 💽 クローン運用
  • ⏳ 起動順序がシビア

が重なると、逆にトラブルの原因になります。

👉 /dev/sdX で安定しているなら無理に変えない
これも現場では十分アリな判断だと思いました👌

コメント

タイトルとURLをコピーしました