本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
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.