Arrancar un pendrive o disco duro USB en VirtualBox | Algo de Linux

viernes, 6 de julio de 2012

Arrancar un pendrive o disco duro USB en VirtualBox

VirtualBox no dispone de una opción para arrancar un dispositivo USB directamente desde una máquina virtual, pero podemos hacerlo, creando un disco virtual asociado al dispositivo.

Para ver qué dispositivo corresponde a nuestro pendrive lo introducimos, abrimos un terminal y ejecutamos, como administrador:

# fdisk -l

El comando nos mostrará todos los dispositivos de almacenamiento detectados, y, entre ellos estará nuestro pendrive. Por ejemplo, en la siguiente salida podemos ver que me ha detectado mi pendrive de 16Gb como /dev/sdb:

Disco /dev/sdb: 15.9 GB, 15879634944 bytes
13 heads, 13 sectors/track, 183520 cylinders
Units = cilindros of 169 * 512 = 86528 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc3072e18

Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sdb1   *          48      183521    15503424    c  W95 FAT32 (LBA)


Vale, pues ahora que ya sabemos que nuestro pendrive es sdb, vamos a utilizar el comando VBoxManage de VirtualBox para crear un disco duro virtual asociado a él:

$ VBoxManage internalcommands createrawvmdk -filename \
  ~/VirtualBox\ VMs/HardDisks/usbdisk.vmdk \
  -rawdisk /dev/sdb

Con el comando anterior, hemos creado un disco virtual llamado usbdisk.vmdk dentro de la carpeta ~/VirtualBox\ VMs/HardDisks/ 
El archivo vmdk podemos crearlo donde queramos. 

Al ejecutarlo obtendremos una salida como la siguiente:

RAW host disk access VMDK file /home/enavas/VirtualBox VMs/HardDisks/usbdisk.vmdk created successfully.
 
Con ésto comprobamos que el disco virtual se ha creado perfectamente.

A partir de ahora, no tenemos más asociar este disco virtual a la máquina virtual en la que queramos arrancar el dispositivo USB. Veamos cómo hacerlo con un ejemplo:

1.- Creamos una nueva máquina virtual:


2.- Elegimos un nombre para la máquina y elegimos un sistema operativo:


3.- Asignamos memoria a nuestra nueva máquina virtual:


4.- Marcamos la opción "Usar un disco duro existente"  y elegimos la imagen de disco duro virtual que creamos anteriormente: usbdisk.vmdk


 5.- Por último, VirtualBox nos muestra el resumen de lo que hemos seleccionado para crear la máquina virtual:


Y eso es todo. Si arrancamos la máquina virtual que acabamos de crear, se nos arrancará el pendrive o disco duro usb que hayamos introducido. Este disco virtual nos servirá para arrancar cualquier dispositivo USB, cuando al conectarlo al sistema se nombre como /dev/sdb. 

Viendo todo ésto, parece interesante tener creada una máquina virtual como ésta, con la que podremos arrancar cualquier pendrive o disco duro usb booteable.

8 comentarios:

Norma Angélica Figueroa Soltero dijo...

Q tal! Oie antes que nada muchas gracias por tu aportacion, apenas estoy empezando a manejar linux y algunas cosas aun me resultan ligeramente desconocidas. Cuando trato de correr el comando para crear el directorio del usbdisk me dice: que el parame -rawdisk es invalida, tienes idea de pq pueda ser esto? Saludos y gracias de antemano

Norma Angélica Figueroa Soltero dijo...

Que tal! Antes que nada mis felicitaciones y agradecimientos por tu post. Intente utilizarlo pero al momento de crear el usbdisk.vmdk me aparece que el parametro -rawdisk no es valido, tienes idea de como solucionarlo? Te lo agradeceria muchisimo ya que apenas estoy aprendiendo a utilizar linux pero la verdad me resulta bastante interesante. Saludos! n.n

Esteban M. Navas Martín dijo...

¿Podrías poner el comando completo tal y como lo has aplicado? Y, además, ¿podrías decirme qué versión de VirtualBox estás usando?

Carlos Francisco Íñiguez Llamas dijo...

¿Aquí también andas, Norma?.

¿Cómo ubico las unidades de almacenamiento en windows?, ¿alguna idea? En linux los dispositivos se muestran en archivos bajo /dev; pero me gustaría realizar este procedimiento bajo entorno windows (ya que donde trabajo usan windows). Muchas gracias por tu aportación. Le envío un cordial saludo.

Pd: Gracias.

German Fernandez dijo...

Hola, que tal? Te hago una pequeña consulta.. por lo que entendí, se crea un archivo que permite a virtualbox tratar al dispositivo usb como un disco virtual, cierto? ahora.. Dicho archivo es persistente?? es dcir, los cambios que haga en el sistema levantado desde la maquina virtual, se persisten en el usb? Saludos y gracias!

Juan Carlos L.A. dijo...

Gracias.
Me ha funcionado, pero VirtualBox lo he tenido que lanzar como usuario root.

Saludos.

Esteban M. Navas Martín dijo...

Hola, Juan Carlos, ¿por qué has tenido que lanzar VirtualBox como root? ¿Quizas has creado el archivo como root?

ijm dijo...

Mi usb creo que estaría creado con alguna herramienta y le habría quitado permisos.
De todas maneras lo solucioné con: sudo chmod 777 /dev/sdb