No Ubuntu, montei um arquivo .img de disco bruto como um dispositivo de loop que contém um LVM criptografado por LUKS com uma instalação do Ubuntu nele.
É montado assim: (a saída é delsblk -o NAME,PKNAME,KNAME,FSTYPE,SIZE /dev/loop0
NAME PKNAME KNAME FSTYPE SIZE
loop0 loop0 240G
├─loop0p1 loop0 dm-11 ext4 487M
├─loop0p2 loop0 dm-12 1K
└─loop0p5 loop0 dm-13 crypto_LUKS 239.5G
└─cloneluks dm-13 dm-14 LVM2_member 239.5G
├─ubuntuclone-lv_swap dm-14 dm-15 8G
└─ubuntuclone-lv_root dm-14 dm-16 ext4 231.5G
Existe algum comando que eu possa usar em um script para retornar o "dispositivo de bloco" raiz (não tenho certeza se esse é o termo correto) quando eu dou o nome do LV montado?
Eu esperava que isso lsblk -no pkname /dev/ubuntuclone/lv_root
funcionasse, mas não gera nada - usar kname
me dá dm-16
.
Eu quero chegar a loop0
.
Também vi esta resposta que sugeria que eu poderia usar "$(basename "$(readlink -f /dev/VG/LV)")"
, mas não consegui descobrir como usá-la:
dev=/dev/ubuntuclone/lv_root ; echo "$(basename "$(readlink -f $dev)")"
saídas dm-16
.
Não consigo descobrir como "passar" pelo contêiner crypto_LUKS.
É isso que estou procurando:
para entrada:
/dev/ubuntuclone/lv_root
ouubuntuclone-lv_root
Gostaria de obter a saída:
/dev/loop0
Obrigado.
editar: Acho que usar lsblk --json | jq
pode ser exatamente o que eu quero, mas estou tendo muita dificuldade em descobrir os encantamentos corretos para jq
...