Linux/Unix Shell Scripting - Obtener el disco de una partición

 
Vista:
Imágen de perfil de Simón
Val: 68
Plata
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Obtener el disco de una partición

Publicado por Simón (19 intervenciones) el 15/12/2019 14:12:31
Buenas. Llevo tiempo buscando por la red como obtener desde un script de bash el disco al que pertenece una partición.
Hasta ahora he conseguido obtener la partición o volumen que contiene un directorio:
1
part=$(df $directorio | cut -d " " -f 1 | grep "/")
Pero ahora y a patir de $part quisiera obtener el device que lo contiene.
Esto cuando es una estructura de particiones simple no hay problema, pero se complica si por el medio se interpone una partición cifrada o un volumen.
Ejemplo: /dev/mapper/DiscoA

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 44
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Obtener el disco de una partición

Publicado por joel (14 intervenciones) el 15/12/2019 20:00:56
Hola Simón, no se si te puede servir...

1
cat /etc/fstab | grep " / " | cut -d' ' -f1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Simón
Val: 68
Plata
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Obtener el disco de una partición

Publicado por Simón (19 intervenciones) el 15/12/2019 21:33:15
Gracias joel pero eso me da un listado del contenido de fstab y muchos discos usb son montados con posterioridad al arranque. Además lo que busco es obtener en una variable de script el disco que contiene una partición concreta contenida en otra variable.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Obtener el disco de una partición

Publicado por Tom (336 intervenciones) el 15/12/2019 20:12:50
'df' te dice el dispositivo de disco montado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Simón
Val: 68
Plata
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Obtener el disco de una partición

Publicado por Simón (19 intervenciones) el 15/12/2019 21:37:52
Gracias, pero df me dice la partición montada y su punto de montaje, no el disco al que pertenece esa partición.
Si fuera un caso clásico como por ejemplo
1
/dev/sdd1
sería fácil de obtener el disco con solo quitarle el numero, pero cuando es una partición cifrada o un volumen tiene el formato
1
/dev/mapper/nombre
de donde no se puede deducir el disco en al que pertenece esa partición.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 44
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Obtener el disco de una partición

Publicado por joel (14 intervenciones) el 16/12/2019 09:01:26
Entiendo...

Es un tanto mas complicado con LVM... o yo no conozco una manera mas sencilla...

Hay que saber que un VG (volume grup) puede pertenecer a un disco o varios discos
Primeramente hay que saber a que VG pertenece la partición, por ejemplo:
1
/dev/mapper/system-home
Determina que el LV (logical volume) es home y el VG es system

Para obtener los discos a los que pertenece el VG system puedes utilizar el comando pvs o pvdisplay


La verdad no se si hay alguna manera mas sencilla de ver a que disco o discos pertenece un volumen lógico.

Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Simón
Val: 68
Plata
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Obtener el disco de una partición

Publicado por Simón (19 intervenciones) el 16/12/2019 10:53:33
Muchas gracias por tu tiempo.
Lo cierto es que solo hace muchos años he trabajado con volúmenes montados sobre varios discos y no es el caso. Tampoco le veo mucho sentido en ese caso a lo que pretendo.
Mi problema se centra más en particiones cifradas con Luks que suele adoptar el mismo formato pero siempre esta contenido dentro de un solo disco.
El comando 'lsblk' permite, en el caso de particiones normales obtener el padre de una partición
1
lsblk -o PKNAME /dev/sd??
pero no se obtiene resultado cuando está mapeada.
De todas formas, repito gracias. seguiré buscando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 44
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Obtener el disco de una partición

Publicado por joel (14 intervenciones) el 16/12/2019 13:11:31
No dispongo de ninguna maquina con particiones cifradas con Luks... siento no poder serte de mas ayuda.

Te agradecería que si encuentras la maneras nos la comentaras...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Simón
Val: 68
Plata
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Obtener el disco de una partición

Publicado por Simón (19 intervenciones) el 19/12/2019 01:07:31
Aún no he encontrado la forma de manejarlo a mi gusto pero la información la suministra el comando lsblk.
1
lsblk -fJp -o +TYPE
Esto nos da un objeto json con todos los datos que pueden ser accedidos con la utilidad jq.
El problema ahora reside en recorrer la información de abajo a arriba, justo al revés de como se estructura un objeto json. El dato de partida es el punto de montaje y lo que se busca es el nombre del volumen, de la partición y del disco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar