blkid
報告されたものとUUIDの違いを説明できる人はいますかmdadm
? CentOSシステムの1つを例にしましょう。
[root@server ~]# blkid | grep /dev/md1
/dev/md1: UUID="32cb0a6e-8148-44e9-909d-5b23df045bd1" TYPE="ext4"
[root@server ~]# mdadm --detail /dev/md1 | grep UUID
UUID : f204c558:babf732d:85bd7296:bbfebeea
なぜ違うの?使用されたUUIDをどのように変更しますかmdadm
?
tune2fs
パーティションのUUIDを変更するために使用することを知っていますが(返された内容が変更されましたblkid
)、使用される内容を変更する方法はわかりませんmdadm
。
答え1
最初は、ブロックデバイス上のext4ファイルシステムのUUIDを報告しますmd
。これは、システムがシステムで利用可能なファイルシステムの中でファイルシステムを一意に識別するのに役立ちます。これはファイルシステムの構造、すなわちmdデバイスに格納されたデータに格納されます。
2番目はRAIDデバイスのUUIDです。これは、mdサブシステムが特定のRAIDデバイスを一意に識別するのに役立ちます。特に、RAIDアレイの一部であるすべてのブロックデバイスを識別するのに役立ちます。これは配列のメタデータ(各メンバー)に保存されます。アレイメンバーには独自のUUIDもあります(mdシステムではGPTパーティション(GPTパーティションテーブルに保存)、LVMボリュームの場合はパーティションUUIDを持つこともできます...)。
blkid
返される内容はデバイスに格納されている構造の ID であるため、少し誤解を招くおそれがあります(ほとんどのファイルシステム、LVM メンバ、スワップデバイスなど、知っている構造タイプの場合)。さらに、ブロックデバイス(LVMスナップショットなど)が同じUUID構造を持つことは珍しくありません。ブロックデバイスは、構造体にUUIDを含まないコンテンツを含む全てを含むことができる。
たとえば、GPTパーティションで構成される3つのドライブを持つシステムがあるとします。これらのドライブに世界の共通名これを一意に識別します。 3つのドライブがそれぞれ1つのパーティション(/dev/sd[abc]1
)に分割されているとします。各パーティションには、GPTパーティションテーブルに格納されているGPT UUIDがあります。
これらのパーティションがmd RAID5アレイを形成する場合。それぞれはRAIDメンバーとしてmd UUIDを取得し、アレイはmd RAIDデバイスでUUIDを取得します。
/dev/md0
MSDOSまたはGPTタイプのパーティションを使用して、さらにパーティションを分割できます。たとえば、/dev/md0p1
GPT UUID(/ dev / md0のデータに格納されているGPTパーティションテーブルに保存されている)を持つパーティションを持つことができます。
これは再びLVMの物理ボリュームである可能性があります。したがって、PV UUIDが得られます。ボリュームグループにはVG UUIDもあります。
このボリュームグループ内にそれぞれLV UUIDを持つ論理ボリュームを作成します。
LVの1つ(例/dev/VG/LV
:)からext4ファイルシステムを作成できます。ファイルシステムはext4 UUIDを取得します。
blkid /dev/VG/LV
ファイルシステムの(ext4)UUIDが提供されます。ただし、VGボリューム内のパーティションとしてパーティションUUIDも取得されます(一部のパーティションスキーム(MSDOS / MBRなど)にUUIDはありません)。ボリュームグループは、それ自体が別のブロックデバイスであるメンバーPVで構成されています。blkid /dev/md0p1
PV UUIDを提供します。また、GPTテーブルにパーティションUUIDがあります/dev/md0
。/dev/md0
それ自体は他のブロックデバイスで構成されています。blkid /dev/sda1
レイドメンバーUUIDが返されます。また、GPTテーブルにパーティションUUIDがあります/dev/sda
。
答え2
他のUUIDについてはすでに説明しました。ファイルシステムだけにはありません。 RAIDアレイ、デバイス、パーティション、LUKSコンテナ、LVM PV...そして最後に、ファイルシステムなど、さまざまなアイテムのUUIDがあります。
個人的に私を迷惑にするのは、これらのUUIDの形式も異なるということです。
彫刻:
# blkid /dev/sda1
/dev/sda1:
UUID="d8b8b4e5-e47b-2e45-2093-cd36f654020d"
UUID_SUB="3c3e6eac-2139-3f7a-16b7-57280934d88e"
PARTUUID="6a89cedf-69e1-40db-b08c-1c8e45af59f5"
母:
# mdadm --examine /dev/sda1 | grep UUID
Array UUID : d8b8b4e5:e47b2e45:2093cd36:f654020d
Device UUID : 3c3e6eac:21393f7a:16b75728:0934d88e
ご覧のとおり、同じUUIDですが、blkid
ダッシュを使用して印刷され、コロンを使用して印刷され-
ます。だからあなたは..mdadm
:
d8b8b4e5-e47b-2e45-2093-cd36f654020d
d8b8b4e5:e47b2e45:2093cd36:f654020d
特にスクリプトでUUIDを使用したい場合は非常に迷惑です。ある形式から別の形式に変換する方法は明確ではありません。
答え3
"32cb0a6e-8148-44e9-909d-5b23df045bd1"上記のblkid UUIDは正確で、オペレーティングシステムでRAIDアレイを見つけるために使用されます。
mdadmにはオペレーティングシステムでは直接使用されませんが、mdadm.confファイルで使用される独自の「内部」UUIDがあります。たとえば、次のようになります。
"配列/dev/md1レベル=raid1 num-devices=2 uuid=f204c558:babf732d:85bd7296:bbfebeea"
mdadmがblkidから分離されてオペレーティングシステムがUUIDを認識している場合は、UUIDを呼び出さないでください。混乱を避けるために、mduuidまたは別の名前で呼び出す必要があります。