Obtém o nome LV LV / VG / PV do UUID

3

A saída de {lv,vg,pv}display dá:

  • Nome
  • UUID

Como eu encontro um nome LVM dado um UUID?

    
por Tom Hale 21.09.2017 / 05:12

3 respostas

9

Você pode filtrar a saída dos comandos LVM diretamente usando a opção -S :

# pvs --noheadings -o name -S uuid=MtLb3p-MUle-8fyk-fy6m-z99n-V9mi-xxxxxx
  /dev/sdb3

Isso também funciona com vgs e lvs para encontrar VGs e LVs.

Para evitar ter que lidar com os espaços no início da saída, adicione --config 'log{prefix=""}' :

# pvs --noheadings -o name -S uuid=MtLb3p-MUle-8fyk-fy6m-z99n-V9mi-xxxxxx --config 'log{prefix=""}'
/dev/sdb3
    
por 21.09.2017 / 07:49
1

Para PVs somente , temos o caso genérico de um dispositivo de bloco:

$ source=UUID=MtLb3p-MUle-8fyk-fy6m-z99n-V9mi-xxxxxx
$ blkid -t "$source" -o device
/dev/sdb3

Isso funcionará em qualquer dispositivo de bloco (e também com LABEL= ).

Curiosamente, você pode pesquisar /etc/fstab com:

source=$(findmnt -sno SOURCE --raw "$mount")

E $source terá o formato correto para passar para blkid -t .

    
por 21.09.2017 / 10:59
0

Você pode usar o comando {lv,vg,pv}s e awk , por exemplo:

$ uuid="MtLb3p-MUle-8fyk-fy6m-z99n-V9mi-xxxxxx" 
$ sudo pvs -o UUID,NAME --noheadings | awk "\ == \"$uuid\" { print \ }"
/dev/sdb3
    
por 21.09.2017 / 05:16

Tags