Montar una partición de un disco VDI de VirtualBox
Esta receta explica cómo montar cualquier partición que esté contenida dentro de un fichero .vdi (disco virtual de VirtualBox)
Lo primero es tener claro la estructura de un fichero VDI. En realidad, no es más que un fichero de imagen de disco (iso) con una cabecera especial:
Cabecera VDI
MBR
Partición 1
Partición 2
Averiguar la longitud de la cabecera
Para conseguir esto, hace falta tener el ejecutable vditool que viene con la distribución de VirtualBox. Es necesario tener la versión 1.6.6 o anterior, ya que desde la versión 2 en adelante, esta herramienta (o mejor dicho, la funcionalidad que vamos a utilizar) desapareció.
Con dicha herramienta, realizamos lo siguiente:
El valor de offData que he señalado en negrita, es la longitud en bytes de la cabecera VDI.
Crear un dispositivo de bloques
Un disco, sea virtual o no, es un dispositivo de bloques, así que tenemos que asociar uno de los ficheros especiales de dispositivos de bloques con nuestro fichero VDI. Para ello, utilizaremos el comando losetup. Primero necesitamos saber el nombre de un dispositivo que no se esté usando y esté disponible:
Ahora, lo que vamos a hacer es vincular el dispositivo con el fichero VDI, pero saltándonos la cabecera. De esta forma, será como si fuera un disco real:
Si os habéis fijado, en offset he colocado la longitud de la cabecera VDI. El valor que le he puesto a sizelimit es el resultado de restarle la longitud de la cabecera al tamaño del fichero VDI (todo en bytes). De esta forma, nos aseguramos que el dispositivo "no se sale" del fichero (la podríamos liar parda).
Si el disco vdi fuera o fuese un disco recién creado y estuviera vacío, es en este momento cuando tenéis que particionarlo. Primero hay que crear una tabla de particiones, y luego las particiones. Podéis hacer todo con el comando parted.
Montar la partición
Ya casi estamos. Ahora, necesitamos saber dónde empieza la partición que queremos montar. Como tenemos nuestro disco en /dev/loop0, podemos averiguar esto con el comando fdisk:
Es importante usar la opción -u con fdisk para que nos dé la información en sectores (por defecto utiliza cilindros como unidad). Sabiendo que cada sector son 512 bytes (según fdisk), podemos montar nuestra partición con el comando mount. Por ejemplo, si queremos montar la primera partición, haremos lo siguiente:
Como la partición comienza en el sector 63 y cada sector son 512 bytes, hay que saltarse 63*512 bytes hasta encontrar el principio de la partición.
Desmontar
Una vez que acabéis de usar la partición, desmontadla normalmente. Acordaros después de desvincular el fichero de dispositivo del disco vdi. Esto se hace con: