Получить LVM LV / VG / PV имя из UUID

Физическая безопасность - это безопасность. У вас есть три варианта:

  1. Войти в систему как root, либо с консоли, либо по ssh.
  2. Загрузиться в однопользовательском режиме, который традиционно не требует пароля root (но в вашей системе может).
  3. Смонтируйте образ диска из другой ОС.

Любой из этих способов даст вам возможность изменить права собственности на любой файл на диске. Если ни один из этих вариантов вам не подходит, вам не повезло, но вы также не контролируете ситуацию: могут произойти другие вещи - не ошибки - которые требуют доступа к консоли.

3
21.09.2017, 06:12
3 ответа

Вы можете напрямую фильтровать вывод команд LVM, используя опцию -S:

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

Это также работает с vgsи lvsдля поиска VG и LV.

Чтобы избежать пробелов в начале вывода, добавьте--config 'log{prefix=""}':

# pvs --noheadings -o name -S uuid=MtLb3p-MUle-8fyk-fy6m-z99n-V9mi-xxxxxx --config 'log{prefix=""}'
/dev/sdb3
9
27.01.2020, 21:09

Вы можете использовать команду {lv,vg,pv}sи awk, например:

$ uuid="MtLb3p-MUle-8fyk-fy6m-z99n-V9mi-xxxxxx" 
$ sudo pvs -o UUID,NAME --noheadings | awk "\$1 == \"$uuid\" { print \$2 }"
/dev/sdb3
0
27.01.2020, 21:09

Только для PV мы имеем общий случай блочного устройства:

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

Это будет работать на любом блочном устройстве (, а также сLABEL=).


Интересно, что вы можете искать /etc/fstabс помощью:

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

И $sourceбудет иметь правильный формат для перехода к blkid -t.

1
27.01.2020, 21:09

Теги

Похожие вопросы