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:<b>$ vditool DUMP test.vdi </b>
vditool Copyright (c) 2008 Sun Microsystems, Inc.
Dumping VDI image file="autotest.vdi" into the log file...
Log created: 2009-12-30T19:18:30.651261000Z
Dumping VDI image "autotest.vdi" mode=r/o fOpen=1 File=00000003
Header: Version=00010001 Type=2 Flags=0 Size=67108864
Header: cbBlock=1048576 cbBlockExtra=0 cBlocks=64 cBlocksAllocated=64
Header: offBlocks=512 <b>offData=1024</b>
Header: Geometry: C/H/S=130/16/63 cbSector=512
Header: uuidCreation={7826ef35-6189-42cf-bbad-4f39501c47ca}
Header: uuidModification={477d2b77-860f-41d2-bcf4-0597f26db977}
Header: uuidParent={00000000-0000-0000-0000-000000000000}
Header: uuidParentModification={00000000-0000-0000-0000-000000000000}
Image: fFlags=00000000 offStartBlocks=512 offStartData=1024
Image: uBlockMask=000FFFFF uShiftIndex2Offset=20 uShiftOffset2Index=20 offStartBlockData=0
The operation completed successfully!
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:# losetup -f
/dev/loop0
# losetup --offset 1024 --sizelimit 67108864 /dev/loop0 test.vdi
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:# fdisk -lu /dev/loop0
Disco /dev/loop0: 67 MB, 67076608 bytes
255 heads, 63 sectors/track, 2481 cylinders, 39860255 sectores en total
Units = sectores of 1 * 512 = 512 bytes
Disk identifier: 0xa453a453
Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/loop0p1 63 38106179 19053058+ 83 Linux
/dev/loop0p2 38106180 39857264 875511 82 Linux swap / Solaris
# mount /dev/loop0 /mnt -t ext3 -o loop,offset=$((63*512))
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:# losetup -d /dev/loop0
Referencias
[ show comments ]
blog comments powered by Disqus