俺の /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を確認できますか?
/dev/disk/by-uuid
には、各ドライブのUUIDを/dev
のエントリにマッピングするシンボリックリンクがあります(例:/dev/sda1
)
blkid
というツールがあります(rootとして、またはSudo
と一緒に使用してください)。
# blkid /dev/sda1
/dev/sda1: LABEL="/" UUID="ee7cf0a0-1922-401b-a1ae-6ec9261484c0" SEC_TYPE="ext2" TYPE="ext3"
詳細は this link で確認できます
使用するのに最適なコマンドはlsblk -f
。同じドライブでLVM、crypto_LUKS、または複数のボリュームグループを使用している場合は、すべてのデバイスとパーティション、それらのマウント方法(ある場合)、およびデバイスのツリー構造がリストされます。
特定のディスクデバイスのUUID
のみを取得するには(たとえば、スクリプトで使用するため)、以下を使用できます。
Sudo blkid -s UUID -o value /dev/sdXY
どこ /dev/sdXY
はデバイスの名前です。
これは私にとってはうまくいきます:
ls -la /dev/disk/by-uuid
パーティションのタイプを確認する場合は、次を使用します。
df -Th
ext3またはext2があるかどうかが表示されます。今日、フォーマットされたext2パーティションがあり、それがext3であると思っていたので、それは私を助けました。
lsblk -o +uuid,name
-o
(--output
)に追加できるすべての出力は、
lsblk --help
また、これは仕事をします
# blkid
上記の回答は、複数のデバイスまたは同じUUIDを持つデバイスでは機能しません。
これを試して:
Sudo blkid /dev/sd*
次のコマンドラインを使用すると、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
私はあなたと同じ問題を抱えています:再起動後にカーネルによって/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などのエントリにマッピングするシンボリックリンクがあります。
ハードディスクパーティションのuuidを表示するには、Linux CDでシステムを起動し、コンピューターのマウントに移動して、表示したいパーティションをクリックします。 Linuxパーティションのuuid番号が表示されます。
Linux CDの起動後にLinux Diskユーティリティを実行して、ディスクuuidを確認することもできます。