linux:システムで使用可能なすべてのディスクのすべてのUUIDを表示するにはどうすればよいですか?


154

私に/etc/fstabはこれが含まれています:

# / was on /dev/sda1 during installation
UUID=77d8da74-a690-481a-86d5-9beab5a8e842 /               ext4    errors=remount-ro 0       1

このシステムには他にもいくつかのディスクがあり、すべてのディスクが正しい場所にマウントされているわけではありません(たとえば、/ dev / sda1と/ dev / sdb1は逆になる場合があります)。

システム上のすべてのディスクのUUIDを確認するにはどうすればよいですか?このシステムの3番目のディスクのUUIDを確認できますか?


@setzamoraの回答の方が優れています。受け入れられた回答を変更してください。
nslntmnx

回答:


135

では/dev/disk/by-uuidでは、そのエントリに各ドライブのUUIDをマッピングするシンボリックリンクがある/dev(例えば/dev/sda1


3
LVMパーティションの場合は読み取りできません。
グジェゴシWierzowiecki

1
LVMは、その構造内で既に(異なる表現ですが)長いUUIDのような識別子を使用しています。LVMがすでにLVを人間にわかりやすい名前にマッピングしているため、LVMでファイルシステムUUIDを使用する唯一の理由は、何らかの自動化のための統一されたインターフェースとしてであると思います。
telcoM

2
ls -lha /dev/disk/by-uuid
-deFreitas

159

と呼ばれるツールがありますblkid(rootまたはwithとして使用sudo)、

# blkid /dev/sda1
/dev/sda1: LABEL="/" UUID="ee7cf0a0-1922-401b-a1ae-6ec9261484c0" SEC_TYPE="ext2" TYPE="ext3"

このリンクで詳細を確認できます


12
ほんの少しのコメント:グループのメンバーでdiskあることが実行に十分であるように見えますblkid。完全なスーパーユーザー権限は不要です。
arielf

10
UUID のみが必要な場合(スクリプトでの解析など)、を実行できますblkid /dev/sda1 -s UUID -o value
ジャックオコナー

3
ここの簡単なコメント:私のディストリビューション(Debian 8)では、これはUUIDと "PARTUUID"を生成しますが、これはかなり混乱します。値を1つだけ与える{lsblk}コマンドを使用しました。
タクマー

2
これはかなりの時間を節約しますが、私はblkid /dev/sd*すべてのドライブをリストすることを好みます。:)
ZaLiTHkA

2
GPTパーティションディスクのPARTUUIDは、パーティションのGPT UUIDであり、その中のファイルシステムではありません。ファイルシステムがまだ作成されていない場合に役立つかもしれません。MBRパーティションディスクでは、PARTUUIDは実際のUUIDではなく、単にMBRからのWindowsディスク署名+ダッシュ+パーティション番号です。
telcoM

31

使用するのに最適なコマンドは lsblk -fです。同じドライブでLVM、crypto_LUKS、または複数のボリュームグループを使用する場合、すべてのデバイスとパーティション、それらのマウント方法(ある場合)、およびデバイスのツリー構造がリストされます。


10

これは私のために働く:

ls -la /dev/disk/by-uuid

パーティションのタイプを確認する場合は、次を使用します。

df -Th

ext3またはext2がある場合に表示されます。今日、フォーマットされたext2パーティションがあり、マウントが失敗する原因となったext3であると思ったので、私を助けました。


いつでも試すことができますmount -t auto /dev/sda1 /media/sda1
ott--

8

UUID特定のディスクデバイス(スクリプトで使用するなど)のみを取得するには、次を使用できます。

sudo blkid -s UUID -o value /dev/sdXY

ここ/dev/sdXYで、デバイスの名前です。


6
lsblk -o +uuid,name

-o--output)に追加できるすべての出力を表示するには、

lsblk --help

また、これは仕事をします

# blkid

nameデフォルトでは印刷されませんか?
don_crissti

そうです。教育目的でのみ追加します(必要なフィールドを区切るためにコンマを追加します)
ニコロデビッチ

2

上記の回答は、複数のデバイスまたは同一のUUIDを持つデバイスでは機能しません。

これを試して:

sudo blkid /dev/sd*

1
本当に ?つまり、最も投票された答えは機能しませんか?
-don_crissti

Universally Unique Identifier(UUID)は常に一意である必要があります。UUIDの全体的な目的は、一意で、普遍的になることです。そうでない場合、問題があります。少なくともネットワークデバイスでは、複製されたVMでUUIDが重複しているのを見ました。
ステファンLasiewski

5
ddコマンドでパーティションのクローンを作成すると、コピーのuuidは同じになり、はい、それは問題です。ここでの他の答えはそれを示しません。
ケビン

1

次のコマンドラインを使用すると、UUIDとパーティションへのマッピングを確認できます。

ls /dev/disk/by-uuid -lt

lrwxrwxrwx 1 root root 10 Sep  1 18:51 57eacf4e-1940-436e-b945-85f8d4833aa5 -> ../../sda2
lrwxrwxrwx 1 root root 10 Sep  1 18:51 656f4cae-8527-43a0-a80f-00ac82818744 -> ../../sda1
lrwxrwxrwx 1 root root  9 Sep  1 18:51 d627595d-4060-440e-8380-a1fe9f3f2a81 -> ../../md0
lrwxrwxrwx 1 root root 10 Sep  1 18:51 0dfd6dfe-1852-460d-852c-676a5b9035ed -> ../../sda4
lrwxrwxrwx 1 root root 10 Sep  1 18:51 b1ddf850-8f81-429f-a653-38ae4a4ebb6f -> ../../sda3
lrwxrwxrwx 1 root root  9 Sep  1 18:51 b4b729f7-5699-411c-8f5a-424bbc7c89fc -> ../../sdb

なぜ私たちはsdaのuuidを見ることができます
Honghe.Wu

パーティションごとに1つのファイルシステムのUUIDが1つあります。sdaでは、4つのパーティションがあるため、4つのUUIDがありました。wiki.debian.org/Part-UUID
ニコラスゲリネ

1

私はあなたと同じ問題を抱えています:/dev/sd**再起動後のカーネルによる名前変更:

もちろん、私の自動マウントはすべて/etc/fstabLABELまたはUUIDによって参照されるため、基本的には問題ありません。そして、上記のすべてのコマンド、blkidまたはlsblkは、この種の情報を提供します。

しかし、トラブルは、私の場合のように、現在起動しているシステムの視点でRAWモードでパーティションを使用している場合に開始されます:たとえば、VirtualBoxの仮想ディスクを作成するためにパーティションをrawデバイスとして使用このパーティションへの参照は次のようなものです:)/dev/sdf3またはパーティションはrawデバイスとして使用され、iSCSI用のLUNを作成します(したがって、このパーティションへの参照は次のようになります/dev/sdc6

ブート時に、たとえばrc.localで、信頼できる方法/dev/sdXXで、専用のRAWパーティションのデバイスを見つけ、ファイルを調整する必要があります。

実施例1

このrawディスクのVirtualBoxディスク* .vmkの説明。

\# Extent description
RW 488397167 FLAT "/dev/sdXX" 0

その後、VirtualBoxサービスを再起動します

実施例2

tgtd構成では/dev/sdd6、ビルド時にターゲット:target0が関連付けられていました。再起動後、同じパーティションの名前が変更されます。/deb/sdc6 これは、リムーバブルディスク、USBまたはeSATAで発生します。では、新しいデバイスを自動的に見つける方法は?再び/etc/rc.d/rc.local

そのため、この場合、新しいデバイス名を見つけるための信頼できる方法が必要です。GPTパーティションは、GPTテーブルに記述されたGPTパーティションに一意のGUIDを提供します。

gdiskは、リストモードではこの情報を提供しませんが、iコマンドを使用した対話モードでのみ提供します。幸いなことに、blkidはそれを行います!

その/dev/sdXXため、パーティション作成時に通知されたGUIDに関連付けられているすべてのディスク(device )を調べるには、シェルスクリプトを記述する必要があります。

search_device_by_partUUID.shのようなもの:

\#!/bin/bash

PART_UUID=$1
if [ "$PART_UUID" = "" ]
then
    echo "Syntax: $0 <a valid partition UUID>"
    exit 3
fi
lsblk | grep '^sd' | awk '{print $1}' | while read DISK_DEVICE
do 
    INFO=`blkid /dev/${DISK_DEVICE}* | grep "PARTUUID=\"$PART_UUID\"" `
    if [ "$INFO" != "" ]
    then
        echo INFO : "$INFO"
        BLK_DEVICE=`echo "$INFO" | awk '{print $1}'`
        echo $BLK_DEVICE > /dev/shm/blkdevice
        echo -n "BLK_DEVICE : " ; cat /dev/shm/blkdevice
    fi
done

そして/dev/shm/blkdevice、rc.localスクリプトでを使用します。


0

ハードディスクパーティションのuuidを確認するには、Linux CDを使用してシステムを起動し、コンピュータマウントに移動して、表示するパーティションをクリックします。Linuxパーティションのuuid番号が表示されます。

Linux CDの起動後にLinux Diskユーティリティを実行して、ディスクのUUIDを確認することもできます。


「マイコンピュータマウント」とは何ですか?「gnome-disk-utility aka Disks」のように聞こえる「Linux Disk utility」とは何ですか?
Xen2050
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.