blkidコマンドでブロックデバイスのUUIDとラベルを確認する方法|fstabへの応用まで

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, ディスク・デバイス管理コマンド > blkidコマンドでブロックデバイスのUUIDとラベルを確認する方法|fstabへの応用まで
「/etc/fstab を書き換えたら、再起動後に OS が起動しなくなった」という経験はないでしょうか。
原因の多くは、デバイス名(/dev/sdb1 など)の書き間違いではなく、デバイス名そのものを使ったことにあります。

Linux では、ディスクを追加したり接続順序が変わると /dev/sda と /dev/sdb が入れ替わることがあります。
そこで登場するのが UUID(Universally Unique Identifier)です。UUID はデバイスが変わっても変わらない固有 ID で、
blkid コマンドを使うと簡単に確認できます。

この記事では、blkid コマンドの基本的な使い方から、UUID・PARTUUID・ラベルの違い、/etc/fstab への安全な応用手順まで解説します。
RHEL 9 / Rocky Linux 9 / Ubuntu 24.04 LTS 環境で動作確認済みです。

この記事のポイント

・blkid コマンドでデバイスの UUID とファイルシステムタイプを確認できる
・UUID を /etc/fstab に書けばデバイス名変更による起動障害を防げる
・-U/-L オプションで UUID・ラベルからデバイスパスを逆引きできる
・lsblk -f と組み合わせると構成全体を一覧で把握できる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

blkid コマンドとは何か

blkid は「block device id」の略で、ブロックデバイス(HDD・SSD・USB メモリ等)に付与されたメタ情報を表示するコマンドです。

主に確認できる情報は以下のとおりです。

UUID:フォーマット時に自動生成される固有識別子。/etc/fstab で推奨される指定方法
PARTUUID:パーティションテーブル(GPT)が割り当てるパーティション固有 ID
LABEL:mkfs 時や tune2fs で手動設定できる任意の名前
TYPE:ファイルシステムの種類(ext4・xfs・swap など)

なお、blkid を実行するには root 権限(または sudo)が必要です。

基本的な使い方

1. 全デバイスの UUID を一覧表示する

引数なしで実行すると、認識されているすべてのブロックデバイスが表示されます。

# sudo blkid /dev/sda1: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="ext4" PARTUUID="11223344-01" /dev/sda2: UUID="00000000-1111-2222-3333-444444444444" TYPE="swap" PARTUUID="11223344-02" /dev/sdb1: UUID="f1e2d3c4-b5a6-7980-fedc-ba9876543210" LABEL="data_disk" TYPE="xfs" PARTUUID="55667788-01"

出力の各フィールドを押さえておきましょう。

/dev/sda1:デバイスのパス
UUID=:ファイルシステムレベルの一意 ID
TYPE=:ファイルシステム種別
PARTUUID=:GPT パーティションテーブルの ID(MBR ディスクでは表示されないことがある)

2. 特定デバイスの情報だけ表示する

デバイスパスを引数に指定すると、そのデバイスだけを確認できます。

# sudo blkid /dev/sda1 /dev/sda1: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="ext4" PARTUUID="11223344-01"

3. -o udev 形式で詳細情報を確認する

-o udev オプションを使うと、udev 形式で詳細情報を確認できます。スクリプトでの値の取り出しに便利です。

# sudo blkid -o udev /dev/sdb1 ID_FS_UUID=f1e2d3c4-b5a6-7980-fedc-ba9876543210 ID_FS_UUID_ENC=f1e2d3c4-b5a6-7980-fedc-ba9876543210 ID_FS_LABEL=data_disk ID_FS_LABEL_ENC=data_disk ID_FS_TYPE=xfs ID_FS_USAGE=filesystem

4. -U オプションで UUID からデバイスパスを逆引きする

UUID がわかっていて、それがどのデバイスかを確認したい場合に使います。

# sudo blkid -U "f1e2d3c4-b5a6-7980-fedc-ba9876543210" /dev/sdb1

同様に、-L ラベル名 でラベルからデバイスパスを逆引きできます。

# sudo blkid -L "data_disk" /dev/sdb1

lsblk -f との組み合わせで構成を把握する

blkid は単体でも便利ですが、lsblk -f と組み合わせると構成全体をツリー形式で確認できます。

# lsblk -f NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda ├─sda1 ext4 a1b2c3d4-e5f6-7890-abcd-ef1234567890 15.2G 18% / └─sda2 swap 00000000-1111-2222-3333-444444444444 [SWAP] sdb └─sdb1 xfs data_disk f1e2d3c4-b5a6-7980-fedc-ba9876543210 180.5G 5% /data

lsblk -f は親子関係(パーティション構成)と UUID・マウントポイントを一目で把握できるため、
blkid と使い分けるというよりも「まず lsblk -f で全体把握、気になるデバイスは blkid で詳細確認」という流れが現場では定番です。

/etc/fstab への応用|UUID を使った安全なマウント設定

1. なぜ /dev/sdXX をそのまま書いてはいけないか

/dev/sda や /dev/sdb といったデバイス名は、OS 起動時にカーネルが認識した順序で割り当てられます。
つまり、SATA ポートへの接続順序や USB デバイスの抜き差し、仮想環境での設定変更などで変わることがあります。

