-
df -h
listará todos os dispositivos / montagens. -
lsof /
listará todos os arquivos abertos em root. -
lvs
,lvscan
elvdisplay
são usados para informações de LVM.
Como faço para obter a lista de todos os dispositivos que são dependentes de raiz, ou montados no sistema de arquivos raiz ou criados a partir de dispositivos raiz (volume lógico na parte superior do volume físico, que é o dispositivo raiz).
A resposta deve ser um script (pode ser shell) que retornará a lista de todos os dispositivos dependentes da raiz.Eu não quero usar nenhum comando de pacote específico do LVM (como o lvdisplay etc).
Como resposta postada por @Oli,
mount | awk ' == "/" {printf }' | sed s'/.$//'
Lista apenas o dispositivo. Mas quero saber qual de sua partição é, na verdade, dependente de raiz.
Eu tentei obter qual dispositivo LVM está mapeado para o dispositivo físico usando dmsetup deps
Eu tenho
ubuntu-swap_1: 1 dependencies : (8, 5)
ubuntu-root: 1 dependencies : (8, 5)
Acima me fornece um mapeamento (pode ser obtido comparando (major, minor)
number), mas como posso garantir que o LVM é um dispositivo raiz?
df -h
listará todos os dispositivos / montagens. lsof /
listará todos os arquivos abertos em root. lvs
, lvscan
e lvdisplay
são usados para informações de LVM. Bem, para descobrir o dispositivo raiz (virtual ou físico), estou usando:
mount | awk ' == "/" {printf }' | sed s'/.$//'
Por lá, é bem simples. Você tem um dispositivo ou tem um dispositivo mapeado. Se estiver mapeado, dmsetup info
pode ajudar a resolver dispositivos físicos:
$ ROOTDEV=$(mount | awk ' == "/" {printf }' | sed s'/.$//')
$ sudo dmsetup info -Co blkdevs_used $ROOTDEV | tail -n+2
sdg,sdf
Claro, se $ROOTDEV
não for um dispositivo mapeado, tudo explodirá em uma bagunça quente e pegajosa. Deve-se notar que o dm-mapper pode mapear as partições, então você pode precisar recorrer pelos dispositivos retornados até terminar com sd*
strings.
Não tenho ideia de como isso funciona em um ambiente LVM. Eu testei no JBOD e no dmraid-1.