-
df -hlistará todos os dispositivos / montagens. -
lsof /listará todos os arquivos abertos em root. -
lvs,lvscanelvdisplaysã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.