sdb とsdaが入れ替わり起動しない-突然Linuxが起動しなくなった

Linux

本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^

Linuxが起動しない

起動するたびに /dev/sda や /dev/sdb といったデバイス名は入れ替わる可能性があり、下手をすると、システムが起動できなくなったり、カーネルパニックが発生したり、ブロックデバイスが表示されなくなってしまいます。

2023-10-17T18:54:36.850552+09:00 TestDB kernel: [    1.712225] scsi 0:0:0:0: Direct-Access     ATA      Micron_5300_MTFD U001 PQ: 0 ANSI: 5
2023-10-17T18:54:36.850556+09:00 TestDB kernel: [    1.713556] scsi 1:0:0:0: Direct-Access     ATA      TOSHIBA MG08ADA4 0102 PQ: 0 ANSI: 5

MicronのSSD と、TOSHIAのHDDを利用しています。

Micron_5300_MTFD

TOSHIBA MG08ADA4

これは、/dev/sda にMicronSSDが、/dev/sdbにTOSHIBA-HDDがマウントされています。

2023-10-17T14:51:37.196630+09:00 TestDB kernel: [    1.740537] sd 0:0:0:0: [sda] 937703088 512-byte logical blocks: (480 GB/447 GiB)
2023-10-17T14:51:37.196627+09:00 TestDB kernel: [    1.740281] sd 1:0:0:0: [sdb] 7814037168 512-byte logical blocks: (4.00 TB/3.64 TiB)

このタイミングでは、/dev/sdb にMicronSSDが、/dev/sdaにTOSHIBA-HDDがマウント

2023-10-17T18:54:36.850562+09:00 TestDB kernel: [    1.754021] sd 0:0:0:0: [sdb] 937703088 512-byte logical blocks: (480 GB/447 GiB)
2023-10-17T18:54:36.850562+09:00 TestDB kernel: [    1.754024] sd 1:0:0:0: [sda] 7814037168 512-byte logical blocks: (4.00 TB/3.64 TiB)

このような状態が発生する時に、/etc/fstabの内容を

# Local HDD backup
/dev/sdb1       /mnt/backup     ext4    errors=remount-ro       0       0

といった形でマウントしようとすると、起動時点で /dev/sdb1はすでにマウントされているという事で注意され、起動しません。

そんな時には

UUIDを利用し、永続的な名前で登録ができるようにします。

コマンドは、

blkidを利用します。

# /usr/sbin/blkid
/dev/sdb1: UUID="d0d86a1e-e292-4d80-a233-a485f601a0ff" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="af6e65fc-fe59-49fb-a6a3-f17e2a2a0594"
/dev/sda2: UUID="1f0e2066-738f-4330-a728-affd91ed9737" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="ce62faae-ba97-4ca7-b3ff-70cd3277df2a"
/dev/sda3: UUID="c3f016a1-1848-49a2-b371-bcd0a4539fdc" TYPE="swap" PARTUUID="28d5cf76-1c6e-46b0-9e98-0acb7659efbc"
/dev/sda1: UUID="B986-805B" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="363cd48c-a042-470b-8ab3-e07ade28afd0"

まさか、sdaとsdbが勝手に入れ替わるなんて思ってもみなかったので、焦りました。

UUIDが分かるので、/etc/fstabの指定は、以下のような設定にします。

# Local HDD backup
UUID=d0d86a1e-e292-4d80-a233-a485f601a0ff       /mnt/backup     ext4    errors=remount-ro       0       0

これで安定して起動するようになりました。

解決方法まとめ

/etc/fstab に記載する際には、UUIDを利用してデバイスを指定する

UUIDを調べるためのコマンド

/usr/sbin/blkid

/etc/fstab の書き方

# Local HDD backup
UUID=d0d86a1e-e292-4d80-a233-a485f601a0ff       /mnt/backup     ext4    errors=remount-ro       0       0

fstabを変えたら systemctl daemon-reloadを実行

mount /mnt/backup/
mount: (hint) your fstab has been modified, but systemd still uses
       the old version; use 'systemctl daemon-reload' to reload.
タイトルとURLをコピーしました