GNU/Linux >> Linux の 問題 >  >> Linux

ファイルシステムの UUID を見つける方法

解決策 1:

利用可能で、これにも非常にうまく機能する可能性のある別のコマンドは、「blkid」です。これは e2fsprogs パッケージの一部です。使用例:

/dev/sda1 でデータを検索:

[email protected]:~$ sudo blkid /dev/sda1
/dev/sda1: UUID="727cac18-044b-4504-87f1-a5aefa774bda" TYPE="ext3"

すべてのパーティションの UUID データを表示:

[email protected]:~$ sudo blkid
/dev/sda1: UUID="727cac18-044b-4504-87f1-a5aefa774bda" TYPE="ext3"
/dev/sdb: UUID="467c4aa9-963d-4467-8cd0-d58caaacaff4" TYPE="ext3"

すべてのパーティションの UUID データを読みやすい形式で表示します:(注:新しいリリースでは、blkid -L は意味が異なり、blkid -o list 代わりに使用する必要があります)

[email protected]:~$ sudo blkid -L
device     fs_type label    mount point    UUID
-------------------------------------------------------------------------------
/dev/sda1 ext3             /              727cac18-044b-4504-87f1-a5aefa774bda
/dev/sdc  ext3             /home          467c4aa9-963d-4467-8cd0-d58caaacaff4

/dev/sda1 の UUID のみを表示する:

[email protected]:~$ sudo blkid -s UUID -o value /dev/sda1
727cac18-044b-4504-87f1-a5aefa774bda

解決策 2:

GPT パーティション ディスクのみ

GPT フォーマットのディスクでは、各パーティションに UUID の形式である GUID が割り当てられますが、元の投稿者が言及していたものではない可能性があります。したがって、この回答はおそらく元の質問者にとってあまり役に立ちません。それでも、注意すべき重要な違いがあると思います。

GPT フォーマットのディスク /dev/sda のパーティション 1 の GUID とそのパーティション ラベルなどを取得するには:

sudo sgdisk -i 1 /dev/sda

またはすべて:

ls -l /dev/disk/by-partuuid

ファイル システムのルートが特定のパーティションにある状態で起動するには、Linux カーネル パラメータの構文を次のように使用します。

root=PARTUUID=87654321-4321-4321-abcd-123456789012

この場合、UUID の先頭だけを指定できます。これは、一意になるように十分です。このパラメーターはより原始的であり、ブート プロセスの早い段階でカーネルが理解できます。

これらの間にはセマンティクスに違いがあります:

ディスクはパーティションを保持し、パーティションはファイル システムを保持し、ファイル システムはディレクトリとファイルを保持します。一部のセットアップとオペレーティング システムでは、さらに多くのレイヤーがあります。

GUID UUID と関連するラベルはパーティションを参照しますが、パーティションの内容は参照しません。同じディスク上の新しいパーティション、または新しいディスク上のパーティションには、新しい GUID UUID があります。同じパーティションで、ある日は 1 つのファイル システムを保持し、別の日に別のファイル システムを保持することができます。これは、GPT でフォーマットされたディスクにのみ存在し、レガシー パーティション ディスクには存在しません。通常、ここで root=/dev/sda1 を指定する以上のユーティリティはありません または root=8:1 .

他の現在の回答は、ファイル システムの UUID を参照しています。 一部の包含パーティションで。ファイル システム全体を別のパーティションまたはハード ディスクにコピーしても、その値は変わりません。この UUID は、移動されたファイル システムを見つけるのに役立ちます。したがって、これはおそらくほとんどの人にとってより適切です。 Linux カーネル パラメータ root=UUID=87654321-4321-4321-a567-123456789012 これを指します。

root=LABEL= だと思います および root=UUID= は初期のユーザー空間によって実装されていますが、先日私のシステムで見た init コードは、これらのパラメーターを /dev/disk/by-uuid および /dev/disk/by-label に変換しました (リンクは、私のユーザー空間の udev によって作成されたと思います)。システム)

[1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/init/do_mounts.c#n183

解決策 3:

どのタイプのファイルシステムでも機能する、これを行うためのスクリプトクリーンな方法は次のとおりです:

lsblk -no UUID <device-containing-FS>

または、マウントポイント (またはその中の任意のファイル):

lsblk -no UUID $(df -P <file> | awk 'END{print $1}')

出力は UUID、UUID 全体であり、UUID のみです。

解決策 4:

ext2/ext3/ext4 でこれを行う最も簡単な方法は次のとおりです:

/sbin/tune2fs -l /dev/sda1

解決策 5:

これを行うための推奨される方法は、

sudo vol_id -u /dev/sda2

UUID の使用の詳細については、この記事を参照してください (ubuntu のヘルプからですが、UUID を使用するすべての Linux ディストリビューションで機能するはずです)。

この質問へのコメントに記載されているように、vol_id がパスに含まれていない可能性があります。 ubuntu では /sbin にあるため、上記は機能します。 fedora の場合、

が必要なようです
sudo /lib/udev/vol_id -u /dev/sda2

他のディストリビューションの他の場所に vol_id がある場合は、コメントを投稿してください。この回答に追加します。


Linux
  1. CentOS / RHEL :ファイルシステムの UUID を変更する方法

  2. 現在マウントされているファイルシステムのマウントオプションを見つける方法

  3. デフォルトのファイルマネージャを見つける方法は?

  1. Linuxパーティションまたは論理ボリュームにファイルシステムを作成する方法

  2. Ext4ファイルシステムのオフセットを見つける方法は?

  3. Linuxでマウントされていないパーティションのサイズを見つける方法は?

  1. パーティションに一致するようにファイルシステムのサイズを増やす方法は?

  2. CentOS / RHEL :デバイスまたはファイルシステムの UUID を見つける方法

  3. ext2/ext3/ext4 ファイルシステムの inode サイズを調べる方法は?