Linux blkid コマンド
blkid コマンドとは
blkidLinux システムでブロックデバイスの属性を識別するための実用的なツールです。ブロックデバイス(ハードディスク、パーティション、USB デバイスなど)のファイルシステムタイプ、UUID(汎用一意識別子)、ラベル(LABEL)、その他の関連情報を表示できます。
主な機能
- ストレージデバイスのファイルシステムタイプを識別する
- デバイスの一意の識別子(UUID)を取得する
- デバイスのパーティションラベル(LABEL)を表示する
- ブロックデバイスのサイズやその他の属性を表示する
基本構文
blkid [选项] [设备...]
よく使うオプションとパラメータの説明
| オプション | 説明 |
|---|---|
-c <缓存文件> |
キャッシュファイルを指定する(デフォルトは /etc/blkid.tab) |
-g |
ガベージデータをキャッシュファイルに収集する |
-o <格式> |
出力形式を指定する(full, value, list, device, udev) |
-p |
低レベルのスーパーブロック検出を行う(キャッシュをバイパスする) |
-s <标签> |
指定したタグの情報を表示する(UUID, TYPE, LABEL など) |
-U <UUID> |
UUID から対応するデバイスを検索する |
-L <标签> |
LABEL から対応するデバイスを検索する |
-i |
I/O 制限に関する情報を表示する |
-h |
ヘルプ情報を表示する |
-V |
バージョン情報を表示する |
使用例
1. すべてのブロックデバイス情報を表示する
例
sudo blkid
出力例:
/dev/sda1: UUID="5a3a1e7b-1a2b-4c3d-8e9f-0a1b2c3d4e5f" TYPE="ext4" /dev/sda2: UUID="6b4c5d6e-7f8g-9h0i-1j2k-3l4m5n6o7p8q" TYPE="swap" /dev/sdb1: LABEL="DATA" UUID="9a8b7c6d-5e4f-3g2h-1i0j-9k8l7m6n5o4p" TYPE="xfs"
2. 特定のデバイス情報を表示する
例
sudo blkid /dev/sda1
出力例:
/dev/sda1: UUID="5a3a1e7b-1a2b-4c3d-8e9f-0a1b2c3d4e5f" TYPE="ext4"
3. UUID 情報のみ表示する
例
sudo blkid -s UUID -o value /dev/sda1
出力例:
5a3a1e7b-1a2b-4c3d-8e9f-0a1b2c3d4e5f
4. UUID からデバイスを検索する
例
sudo blkid -U 5a3a1e7b-1a2b-4c3d-8e9f-0a1b2c3d4e5f
出力例:
/dev/sda1
5. リスト形式で出力する
例
sudo blkid -o list
出力例:
device fs_type label mount point UUID ------------------------------------------------------------------------------- /dev/sda1 ext4 / 5a3a1e7b-1a2b-4c3d-8e9f-0a1b2c3d4e5f /dev/sda2 swap [SWAP] 6b4c5d6e-7f8g-9h0i-1j2k-3l4m5n6o7p8q /dev/sdb1 xfs DATA /mnt/data 9a8b7c6d-5e4f-3g2h-1i0j-9k8l7m6n5o4p
実際の適用シナリオ
1. fstab で UUID を使用してマウントする
編集/etc/fstabファイルを編集する場合、デバイス名は変更される可能性があるため、UUID を使用する方がデバイス名を使用するよりも信頼性が高くなります:
例
UUID=5a3a1e7b-1a2b-4c3d-8e9f-0a1b2c3d4e5f / ext4 defaults 0 1
2. 自動化スクリプトでデバイスを識別する
スクリプト内では、blkid を使用して特定のデバイスを識別できます:
例
#!/bin/bash
DATA_PARTITION=$(sudo blkid -L "DATA")
if [ -n "$DATA_PARTITION" ]; then
echo "データパーティションが見つかりました:$DATA_PARTITION"
mount $DATA_PARTITION /mnt/data
else
echo "データパーティションが見つかりません"
fi
DATA_PARTITION=$(sudo blkid -L "DATA")
if [ -n "$DATA_PARTITION" ]; then
echo "データパーティションが見つかりました:$DATA_PARTITION"
mount $DATA_PARTITION /mnt/data
else
echo "データパーティションが見つかりません"
fi
3. マウントされていないファイルシステムを検出する
例
sudo blkid | grep -v "$(mount | awk '{print $1}')"
よくある質問(FAQ)
Q1: blkid を実行するのに sudo が必要なのはなぜですか?
A: 一般ユーザーは一部のデバイス情報にアクセスする権限を持っていない場合があります。sudo を使用することで、完全なデバイス情報を確実に取得できます。
Q2: blkid と lsblk の違いは何ですか?
A:
lsblkブロックデバイスの階層構造と基本情報(名前、サイズ、マウントポイントなど)を主に表示するblkidファイルシステムに関連する詳細情報(UUID、TYPE、LABEL など)の表示に特化している
Q3: blkid のキャッシュを更新するにはどうすればよいですか?
A: 以下のコマンドでキャッシュを更新できます:
例
sudo blkid -g
または、キャッシュを完全にバイパスして低レベル検出を使用します:
例
sudo blkid -p
まとめ
blkidコマンドは、特にストレージデバイスやファイルシステムを扱う際に、Linux システム管理で非常に役立つツールです。この記事の学習を通じて、以下のことができるようになるはずです:
- blkid の基本機能と構文を理解する
- さまざまなオプションを使用して特定のデバイス情報を取得する
- 実際のシナリオで blkid コマンドを適用する
- デバイス識別に関する一般的な問題を解決する
blkid コマンドを習得することで、Linux システムのストレージデバイスをより効率的に管理できるようになります。
その他の拡張
Linux コマンド大全