web-dev-qa-db-ja.com

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

俺の /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を確認できますか?

177

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

155
Michael Mrozek

blkidというツールがあります(rootとして、またはSudoと一緒に使用してください)。

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

詳細は this link で確認できます

186
setzamora

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

46
John Rea

特定のディスクデバイスのUUIDのみを取得するには(たとえば、スクリプトで使用するため)、以下を使用できます。

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

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

14

これは私にとってはうまくいきます:

ls -la /dev/disk/by-uuid

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

df -Th

ext3またはext2があるかどうかが表示されます。今日、フォーマットされたext2パーティションがあり、それがext3であると思っていたので、それは私を助けました。

11
MIrra
lsblk -o +uuid,name

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

lsblk --help

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

# blkid
7
Nico Rodsevich

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

これを試して:

Sudo blkid /dev/sd*
2
Kevin

次のコマンドラインを使用すると、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
1

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

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

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

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

例1

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

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

virtualBoxサービスを再起動します

例2

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

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

gdiskは、リストモードではこの情報を提供しませんが、iコマンドを使用したインタラクティブモードでのみ提供します。幸い、blkidがそれを行います!

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

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

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

このような場合は、/ dev/disk/by-partuuidを確認する必要があります。各ドライブのPARTUUIDを/ dev/sdb1などのエントリにマッピングするシンボリックリンクがあります。

0
Sachin Mokashi

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

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

0
man puk tam