Table des matières
Premières approches
On peut identifier l’UUID par trois approches différentes :
Avec le petit fdisk
:
$ fdisk -l fcsc.raw | grep "Disk identifier"
Disk identifier: 60DA4A85-6F6F-4043-8A38-0AB83853E6DC
Avec son grand frère cfdisk
:
$ cfdisk fcsc.raw
Label: gpt, identifier: 60DA4A85-6F6F-4043-8A38-0AB83853E6DC
Avec l’oncle blkid
:
$ blkid fcsc.raw
fcsc.raw: PTUUID="60da4a85-6f6f-4043-8a38-0ab83853e6dc" PTTYPE="gpt"
Méthode à-la-Python
Si on se base sur la documentation de l’entête GPT : https://uefi.org/specs/UEFI/2.10/05_GUID_Partition_Table_Format.html#gpt-header
Le GUID se trouve à l’offset 56 après la signature GPT.
import sys
with open(sys.argv[1], "rb") as file:
while buffer := file.read(8):
if buffer == b"\x45\x46\x49\x20\x50\x41\x52\x54":
print(f"GPT Signature found at offset {file.tell()}")
break
file.seek(file.tell() - 8 + 56)
GUID = file.read(16)
print("GUID =", GUID.hex())
print("GUID =", GUID[0:4][::-1].hex(),
GUID[4:6][::-1].hex(),
GUID[6:8][::-1].hex(),
GUID[8:10].hex(),
GUID[10:16].hex()
)
Et en l’exécutant :
$ ./scan.py fcsc.raw
GPT Signature found at offset 520
GUID = 854ada606f6f43408a380ab83853e6dc
GUID = 60da4a85 6f6f 4043 8a38 0ab83853e6dc