Inicialização via USB no VirtualBox

Publicado por Natanael Henrique em 14/11/2012

[ Hits: 34.276 ]

 


Inicialização via USB no VirtualBox



O VirtualBox tem várias opções de boot, porém, falta a inicialização por dispositivos USB. E o objetivo desta dica é mostrar como fazer esta configuração.

O VirtualBox não inicializa diretamente pelo dispositivo USB, então será necessário mapeá-lo como uma imagem de disco e montá-lo no VirtualBox.

Estou considerando que você já tenha o VirtualBox instalado e configurado. Também estou considerando que o seu dispositivo USB já está com o boot funcionando em uma máquina real.

Primeiro você precisa conectar o dispositivo USB (cartão de memória, pendrive, HD externo etc). Quando conectá-lo, o GNU/Linux provavelmente o montará automaticamente.

Identifique qual o nome atribuído ao seu dispositivo.

Você pode utilizar o comando:

# fdisk -l

Obs.: "L" minúsculo.

E terá um resultado parecido com o exemplo abaixo:

    Disk /dev/mmcblk0: 1948 MB, 1948254208 bytes
    4 heads, 16 sectors/track, 59456 cylinders, total 3805184 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x000c4e4e

    Device Boot      Start    End     Blocks    Id     System
    /dev/mmcblk0p1     2048    3805183  1901568    c      W95 FAT32 (LBA) 

Atente para o fato de que seu dispositivo pode ser identificado com um nome diferente, então substitua conforme o caso.

Desmonte-o:

# umount /dev/mmcblk0p1

Dê permissão de leitura e gravação ao dispositivo que você vai usar:

# chmod 666 /dev/mmcblk0

Agora, como usuário comum, mapeie o arquivo:

VBoxManage internalcommands createrawvmdk -filename /home/seu_usuario/.VirtualBox/usb.vmdk -rawdisk /dev/mmcblk0

A opção '-filename' indica o local e nome do arquivo a ser criado, e poderá ser mudado a seu critério.

Agora você pode usar este arquivo como um disco virtual. Para utilizá-lo, você deve adicionar um disco à sua controladora SATA ou IDE e informar o arquivo criado.

* Advirto que esta dica pode ser utilizada ainda para inicializar sistemas que estão em outras partições do seu disco, devendo, neste caso, usar a identificação da partição em vez do disco como um todo.

É isso pessoal.

Qualquer dúvida, crítica ou sugestão, deixem nos comentários.

Outras dicas deste autor

Como extrair e instalar pacotes '.deb' sem o DPKG

Escolhendo que partição SWAP usar

Como mudar o sistema operacional padrão no Grub2

Escondendo o hostname no GDM

Ctrl+Alt+F1 no VirtualBox

Leitura recomendada

Epsxe no Linux

Gerando e armazenando a chamve md5sum dos pacotes do Slackware

Complementando artigo sobre integração do Linux ao AD

CLAWS-MAIL - Atualização não-oficial para Ubuntu

Servidores GNU/Linux - Acessando e executando tarefas automaticamente

  

Comentários
[1] Comentário enviado por romuloff em 29/08/2012 - 13:05h

Boa tarde!
Após seguir os passos, no qual abaixo está o resultado de cada comando, ao criar o disco de inicialização no virtual box não encontra o arquivo usb.vmdk no diretório .VirtualBox. Dentro deste diretório está arquivos com extensão .log, .xml, e .dat


1° Passo: comando fdisk -l

Disco /dev/sda: 250.1 GB, 250059350016 bytes
255 cabeças, 63 setores/trilhas, 30401 cilindros, total de 488397168 setores
Unidades = setores de 1 * 512 = 512 bytes
Tamanho do setor (lógico/físico): 512 bytes / 512 bytes
Tamanho da E/S (mínimo/ideal): 512 bytes / 512 bytes
Identificador do disco: 0x63bdc1b6

Dispositivo Boot Início Fim Blocos Id Sistema
/dev/sda1 * 2048 2461695 1229824 7 HPFS/NTFS/exFAT
/dev/sda2 2461696 272109194 134823749+ 7 HPFS/NTFS/exFAT
/dev/sda3 467916800 488396799 10240000 7 HPFS/NTFS/exFAT
/dev/sda4 272109566 467916799 97903617 5 Estendida
/dev/sda5 272109568 464007167 95948800 83 Linux
/dev/sda6 464009216 467916799 1953792 82 Linux swap / Solaris

Partições lógicas fora da ordem do disco

Disco /dev/mapper/cryptswap1: 2000 MB, 2000683008 bytes
255 cabeças, 63 setores/trilhas, 243 cilindros, total de 3907584 setores
Unidades = setores de 1 * 512 = 512 bytes
Tamanho do setor (lógico/físico): 512 bytes / 512 bytes
Tamanho da E/S (mínimo/ideal): 512 bytes / 512 bytes
Identificador do disco: 0xab786b2f

