Como inicializar a partir de uma unidade USB no VirtualBox?

72

A questão é simples e direta:

Como inicializar a partir de uma unidade USB no VirtualBox?

EDIT :

Anexei usbao VirtualBox como mostra a imagem.

https://i.stack.imgur.com/UPZZo.png

Mas não é possível inicializar a partir de uma unidade USB, mesmo quando conectada (referência) .

Então, eu gostaria de saber se existe outra possibilidade de inicializar a partir de um drive USB?

Ravan
fonte
Você pode simplesmente abrir seu USB, compactar tudo em um arquivo ISO e inicializá-lo normalmente.
dat tutbrus
@Ravan - para não esquecer, com frequência, os usuários não anexam gparted a propriedade "boot" ao pendrive. Isso está no menu 'partição' do gparted e lá você pode editar o sinalizador resp. o rótulo do pendrive e ative o parâmetro "boot".
dschinn1001
11
@dattutbrus Isso não funcionará se você quiser alterar arquivos no USB
Paul

Respostas:

89

O VirtualBox em si não oferece suporte à inicialização a partir de um dispositivo USB. Para inicializar a partir de um dispositivo USB, é necessário outro carregador de inicialização. As etapas abaixo fornecem uma maneira possível de fazer isso:

  1. Faça o download do Plop Boot Manager (atualmente v5.0.15)
  2. Extraia o arquivo plpbt.isodo arquivo ZIP e salve-o em algum lugar.
  3. Abra as configurações da máquina virtual e anexe o arquivo ISO:

    insira a descrição da imagem aqui

  4. Adicione um filtro para o dispositivo USB:

    insira a descrição da imagem aqui

  5. Inicialize a VM e selecione a opção "USB" no menu:

    insira a descrição da imagem aqui

Se tudo der certo, a máquina deve inicializar a partir do dispositivo USB.

Nathan Osman
fonte
11
Esta é definitivamente uma resposta mais fácil que a minha. Eu gosto disso! Eu gostaria de poder votar mais. =)
Terrance
3
Esta resposta deve incluir que você precisa fazer parte do grupo vboxusers .
musikk
6
Isto não funciona para mim. Ao selecionar usb, espero para sempre com a tela dele. Qualquer ideia? postimg.org/image/dv8w83pi3 #
John João
6
Eu queria acrescentar que o Plop Boot Manager suporta apenas oficialmente o EHCI. Se você é como eu e está tentando usar uma unidade USB 3.0 com o Plop Boot Manager, ela não funciona. Você pode tentar usar o método mencionado na outra postagem, mas o VirtualBox também não parece gostar muito de trabalhar com vmdks brutos de dispositivos USB 3.0. Se você possuir apenas portas USB 3 no seu computador, poderá solicitar um hub USB 2.0 e conectar a unidade através disso. Ele se comportará essencialmente como uma unidade USB 2.0.
Fakedad 21/03/16
3
Se você combinar esta solução com a VMDK, poderá obter desempenho USB nativo. Caso contrário, isso só funciona com USB 1.1.
Will Bickford
50

EDIT: 7 Mar 2018

Algo a notar aqui. Deixar a unidade USB no computador ao reiniciar pode alterar a /dev/sddesignação da letra da unidade, fazendo com que o usb.vmdkarquivo bruto aponte para a unidade incorreta, para que não seja inicializado no VirtualBox. Como teste, deixei um no meu sistema. Foi /dev/sdiantes de eu reiniciar, depois da reinicialização /dev/sdc. Quando você reiniciar o computador para qualquer alteração, remova a unidade USB antes de reiniciar. Estou analisando se o disco bruto pode ser criado a partir do UUID da unidade, pois isso não será alterado.


Como o VirtualBox não inicializa em unidades USB, você pode criar um .vmdkarquivo que aponte para sua unidade USB para inicializá-la.

NOTA: Você DEVE adicionar sua conta de usuário ao vboxusersgrupo do VirtualBox para ver seu USB. Você DEVE também adicionar sua conta ao diskgrupo ou não pode adicionar o .vmdkarquivo à sua Máquina Virtual. Instruções adicionadas abaixo em EDIT . Isso também não copia a unidade USB para o disco rígido e usa o USB diretamente. Isso pode ser útil se houver persistência no USB que você deseja manter. Nem todas as situações são iguais, portanto, isso pode não funcionar para todos os casos.

Primeiro, você precisa ter o USB que criou no sistema e determinar qual é a unidade física. Vamos assumir que sua unidade está montada como /dev/sdb1. Então, o impulso físico seria /dev/sdb.

Em seguida, digite o seguinte em uma janela do terminal para criar o .vmdkarquivo que aponta para a unidade USB:

sudo vboxmanage internalcommands createrawvmdk -filename  ~/usb.vmdk -rawdisk /dev/sdb

Ou

sudo VBoxManage internalcommands createrawvmdk -filename  ~/usb.vmdk -rawdisk /dev/sdb

Então você deve ver algo semelhante a este:

RAW host disk access VMDK file /home/ravan/usb.vmdk created successfully.

Nota: Algumas pessoas tiveram problemas de propriedade do arquivo recém-criado. Assuma a propriedade do novo arquivo:

sudo chown $USER:$USER ~/usb.vmdk

Tudo o que você precisa fazer é adicionar o .vmdkarquivo à sua máquina virtual VirtualBox e garantir que você pode inicializá-lo.

insira a descrição da imagem aqui

EDITAR:

Para adicionar seu usuário ao vboxusersgrupo, execute o seguinte comando:

sudo usermod -a -G vboxusers username

Para adicionar seu usuário ao diskgrupo, execute o seguinte comando:

Nota: Adicionar seu usuário ao grupo de discos pode ser perigoso e um risco de segurança. É tão perigoso quanto ter acesso ao sudo para gravar em um disco bruto.

sudo usermod -a -G disk username

Então você REINICIALIZE seu sistema para que as alterações entrem em vigor.

Antes da reinicialização:

insira a descrição da imagem aqui

Após a reinicialização:

insira a descrição da imagem aqui

Espero que isto ajude!

Terrance
fonte
11
Eu recebi este erro: VBoxManage: erro: VMDK: não foi possível abrir o arquivo de disco bruto '/ dev / sdc' VBoxManage: erro: código de erro VERR_WRITE_PROTECT em /build/virtualbox-VDAABr/virtualbox-4.3.36-dfsg/src/VBox/ Storage / VMDK.cpp (3390) na função int vmdkCreateRawImage (PVMDKIMAGE, PVBOXHDDRAW, uint64_t) VBoxManage: error: Não é possível criar o disco bruto VMDK: VERR_WRITE_PROTECT VBoxManage: erro: o arquivo vmdk do disco bruto não foi criado
John
@John Você adicionou sua conta ao diskgrupo, desconectou-se e reinicializou ou reinicializou depois de adicionar o grupo?
Terrance
Sim, eu o reinicializo e, se eu executá-lo, como o resultado raiz é o mesmo ... #
John
2
funciona bem para mim. Observações: não é necessário reiniciar, apenas para sair / fazer login. Uma vez no grupo de discos, não é necessário usar o sudo.
precisa
11
Eu segui as instruções, mas ao tentar inicializar o Windows 10 a partir da unidade USB no virtualbox, ele diz "FATAL: Não foi possível ler a partir da mídia de inicialização! O sistema foi interrompido". Alguma sugestão? Obrigado pela ajuda!
Arch Linux Tux
15

Eu vim para este post apenas alguns dias atrás. Não quero usar o Plop Boot Manager, porque meu pen drive já é inicializável.

Então, tentei apontar o pen drive para um disco VMDK (como na resposta do Terrance) criando vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb

Infelizmente, isso se recusou a funcionar ... eu chmode chowno usb.vmdkdisco, então pude anexá-lo a uma VM, mas simplesmente não funcionou.

Finalmente, tentei outra solução e esta funcionou perfeitamente. Aqui está (obrigado a Gean Santos pela pesquisa):

  1. Insira o pendrive e identifique-o (o meu é /dev/sdb, executando o Sabayon Linux);
  2. Crie um .vmdkdisco convertendo o dispositivo bruto (por exemplo, o pendrive) em um disco do VirtualBox

    sudo VBoxManage convertfromraw /dev/sdb ./usb.vmdk --format vmdk
    
  3. Agora você tem um usb.vmdkdisco criado a partir do seu dispositivo USB inicializável. Tentei também ddo pen drive em um arquivo de imagem e criei o .vmdkdisco a partir do arquivo de imagem. Funciona, assim como os .vdidiscos criados da maneira anterior (ou a partir do arquivo de imagem)

  4. Agora, dê permissões ao disco criado para que o VirtualBox possa acessar o arquivo. Significa apenas alterar o proprietário do arquivo para um usuário que esteja no grupo vboxusers . Se sua instalação do VirtualBox estiver funcionando bem, então esse proprietário provavelmente estará:

    sudo chown `whoami`:`whoami` ./usb.vmdk
    
  5. Agora, você só precisa conectar o usb.vmdkdisco a uma máquina virtual. Mas deve ser anexado a um controlador IDE . Eu tentei SATAsem sucesso.

Um exemplo de VM com um <code> usb.vmdk </code> inicializável anexado a um controlador IDE

Neste ponto, você está bem.

Basta inicializar a nova VM, pressionar F12e escolher a unidade inicializável.

Desfrutar!

Marcio H Zuchini
fonte
Isso funciona com o USB 3.0 (veja os comentários aqui askubuntu.com/questions/693719/… )?
Noz sobre natty
Acabei de verificar e você basicamente copiou o seu pendrive e não usa o pendrive original dessa maneira.
Fedcomp
11

A solução mais fácil é copiar o conteúdo da chave USB em um arquivo iso (bem, da próxima vez vou baixar o iso na máquina certa, nenhuma chave USB é necessária em primeiro lugar)

dd if=/dev/sdc of=myusbkey.iso

E adicione este .iso como uma unidade óptica nas configurações do VirtualBox, em Armazenamento, Controlador: IDE (ou SATA, eu acho).

Não há necessidade de criar um arquivo .vmdk, o VirtualBox suporta arquivos .iso.

David Faure
fonte
Esta resposta deve estar no topo.
McMutton
Concordo :-) Mas isso requer mais upvotes, ainda;)
David Faure
A coisa aqui é se você tiver uma partição com uma imagem de arranque de cerca de 40GB ele irá gerar um arquivo com esse tamanho 😅
Sposmen
Certo, mas todas as outras soluções também fazem isso, não é?
David Faure
11
@DavidFaure A resposta original sobre o uso de "VBoxManage internalcomands createrawvmdk ..." apenas cria algo que você poderia pensar como equivalente a um atalho para a unidade USB que você conectou ao sistema no momento em que executa o comando acima. Portanto, você não terá uma imagem potencialmente enorme do pendrive, como mencionado pelo usuário33845
ConceptRat 10/10
5

Eu sugeriria os seguintes passos.

  1. Discos abertos.
  2. Procure o USB.
  3. Clique lá e no canto superior direito, você verá um ícone de configurações que possui 3 linhas paralelas.
  4. Clique lá e escolha Criar imagem de disco ...
  5. Selecione o local e clique em Criar . Ele criará um arquivo .img que você pode usar no VirtualBox.
Madhurjya Dasgupta
fonte
2

Eu não queria executar o Virtualbox como root. Eu não queria que meu usuário pertencesse ao grupo de discos, com permissões totais para todos os discos.

Então aqui está o que eu comecei a trabalhar:

Descubra o que é o cartão de memória SD. Nas instruções a seguir é sdc.

  • Desmontar Memory Stick

    su -
    chmod 666 /dev/sdc1
    chmod 666 /dev/sdc
    exit # Run the following command as regular user:
    VBoxManage internalcommands createrawvmdk -filename usb.vmdk -rawdisk /dev/sdc
    su - # Back as root again:
    chmod 777 usb.vmdk
    chmod 666 /dev/sdc
    
  • Anexar a máquina virtualbox usb.vmdk

    chmod 666 /dev/sdc
    
  • Iniciar máquina de caixa virtual
  • Após concluir, redefina a permissão sdc1 por segurança:

    chmod 660 /dev/sdc1
    

No exemplo acima, você pode ver que eu tive que redefinir as permissões do cartão de memória algumas vezes, porque ele voltava a ser root todas as vezes.

Estou usando o Mandriva Linux, mas deve ser o mesmo no Ubuntu

Wayne Sallee
fonte
A permissão aqui é um péssimo conselho. Primeiro de tudo, você está fazendo isso como root, para não precisar realmente alterar as permissões para que esses comandos funcionem. Em segundo lugar, é melhor adicionar o usuário apropriado ao grupo de discos, para que nem seja necessário.
Evan Teran
@ Evan Teran Você já tentou? E sim, o usuário faz parte do grupo de discos. Este é o método que eu ainda uso hoje em dia com meu próprio sistema operacional Linux. Wayne Sallee [email protected]
Wayne Sallee
Eu não disse que não iria funcionar, eu disse que não é um bom conselho. Independentemente dos grupos de usuários, se você estiver executando os comandos como root, nem precisará mexer nas permissões, porque o acesso root será assim mesmo. Além disso, criar arquivos e pastas com 777 e 666 é uma prática ruim; você não deve tornar as coisas legíveis ou graváveis ​​no mundo, a menos que elas precisem.
Evan Teran
@ Evan Teran, não é um bom conselho executar um programa como root, que não precisa ser root. O cartão de memória demora apenas um pouco e não está em um servidor. É uma questão de onde você deseja colocar o risco. Eu escolho colocar o risco no cartão de memória e não no sistema. [email protected]
Wayne Sallee
Correção: não coloquei meu usuário no grupo de discos. [email protected]
Wayne Sallee
1

Se a sua unidade USB for uma unidade inicializável EFI, o Plop Boot Manager não funcionará, pois não suporta a inicialização EFI. O que funcionou para mim nesse caso foi usar o gerenciador de inicialização rEFInd ( http://www.rodsbooks.com/refind/ ).

  1. Faça o download do rEFInd iso inicializável em http://sourceforge.net/projects/refind/files/0.11.4/refind-cd-0.11.4.zip/download e descompacte-o.

  2. Abra as configurações da máquina virtual no VirtualBox e anexe o arquivo ISO do CD reEndnd.

  3. Verifique se a opção "Ativar EFI (somente SOs especiais)" nas configurações da máquina virtual na guia "Sistema" está ativada.

  4. Inicialize a máquina virtual e você verá o menu de inicialização rEFInd:

menu REFInd

  1. Anexe sua unidade USB no VirtualBox.

  2. Pressione backspace para atualizar o menu ou aguarde alguns segundos e a unidade deve aparecer no menu.

  3. Selecione sua unidade USB e pressione enter e sua unidade USB deve iniciar a inicialização.

Leszek Szary
fonte