vfat
パーティションのUUIDを変更するにはどうすればよいですか?ために ext2/ext3/ext4
これは単純な
tune2fs -U <new-uuid> /dev/<partition>
vfat
パーティションに同様のコマンドはありますか?
なぜこれを実行するのかを理解しておくと役立ちます。私はあなたが望むことをするためのツールを知りませんが、他のオプションがあるかもしれません...
技術的には、FATパーティションにはUUIDがありません。これらにはシリアル番号があり、UUIDの代わりにいくつかのLinuxツールおよびファイル(mount
や/etc/fstab
など)が使用できます。 GPTディスクでは、FATファイルシステムを保持するパーティションにGUIDがあり、(最近の十分なLinuxディストリビューションでは)mount
および/etc/fstab
でPARTUUIDと呼ばれることがあります。 FATファイルシステムと(GPTディスク上の)FATファイルシステムには、mount
または/etc/fstab
でも使用できる名前を付けることができます。これらの機能は、FATシリアル番号の代わりに使用できる場合があります。
FATパーティションのシリアル番号を変更するツールはわかりませんが、-i
オプションをmkdosfs
で作成してファイルシステムを作成すると、次のように設定できます。
mkdosfs -i ABCD1234 /dev/sdc1
この例では、/dev/sdc1
のシリアル番号をABCD-1234に設定しています。ファイルシステムが十分に小さい場合は、それをバックアップし、目的のシリアル番号を使用して新しいファイルシステムを作成し、それを復元できます。シリアル番号をディスクまたはインストールセットアップスクリプトの一部として設定する場合は、mkdosfs
を使用してシリアル番号を設定するだけで十分です。
パーティションのGUIDをgdisk
またはsgdisk
で変更できます。後者を使用すると、次のように-u
オプションを介してジョブを実行できますに:
sgdisk -u 1:BC87D91A-02F3-4C52-87CD-536A3DF2A074 /dev/sdc
この例では、GUID of /dev/sdc1
to BC87D91A-02F3-4C52-87CD-536A3DF2A074。(-u
はコロンで区切られたオプションのセットを受け取り、最初のそのうちの2番目はパーティション番号で、2番目はGUID値です。ディスク全体のデバイスのファイル名[notパーティション]が最後のオプションです。)
ニーズに応じて、これらのアプローチのいずれかが機能する場合があります。より広い範囲に移動すると、dosfslabel
ツールを使用してファイルシステムのラベルを設定できます。または、sgdisk
の-c
オプションを使用してGPTパーティションの名前を変更できます。これは、-u
とよく似ていますが、GUIDではなく名前を使用します。
FAT32のボリュームIDは、オフセット67(0x43)の最初のセクターに保存されています。FAT16の場合、39(0x27)にあります。 dd
コマンドを使用してそれを読み取ることができます(/dev/sdc1
を実際のパーティションで):
dd bs=1 skip=67 count=4 if=/dev/sdc1 2>/dev/null \
| xxd -plain -u \
| sed -r 's/(..)(..)(..)(..)/\4\3-\2\1/'
そしてもちろん、新しいUUIDを保存することもできます(1234-ABCD
希望の値で):
UUID="1234-ABCD"
printf "\x${UUID:7:2}\x${UUID:5:2}\x${UUID:2:2}\x${UUID:0:2}" \
| dd bs=1 seek=67 count=4 conv=notrunc of=/dev/sdc1
参照:FAT物理構造(ボリュームシリアル番号オフセット): https://technet.Microsoft.com/en-us/library/cc776720(v = ws.10).aspx#w2k3tr_fat_how_gkxz
たとえば、特定のパーティションを設定するのではなく、vfatパーティションに新しいランダムUUIDを設定したい場合があります。たとえば、dd
でパーティションを複製した後の競合を回避します。この場合、単純な解決策は、gparted
を使用することです。パーティションを右クリックして、[新しいUUID]をクリックします。