Linuxのblkidコマンド活用術:ディスクUUIDの調査からfstabマウントまで

はじめに:ストレージ管理で必須となるblkidコマンド

Linux環境における安定したストレージ運用では、ハードウェア認識順の変動に左右されないUUID(一意の識別子)ベースの管理が不可欠です。本ガイドでは、ブロックストレージのUUID、ファイルシステム形式、ボリュームラベルを効率的に取得できるblkidコマンドの基礎から実践的なオプション運用までを解説します。さらに、システム起動時の自動マウントファイル(/etc/fstab)へ安全に反映させるための現場直結テクニックも順を追って紹介します。

全ブロックデバイスの属性調査とblkidの基本コマンド構文

システムに接続されているストレージ全体のパーティション構成や階層関係をあらかじめ確認するには、まずlsblkを実行するのが便利です。
現在マウントされているNVMeドライブの容量配分やマウントポイントの状況が一目で把握できます。

lsblk実行結果

blkid(Block Device Identification)コマンドは、システム上のブロックデバイスに付与されたUUID、ファイルシステム種別(TYPE)、ラベル名などのメタデータを網羅的に抽出するツールです。
管理者権限(sudo)で実行することにより、全パーティションの固有IDやブロックサイズ情報を正確に取得できます。
⚙️ [代表的なコマンドラインオプション]

-s <tag> : 指定した特定の属性タグ(UUID、TYPE、PARTUUIDなど)のみを絞り込んで出力します。
-o <format> : 出力フォーマットを切り替えます(value、list、device、export、fullなど)。
-t <token> : 指定したNAME=value条件(例:TYPE=ext4)に一致するストレージのみを検索して表示します。
-L <label> : 指定したファイルシステムラベルを持つデバイスを検索します。
-U <uuid> : 指定したUUIDを持つデバイスを検索します。
-p : システムキャッシュ(/etc/blkid.tab)をバイパスし、低レベルなスーパーブロック直接走査(Probing)を行います。
-c <cachefile> : キャッシュファイルの参照先を変更、または/dev/nullを指定してキャッシュ利用を無効化します。

sudo blkid実行結果

特定デバイスの絞り込みと出力フォーマット制御(-s・-oオプション)

検証対象を柔軟にハンドリングするため、findmntコマンドを用いてルートディレクトリ(/)に対応するデバイスパスを取得し、シェル変数TARGET_DEVに格納します。

TARGET_DEVの抽出と変数格納

blkidの引数に対象デバイスのパスを直接指定すると、該当パーティションの属性情報だけをピンポイントで確認できます。
余計なデバイスの走査を挟むことなく、対象となるパーティションのUUID、BLOCK_SIZE、TYPE、PARTUUIDを迅速に確認できます。

特定デバイスの属性情報確認

シェルスクリプトや自動化パイプラインでUUIDのプレーンテキストのみを取得したい場合は、-s UUIDで抽出対象を限定し、-o valueで値のみを出力させます。
余分なタグ名やダブルクォーテーションを含まないクリーンな36桁の識別文字列だけが返されるため、そのまま変数に代入して再利用する処理に最適です。

UUID値のみを抽出

-o listオプションを指定すると、システム内の全ブロックデバイスのファイルシステム、マウント先、UUIDが見やすい表形式で一覧表示されます。
各ドライブの接続状態とファイルシステム構造を俯瞰できるため、ストレージ全体のインベントリ確認に役立ちます。

リスト形式でのデバイス一覧表示

仮想ディスクの作成とボリュームラベル(LABEL)による検索検証

安全な動作検証環境を整えるため、ddコマンドを実行して30MBの空の仮想ディスクイメージファイルを一時領域に生成します。

30MBの仮想ディスクイメージ作成

作成したイメージファイルをブロックストレージとして認識させるため、losetupコマンドを用いて空いているループバックデバイスにマッピングし、そのパスを変数LOOP_DEVへ代入します。

ループデバイスへのアタッチ

ラベル機能の検証を行うため、mkfs.ext4コマンドの-LオプションでMY_BACKUPという名前のラベルを付与しながら、ループデバイスをext4ファイルシステムでフォーマットします。

ラベルを指定してext4フォーマット

blkidを実行して該当ループデバイスの情報を読み取り、付与したLABEL="MY_BACKUP"、生成された固有のUUID、およびext4の各種パラメータが正しく反映されていることを確認します。

ループデバイスのラベルおよびUUID確認

blkidの-Lオプションを使用すると、ボリュームラベル(MY_BACKUP)から実際のデバイスパスを逆引きできます。
動的にデバイス名が変化する環境でも、分かりやすいラベル名を指定するだけで目的のデバイスノードを素早く特定可能です。

ラベル名からデバイスパスを逆引き

検証が終了したら、ループデバイスの割り当てを解除し、作成したダミーイメージファイルを削除して作業領域をクリーンアップします。

ループデバイスのデタッチとイメージ削除

fstab恒久マウントに向けたUUID逆引き(-U)と整合性検証

findmntで特定したルート(/)デバイスから、blkidの-s UUID -o valueオプションを用いて純粋なUUID文字列を抽出し、変数ROOT_UUIDに格納します。

ルート領域のUUIDを変数へ格納

取り出したUUIDを組み込み、マシンの再起動後も正しくマウントを継続させるための/etc/fstabエントリ構文を組み立てます。
ハードウェアの追加やポート変更で変わりうるデバイス名(/dev/sdX)の代わりに固定識別子のUUIDを採用することで、マウント先を取り違える致命的な起動トラブルを完全に防ぐことができます。

fstab登録用エントリの生成例

設定の最終確認として、blkidの-UオプションにUUIDを渡し、該当する実際のデバイスパスを逆引き照合します。
/etc/fstabに書き込むUUIDが意図通りのパーティションを正しく参照しているかを事前に検証できるため、安全な設定反映が実現します。

UUIDから対象デバイスパスを逆引き検証

ここまで、blkidコマンドによるブロックストレージのUUID特定手法と、/etc/fstabでの堅牢なマウント設定手順を解説しました。
安定したサーバー運用を確立するためにも、UUIDを活用した安全確実なストレージ管理をぜひ実践してみてください。