O disco /dev/mapper/cryptswap1 não contém uma tabela de partições válida

Disco /dev/sdb: 1967 MB, 1967128576 bytes
255 cabeças, 63 setores/trilhas, 239 cilindros, total de 3842048 setores
Unidades = setores de 1 * 512 = 512 bytes
Tamanho do setor (lógico/físico): 512 bytes / 512 bytes
Tamanho da E/S (mínimo/ideal): 512 bytes / 512 bytes
Identificador do disco: 0xcad4ebea

Dispositivo Boot Início Fim Blocos Id Sistema
/dev/sdb4 * 63 3842047 1920992+ 6 FAT16

2° Passo: umount /dev/sdb4

3° Passo: VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/usb.vmdk -rawdisk /dev/sdb4

RAW host disk access VMDK file /root/.VirtualBox/usb.vmdk created successfully.

[2] Comentário enviado por n4t4n em 31/08/2012 - 16:45h

Olá Rômulo, primeiramente quero lhe dar as boas vindas ao Viva o Linux.

O problema que você está enfrentando (e que iria enfrentar caso não tivesse tido esse) se deve a dois aspectos:

1 - Os dois primeiros comandos usados na dica são como usuário root (Veja o # antes do comando), já o terceiro passo, que é para criar o arquivo usb.vmdk, é passado como usuário comum (Observe o $ antes do comando). Desse modo o arquivo deve ser criado dentro do seu home (~) na pasta oculta do VirtualBox (iniciada por .) com o nome de usb.vmdk (seguindo o exemplo da dica).

Nesse ponto, se você observar, verá que o terceiro comando foi usado como root e portanto o arquivo foi criado em /root/.VirtualBox/usb.vmdk, porém normalmente executamos o VirtualBox como usuário comum que não tem acesso à pasta root.

2 - O exemplo da dica usa um cartão de memória que é identificado por mmcblk0 tendo sua primeira partição identificada como mmcblk0p1.

No seu caso o dispositivo é identificado por /dev/sdb e a partição por /dev/sdb4.

Observe que na dica não é indicado a partição e sim o dispositivo, então, no seu caso, o correto seria você indicar /dev/sdb apenas.

Qualquer dúvida estou por aqui.

Abraço.

[3] Comentário enviado por Carlos_Cunha em 02/11/2012 - 17:24h

Opa amigo Funcionou!
Porém tive que dar permissão chmod 777 /dev/pendrive para funcionar estava acusando erro de permissão
Abraço


Fonte: http://mesbalivernes.blogspot.com.br/2008/01/virtual-box-booting-from-existing.html

[4] Comentário enviado por n4t4n em 14/11/2012 - 14:02h

Obrigado Carlos.

A dica foi atualizada com a sua contribuição.

Continue contribuindo com a comunidade. Esse é o maravilhoso trabalho colaborativo.

Abraço e sucesso.

[5] Comentário enviado por alvir218 em 14/01/2020 - 00:43h

obs...

o diretório aqui é:
/home/USUARIO/.config/VirtualBox

é melhor criar uma nova maquina virtual com o disco virtual usb.vmdk depois de criar a imagem de disco virtual.

mudar a uuid da imagem pode ser útil

VBoxManage internalcommands sethduuid "/home/USUARIO/VirtualBox VMs/usb.vmdk" COLOCAR-ID-AQUI

[6] Comentário enviado por Minions em 31/07/2021 - 13:08h

Não esta funcionando

# ls -l /dev/sdc1
brw-rw---- 1 root plugdev 8, 33 Jul 31 12:53 /dev/sdc1

# umount /dev/sdc1

Dê permissão de leitura e gravação ao dispositivo que você vai usar:

# chmod 666 /dev/sdc1
# rm /media/backup/VirtualBox\ VMs/Slackware/pendriveboot.vmdk


# vboxmanage internalcommands createrawvmdk -filename /media/backup/VirtualBox\ VMs/Slackware/pendriveboot.vmdk -rawdisk /dev/sdc1
RAW host disk access VMDK file /media/backup/VirtualBox VMs/Slackware/pendriveboot.vmdk created successfully.



Could not open the medium '/media/backup/VirtualBox VMs/Slackware/pendriveboot.vmdk'.
VD: error VERR_ACCESS_DENIED opening image file '/media/backup/VirtualBox VMs/Slackware/pendriveboot.vmdk' (VERR_ACCESS_DENIED).


Código de Resultado:
NS_ERROR_FAILURE (0x80004005)
Componente:
MediumWrap
Interface:
IMedium {4afe423b-43e0-e9d0-82e8-ceb307940dda}



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts