Bash, zjištění LUKS jednotky podle disku?

Bash, zjištění LUKS jednotky podle disku?
« kdy: 14. 12. 2021, 11:16:18 »
Mam zadáno UUID disku a potřebuju zjistit, zda jde o LUKS jednotku a pokud ano, jestli je už připojena a pod jakým jménem (/dev/mapper/name)
Normálně bych kouknul na lsblk, ale přemýšlím, jestli existuje jednodušší metoda jak parsovat výpis z lsblk...

Kód: [Vybrat]
ST3250410AS           sdb                                232,9G crypto_LUKS        e1eb1e8b-0e22-4591-aea9-6b8cf89ab89f
                      `-luks2                            232,9G zfs_member  zpool2 6887577636413785047

tedy ze zadání "e1eb1e8b-0e22-4591-aea9-6b8cf89ab89f" získat "luks2"
PMD85 -> Didaktik Gama -> PC XT -> ... x86/x51/ARM
Basic -> Turbo Pascal -> C++ -> Turbo ASM -> C# -> PHP -> Bash :-)


Re:Bash, zjištění LUKS jednotky podle disku?
« Odpověď #1 kdy: 14. 12. 2021, 12:06:09 »
Parsovat výstup z lsblk ani nemusíš:

Kód: [Vybrat]
$ lsblk -drno FSTYPE /dev/disk/by-uuid/$UUID
crypto_LUKS

EDIT: Jo, ty jsi vlastně potřeboval ještě zjistit, jestli je nějaký oddíl z LUKS kontejneru připojený - tam asi bude třeba něco zparsovat, ale pořád by to měla být triviální záležitost.
« Poslední změna: 14. 12. 2021, 12:07:42 od uwe.filter »

k3dAR

  • *****
  • 2 287
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Bash, zjištění LUKS jednotky podle disku?
« Odpověď #2 kdy: 14. 12. 2021, 12:34:23 »
Kód: [Vybrat]
UUID=e1eb1e8b-0e22-4591-aea9-6b8cf89ab89f; sudo cryptsetup isLuks /dev/disk/by-uuid/${UUID} && (lsblk --noheadings /dev/disk/by-uuid/${UUID} -o NAME --list | sed '2q;d')

Re:Bash, zjištění LUKS jednotky podle disku?
« Odpověď #3 kdy: 14. 12. 2021, 12:44:37 »
A-ha, ta poslední konstrukce mě nějak unikala!
Žil sem pořád přesvědčení, že musím nějak rozložit ty stromový závislosti...

To je ono, THX!
PMD85 -> Didaktik Gama -> PC XT -> ... x86/x51/ARM
Basic -> Turbo Pascal -> C++ -> Turbo ASM -> C# -> PHP -> Bash :-)