Linux blkid コマンド

Linux 命令大全Linux コマンド大全


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=&quot;5a3a1e7b-1a2b-4c3d-8e9f-0a1b2c3d4e5f&quot; TYPE=&quot;ext4&quot; 
/dev/sda2: UUID=&quot;6b4c5d6e-7f8g-9h0i-1j2k-3l4m5n6o7p8q&quot; TYPE=&quot;swap&quot; 
/dev/sdb1: LABEL=&quot;DATA&quot; UUID=&quot;9a8b7c6d-5e4f-3g2h-1i0j-9k8l7m6n5o4p&quot; TYPE=&quot;xfs&quot;

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

例

sudo blkid /dev/sda1

出力例:

/dev/sda1: UUID=&quot;5a3a1e7b-1a2b-4c3d-8e9f-0a1b2c3d4e5f&quot; TYPE=&quot;ext4&quot;

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

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 システム管理で非常に役立つツールです。この記事の学習を通じて、以下のことができるようになるはずです:

  1. blkid の基本機能と構文を理解する
  2. さまざまなオプションを使用して特定のデバイス情報を取得する
  3. 実際のシナリオで blkid コマンドを適用する
  4. デバイス識別に関する一般的な問題を解決する

blkid コマンドを習得することで、Linux システムのストレージデバイスをより効率的に管理できるようになります。

Linux 命令大全Linux コマンド大全

その他の拡張