Electronic Team uses cookies to personalize your experience on our website. By continuing to use this site, you agree to our cookie policy. Click here to learn more.

Como acessar o cartão SD no VirtualBox

Editorial Team Editorial Team Jul 25, 2021

Os usuários do VirtualBox de todos os níveis (do iniciante ao desenvolvedor) têm vários cenários em que requerem acesso a um dispositivo USB do VirtualBox vms por meio de passagem USB. Especificamente, acessando dispositivos USB que estão conectados a um computador host.

Como os vboxusers conduzem com sucesso a passagem USB do VirtualBox dentro das VMs para acessar seus dispositivos de hardware USB pela Ethernet (ou outras conexões de rede)?

Vamos responder isso abaixo ...

Este artigo fornece instruções passo a passo para mostrar aos vboxusers como habilitar o acesso ao hardware do cartão SD a partir de uma máquina de convidado Ubuntu Linux VirtualBox em uma máquina host executando sistemas operacionais Windows sobre Ethernet (ou qualquer outra conexão de rede).

Acessar USB na Máquina Virtual
Teste gratuito de 14 dias

Antes de seguir qualquer uma das etapas abaixo, certifique-se de que todos os drivers estejam atualizados em todas as máquinas que participam da passagem USB.

Independentemente da plataforma, ferramenta ou sistema operacional (VboxManage, Ubuntu, XP, VirtualBox Extension Packs, etc), dev e novos vboxusers precisam que seus drivers estejam atualizados (ou compatíveis com a versão do VirtualBox Extension Pack usada) para maximizar o sucesso USB passthrough.

Etapa 1: Verifique o ID do dispositivo do cartão SD

Etapa 1-1: Abra o Prompt de Comando (ou Windows PowerShell em sistemas operacionais Windows - como XP Pro) como administrador (por exemplo: tecla "Windows" + "x". Em seguida, selecione "Prompt de comando (admin)")

Etapa 1-2: Use o comando wmic (ou o comando lsusb no Linux) para listar as unidades de disco. Isso deve ser feito antes de inserir o cartão SD no PC.

wmic diskdrive list brief

A saída deve ser a seguinte:

Rubrica ID de dispositivo Modelo Partições Tamanho
SAMSUNG MZFLV256HCHP-000MV \\.\PHYSICALDRIVE0 SAMSUNG MZFLV256HCHP-000MV 3 256052966400

Etapa 1-3: Insira o cartão SD na máquina e execute o mesmo comando de antes (em um sistema operacional Linux, seria o comando lsusb para listar informações sobre detalhes específicos sobre barramentos USB, etc)

Os usuários devem ver uma linha adicional mostrando o ID do dispositivo do cartão SD. No exemplo a seguir, o ID é: “\\.\PHYSICALDRIVE1“.

Rubrica ID de dispositivo Modelo Partições Tamanho
Generic- USB3.0 CRW -SD USB Device \\.\PHYSICALDRIVE1 Generic- USB3.0 CRW -SD USB Device 2 31914086400
SAMSUNG MZFLV256HCHP-000MV \\.\PHYSICALDRIVE0 SAMSUNG MZFLV256HCHP-000MV 3 256052966400

Devs e vboxusers devem observar: os usuários devem saber se estão usando um dispositivo USB 3.0 ou 2.0 (EHCI) USB. "EHCI" significa: “Enhanced Host Controller Interface”.

Etapa 2: Criar o arquivo de disco da máquina virtual (VM) do cartão SD

Etapa 2-1: Transfira a pasta para a pasta de instalação do VirtualBox. No exemplo a seguir, será: “C:\Program Files\Oracle\VirtualBox\”.

cd "C:\Program Files\Oracle\VirtualBox\"

Etapa 2-2: Usando o “VBoxManage.exe” crie o arquivo VMDK do cartão SD. O argumento final diz respeito aos cartões SD DeviceID (reveja os passos 1-1 a 1-3)

.\VBoxManage.exe internalcommands createrawvmdk -filename C:\sdcard.vmdk -rawdisk
\\.\PHYSICALDRIVE1

Se tudo estiver bem, a saída será “sdcard.vmdk” e será criada na pasta raiz do C-drive.

RAW host disk access VMDK file C:\sdcard.vmdk created successfully.

Etapa 3: Monte o cartão SD VirtualBox com VMDK

Etapa 3-1: Como administrador, inicie a GUI do VirtualBox

iniciar a GUI do VirtualBox

Etapa 3-2: Na GUI do VirtualBox, navegue da seguinte forma: “Configuração > Armazenamento”

Etapa 3-3: Clique em “Controlador: SATA”

Etapa 3-4: Marque a caixa de seleção ao lado de “Use Host I/O Cache”

Etapa 3-5: Agora clique no ícone “Adds Hard Disk” (mostrado no auxílio visual abaixo)

clique no ícone Ads Hard Disk

Etapa 3-6: Selecione “Escolher disco existente”

Etapa 3-7: Vá para a unidade C e escolha o arquivo “sdcard.vmdk” (o arquivo que criamos na Etapa 2)

Etapa 4: Verificar

Inicie a máquina virtual e comece a verificação. Neste exemplo, é semelhante a: “/dev/sdb” (imagem do sistema operacional Raspbian em cartão SD de 32 GB).

$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 29.8 GiB, 32010928128 bytes, 62521344 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
Disklabel type: dos
Disk identifier: 0xb1d773dc

Dispositivo Arranque inicial Fim Setores Tamanho Identidade Modelo
/dev/sdb1 8192 96453 88262 43.1M c W95 FAT32 (LBA)
/dev/sdb2 98304 31116287 31017984 14.8G 83 Linux

Solução de problemas

Infelizmente, ao tentar usar o cartão SD, surgiram vários erros. Abaixo estão algumas opções de solução de problemas para passagem de cartão SD do VirtualBox.

Opção 1 de solução de problemas:

O erro: "O cache de E/S encontrou um erro ao atualizar os dados no meio" ahci-0-1 "(rc = VERR_ACCESS_DENIED)"

erro

Para usuários que experimentaram o erro acima, retorne à Etapa 2 e certifique-se de que a caixa de seleção "Use Host I/O Cache" esteja marcada.

Opção de solução de problemas 2

O erro: "O UUID da mídia não corresponde ao valor armazenado no registro da mídia.

falhou para abrir

De dentro da pasta de instalação do VirtualBox, execute o seguinte comando:

.\VBoxManage.exe list hdds

Os usuários terão então a capacidade de localizar o UUID nos detalhes do erro

UUID: 5b951504-358d-4a6e-bb8f-61be3ec32367
Parent UUID: base
State: inaccessible
Type: normal (base)
Location: C:\Users\max\Desktop\sdcard.vmdk
Storage format: VMDK
Capacity: 0 MBytes
Encryption: disabled

Use o comando abaixo (especificando o UUID) para remover o disco:

.\VBoxManage.exe closemedium disk 5b951504-358d-4a6e-bb8f-61be3ec32367

logo USB Network Gate
#1 at Redes
USB Network Gate
Compartilhar USB via Ethernet no Windows
4.7 classificação baseado em 372 + usuários