特にクラウドやベアメタルサーバーで増設ディスクを追加する場合、デバイス名ではなく必ず UUID を使うことが鉄則です。
mount コマンドの使い方でも解説していますが、fstab の誤記は起動障害の主原因です。

2. UUID を確認して fstab に追記する手順

新しく追加したディスク /dev/sdb1 を /data にマウントする例で解説します。

# ステップ1: UUID を確認する sudo blkid /dev/sdb1 /dev/sdb1: UUID="f1e2d3c4-b5a6-7980-fedc-ba9876543210" TYPE="xfs" # ステップ2: マウントポイントを作成する sudo mkdir -p /data # ステップ3: fstab に追記する(viで編集) sudo vi /etc/fstab

fstab に追記する行は以下の形式です。

UUID=f1e2d3c4-b5a6-7980-fedc-ba9876543210 /data xfs defaults 0 0

3. fstab 変更後は必ず動作確認してから再起動する

fstab を変更したあと、いきなり再起動するのは危険です。以下の手順で事前確認を行ってください。

# fstab の構文チェック(エラーがなければ何も表示されない) sudo mount -a # マウントされたか確認する df -h /data Filesystem Size Used Avail Use% Mounted on /dev/sdb1 200G 10G 190G 5% /data

mount -a を実行してエラーが出なければ、fstab の記述は正しいです。再起動後も自動マウントされます。

応用・実務Tips

1. LABEL を付けてわかりやすく管理する

UUID は機械的な文字列で人間が見てわかりにくいため、LABEL(ラベル)を付けると管理が楽になります。
ラベルは mkfs 時に指定するか、後から tune2fs / xfs_admin で変更できます。

# ext4 フォーマット時にラベルを付ける sudo mkfs.ext4 -L "backup_disk" /dev/sdc1 # xfs フォーマット時にラベルを付ける sudo mkfs.xfs -L "log_disk" /dev/sdd1 # 既存の ext4 にラベルを後から付ける(アンマウント状態で実行) sudo tune2fs -L "backup_disk" /dev/sdc1 # 既存の xfs にラベルを後から付ける(アンマウント状態で実行) sudo xfs_admin -L "log_disk" /dev/sdd1

ラベルを付けた場合、fstab では以下のように書けます。

LABEL=backup_disk /backup ext4 defaults 0 0

ただしラベルはシステム内で重複してはいけません。同じラベルのデバイスが複数あると、マウント先が不定になります。
複数ディスクを管理する環境では UUID の方が安全です。

2. ハードウェア情報と組み合わせて確認する

追加したディスクが物理的にどのデバイスかわからない場合は、dmidecode でハードウェア情報を取得した上で blkid を実行すると、ディスクとスロットの対応を把握しやすくなります。

3. スクリプトで UUID を取得する方法

バックアップスクリプトや構成管理スクリプトで UUID を変数に取得したい場合、以下のワンライナーが使えます。

# blkid の出力から UUID の値だけを取り出す UUID=$(sudo blkid -s UUID -o value /dev/sdb1) echo $UUID f1e2d3c4-b5a6-7980-fedc-ba9876543210

-s UUID は UUID フィールドだけを絞り込み、-o value は値だけを出力します。
ダブルクォートを外した状態で変数に代入でき、スクリプトから安全に扱えます。

トラブルシュート・エラー対処

「blkid: /dev/sdb: No such file or directory」が出た場合

指定したデバイスが存在しません。lsblk または ls /dev/sd* でデバイス名を再確認してください。
仮想環境では /dev/vda のように命名される場合があります。

blkid を実行しても出力が出ない・少ない場合

blkid はキャッシュを参照します。最新の状態を強制的に再スキャンするには -p オプション(probe モード)を使います。

# キャッシュを無視して直接デバイスを再スキャンする sudo blkid -p /dev/sdb1

USB メモリを差し替えた直後など、OS がデバイスを認識したばかりの状態で blkid が古い情報を返す場合に有効です。

mount -a でエラーが出た場合

fstab に追記した内容が誤っている可能性があります。以下の点を確認してください。

・UUID の値に誤字がないか(コピー&ペーストを推奨)
・TYPE と fstab のファイルシステム指定が一致しているか(xfs を ext4 と書くなど)
・マウントポイントのディレクトリが存在するか(mkdir -p で事前作成)

Linux CD/DVD マウント手順も参考にしてください。

本記事のまとめ

やりたいこと コマンド
全デバイスの UUID を確認する sudo blkid
特定デバイスの UUID を確認する sudo blkid /dev/sda1
UUID からデバイスパスを逆引きする sudo blkid -U "UUID文字列"
ラベルからデバイスパスを逆引きする sudo blkid -L "ラベル名"
UUID の値だけをスクリプトで取得する sudo blkid -s UUID -o value /dev/sdb1
キャッシュを無視して再スキャンする sudo blkid -p /dev/sdb1
構成全体をツリーで確認する(lsblk 併用) lsblk -f

UUID や fstab の正しい設定方法が身についていますか?

blkid ひとつとっても、UUID と PARTUUID の使い分けや fstab に書く際の注意点を知らなければ、再起動後に OS が起動しなくなるリスクがあります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。