こんにちはますのです。
Linuxの構築を依頼された時に「UUIDでマウントよろしゅ」と言われてあたふたした筆者です。
LPIC2持ってるよねって??それを言わないでつかーさい。。。
調べてみたらLPIC101の試験範囲にもあるやないの。
どうやらUUIDでマウントしないとこんな問題が発生する様子。
・データ ディスクが切断されて再接続された場合は、ディスクのデバイス名が変更されます。
・デバイス名を使用してディスクを参照するアプリケーションやスクリプトは、デバイス名が変更されているため失敗します。
引用:https://docs.microsoft.com/ja-jp/azure/virtual-machines/troubleshooting/troubleshoot-device-names-problems
AzureVMでもAWSでもこのあたりでトラブルになっているようで、fstabに記載する時はUUIDやファイルシステムラベルを指定して永続的な名前を設定することが推奨されています。
AWS参考:間違ったボリュームで起動する
UUIDを「blkid」コマンドで確認する
今回はCentOS8とRHEL8でお試しです。
お目当てのマウント先のUUIDを確認します。今回はルートボリュームをUUIDに変更します。
# blkid
/dev/mapper/rootvg-tmplv: UUID="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" TYPE="xfs"
/dev/mapper/rootvg-usrlv: UUID="bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb" TYPE="xfs"
/dev/mapper/rootvg-homelv: UUID="cccccccc-cccc-cccc-cccc-cccccccccccc" TYPE="xfs"
/dev/mapper/rootvg-rootlv: UUID="dddddddd-dddd-dddd-dddd-dddddddddddd" TYPE="xfs"
「blkid -o list」でリスト形式に出力も可能ですがお好みで。
ルートボリュームのUUIDは「UUID=”dddddddd-dddd-dddd-dddd-dddddddddddd”」であることが分かりました。
UUIDを「/etc/fstab」へ記載する
書き方は今までとほとんど変わりません。
マウント元となる「/dev/mapper/rootvg-rootlv」のパスを先ほどのUUIDに差し替えるだけとなります。
# vi /etc/fstab
#変更前
/dev/mapper/rootvg-rootlv / xfs defaults 0 0
#変更後
UUID=dddddddd-dddd-dddd-dddd-dddddddddddd / xfs defaults 0 0
最後に反映出来るか確認します。
#mount -a
記述ミス等が無ければマウント完了となります。
エラーとなった場合は記述ミスが無いか確認しましょう。
余談:「/dev/mapper」配下の設定でもOK
UUIDで設定をしましたが、「/dev/mappaer」配下のパスを指定しても問題無いようです。
再読み込みで名前が変わるのは「/dev/sda」等のデバイス名のみとなります。
user_friendly_names 機能を使用すると (DM Multipath の機能)、WWID は /dev/mapper/mpathn の形式の名前にマッピングされます。 デフォルトでは、 このマッピングは /etc/multipath/bindings ファイル内で維持されます。 このファイルが維持されている限り、これら mpathn の名前は永続的となります。
引用:【Redhat】25.8. 永続的な命名
なお、筆者は駆け出し時代に購入した書籍を引っ張り出して、このあたりを再認識するに至りました。
「デバイス名は入れ替わることがある。LVMの「/dev/mapper」配下かUUID設定なら大丈夫」と書いてあり、全然覚えてないのが晒されたのでした。
CentOS7ではなかったですが、勉強で購入した書籍はこういう時に役立って有難い限りです。ふとしたときに取り出せる知識の環境、大事です。