CentOS6.10 を使った少し古めの環境を触っていたとき、
fstab を UUID 指定にした途端、起動時に fsck エラーで止まる
というトラブルに遭遇しました💥
/dev/sdb1 のような デバイス名指定では普通に起動するのに、
「推奨されているはずの UUID 指定にすると起動しない」…
正直かなりハマりました😇
同じように困っている方のために、
実際に自分が調べて解決した内容をまとめます📝
/etc/fstab /dev/sdb1 → 問題なし ✅UUID=xxxx-xxxx → 起動時 fsck エラー ❌UUID は blkid からコピーしており、
一見すると正しそうでした。
blkid の出力、こんな感じですよね👇
/dev/sdb1: UUID="1234-ABCD" TYPE="ext4"
この ダブルクォート付き UUID をそのまま fstab に書くと、
CentOS6 では 起動時の fsck が誤認識して失敗することがあります😱
UUID=1234-ABCD /data ext4 defaults 1 2
UUID="1234-ABCD" /data ext4 defaults 1 2
👉 mount コマンドでは通るのに
👉 起動時だけ失敗するのが最大の罠でした🕳
blkid -s UUID -o value /dev/sdb1
これなら 余計な記号が一切入らず安心です✨
次に疑ったのが UUIDの重複です💣
こうすると、同じUUIDを持つディスクが複数存在します。
その結果👇
blkid | grep UUID=
同じ UUID が複数出たら アウトです🚨
ext3 / ext4
tune2fs -U random /dev/sdc1
XFS
xfs_admin -U generate /dev/sdc1
※ 必ずアンマウント状態で実行してください⚠️
CentOS6 は systemd ではなく SysVinit 世代なので、
ディスク認識より fsck が先に走ることがあります⏳
起きやすい環境👇
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指定は理想的ですが、
が重なると、逆にトラブルの原因になります。
👉 /dev/sdX で安定しているなら無理に変えない
これも現場では十分アリな判断だと思いました👌
イラスト1枚から、テクスチャ付…