Montando particiones LVM en Ubuntu

Algunas veces durante el desarrollo de una forénsica digital, nos topamos con ciertas necesidades, una de ellas es la de montar particiones de discos lógicas conocidas en el mundo linux como LVM, una partición lógica o volumen lógico puede ocupar el espacio físico de uno a más discos, como se puede ver en la.

 Lvm

Imagen creada por originalmente por  Emanuel Duss y adaptada por  Perhelion usada bajo licencia Creative Commons Attribution-Share Alike 3.0 Germany

 

Lo interesante del caso es que cuando se hace una imagen del disco a analizar utilizando herramientas como dd o alguna otra similar  lo más probable es que no se pueda montar el disco directamente como estamos acostumbrados, porque el comando mount va a ser incapaz de obtener información de la tabla de particiones, por lo tanto es necesario realizar unas tareas previas.

El 13 de enero de 2013 ya había realizado un post en Google+ con las instrucciones para poder montar particiones LVM en Ubuntu 12.04, en este post voy a presentar los pasos, con algún texto explicativo que lo apoye. Falko Timme tiene publicado en su sitio HowToForge un curso en línea que explica con lujo de detalles el funcionamiento de LVM

Se supone que las versiones recientes de Ubuntu traen los módulos necesarios para brindar soporte al acceso a este tipo de particiones, sin embargo no está de más hacer la correspondiente validación, se requiere tener instalado los siguientes paquetes y librerías: a) lvm2 b) dmsetup c) libdevmapper, actualmente todos estan contenidos dentro del paquete lvm2, uno de los módulos que hacen falta en el kernel y viene incluido en dichos paquetes es dm-mod

Para verificar si este módulo esta cargado en el kernel, listamos el contenido con el comando lsmod

 lsmod

En caso de que el módulo no esté cargado en el kernel, lo cargamos con el comando modprobe para lo cual se requiere privilegio de administrador.

sudo modprobe dm-mod

Suponiendo que la imagen del disco creada con dd que contiene la partición que deseamos montar se llame: rawfile_dd.raw utilizamos losetup, para poder tener acceso al archivo como si se tratase de un disco. Le asignamos el primer dispositivo LOOP disponible, por ejemplo: loop0.

 sudo losetup /dev/loop0 /home/rawfile_dd.raw

Ahora podemos revisar la tabla de particiones con fdisk

sudo fdisk /dev/loop0

  • Disk /dev/loop0: 36.4 GB, 36414750720 bytes
  • 255 heads, 63 sectors/track, 4427 cylinders, total 71122560 sectors
  • Units = sectors of 1 * 512 = 512 bytes
  • Disk identifier: 0xa36da36d
  • Device Boot      Start         End      Blocks   Id  System
  • /dev/loop0p1              63    70621739    35310838+  8e  Linux LVM <—– to mount this volume
  • /dev/loop0p2        70621740    71119754      249007+   5  Extended
  • /dev/loop0p5        70621803    71119754      248976   83  Linux

Aquí se puede ver que dicho archivo (disco) tiene 3 particiones, la primera partición es de tipo 8e (Linux LVM) comienza en el sector 63 y termina en el sector 70621739 cada sector es de 512 bytes, si deseamos montar dicha partición debemos calcular la cantidad de bytes que hay que desplazar (offset), para tener acceso a dicha partición.

63*512=32256 (offset)

Eliminamos la referencia al dispositivo LOOP0 que ya habíamos montado:

sudo losetup -d /dev/loop0

Y lo montamos tomando en cuenta el desplazamiento calculado en el paso anterior, de esta forma nuestro disco LOOP, estará apuntando a la primera partición.

sudo losetup /dev/loop0 /home/rawfile_dd.raw -o 32256

Ahora, si podemos utilizar el utilitario para explorar los volúmenes lógicos disponibles

sudo vgscan

  • Reading all physical volumes.  This may take a while…
  • Found volume group “VolGroup00” using metadata type lvm2

Se activa el acceso al volumen deseado:

 sudo vgchange -ay VolGroup00

El comando lvs nos permite visualizar la información que necesitamos de los volúmenes lógicos para poder montarlos con mount.

sudo lvs

  • LV              VG               Attr      LSize     Origin   Snap%  Move Log Copy%  Convert
  • root           VolGroup00   owi-a-   52.00M
  • other       VolGroup00   swi-a-   8.00M    root     0.20

sudo mount  /dev/VolGroup00/root   /mnt/mount_point -o ro,user

 Ahora tengo acceso a los datos para realizar la forénsica en modo de solo lectura.

 

NOTA:

Si desea probar estos procedimientos hágalo bajo su propia responsabilidad, no me hago responsable por la pérdida de datos o la configuración que tenga su equipo.

El procedimiento aquí documentado es solo para referencia de autor y fue el resultado de la experimentación propia en una máquina linux Ubuntu 12.04 a principios del año 2013, no existe garantía de que funcione en otras plataformas o sistemas operativos. La máquina utilizada contaba con todos los paquetes de software necesarios para realizar el trabajo, sistema operativo actualizado.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s