virtualbox

VirtualBox vo windows 10 a SD karta raspbian

Čo chcem:
na notebooku s windows 10 potrebujem VirtualBox donútiť  čítať-zapisovať na SD kartu naformátovanú na ext4, napr. pred prvým nabootovaním raspberry pi chcem nastaviť statickú IP adresu, alebo nakopírovať verejný ssh kľúč do súboru authorized_keys.

Problém:
Hostiteľský OS – windows 10 ( operačný systém v ktorom je nainštalovaný virtualbox )
Hosťujúci OS – debian 8.3 netinst ( virtualizovaný operačný systém nainštalovaný vo virualboxe )
SD karta 8GB raspbian jessie lite ( ext4 )

raspbian

Sd karta zasunutá v internej čítačke notebooku je neprístupná vo virtuálnom stroji bežiacom na windows 10, keďže windows nevie pristupovať k partíciam naformátovaným na ext4.

Je potrebné sprístupniť celú kartu priamo virtualnemu stroju.

1. Potrebujeme získať DeviceID čítačky sd kariet

Otvoríme okno s príkazovým riadkom ako administrátor ( stlačíme lupu, vedľa tlačidla štart a napíšeme cmd, ponúkne nám príkazový riadok, pravým tlačidlom myši si vyberieme spustiť ako správca ) a napíšeme:

wmic diskdrive list brief

vo výpise vidíme minimálne dve položky, hard disk a čítačku kariet:
C:\>wmic diskdrive list brief
Caption DeviceID Model Partitions Size
KINGSTON SV300S37A120G \\.\PHYSICALDRIVE0 KINGSTON SV300S37A120G 3 120031511040
Generic SD08G SD Card \\.\PHYSICALDRIVE1 Generic SD08G SD Card 2 7945620480

Dôležité je DeviceID: \\.\PHYSICALDRIVE1

virtualbox

2. Zmeníme aktuálny adresár na adresár kde je nainštalovaný virtualbox

cd C:\Program Files\Oracle\VirtualBox

3. Vytvoríme odkaz na zariadenie, čítačka sd kariet

VBoxManage internalcommands createrawvmdk -filename "%USERPROFILE%/Desktop/sdcard.vmdk" -rawdisk \\.\PHYSICALDRIVE1

Odkaz je vytvorený na pracovnej ploche a má meno sdcard.vmdk

virtualbox

4. Zariadenie pripojíme k virtuálnemu stroju

Spustíme virtualbox ako administrátor, otvoríme nastavenia – settings.
Vyberieme úložisko – storage -> controller: SATA, pravým tlačidlom Add Hard Disk, z ponuky vyberieme odkaz na pracovnej ploche vytvorený v predchádzajúcom kroku.

virtualbox

5. Pracujeme s ext4 kartou v prostredí windows

Spustíme virtuálny stroj. Čítačka kariet by mala byť prístupná. Zobrazíme si všetky pripojiteľné zariadenia – disky:

sudo fdisk -l

Okrem systémového disku ( zvyčajne /dev/sda ) vidíme aj ďalšie zariadenie s dvoma partíciami ( /dev/sdb ). Vytvoríme si adresár do ktorého pripojíme SD kartu v čítačke:

sudo mkdir /mnt/rpi

Pripojíme SD kartu:

sudo mount /dev/sdb2 /mnt/rpi

virtualbox

Na karte (ext4) je možné vykonať zmeny, editovať súbory, kopírovať atď aj na počítači s OS windows.

Keďže ale práca v terminály virtuálneho stroja nie je práve najpohodlnejšia, tak posledný krok je zjednodušenie prístupu do virtualizovaného OS pomocou ssh klienta putty. Virtualbox si však vytvára vlastnú privátnu sieť ukrytú za NAT (zvyčajne 10.0.2.x) a preto je potrebné presmerovať porty. Zistíme našu IP, údaj potrebujeme doplniť neskôr do Guest IP:

hostname -I

Otvoríme nastavenia – settings, vyberieme sieť – network -> port forwarding. Doplníme údaje: Host IP 127.0.1.1, Host Port 22, Guest IP 10.0.2.15, Guest Port 22. Zmenu môžeme vykonať aj na bežiacom stroji. Ak nám beží viac virtuálnych strojov je potrebné nastaviť rôzne porty (akékoľvek nepoužívané).

virtual box port forwarding

Pripojíme sa pomocou ssh klienta putty (rado@127.0.1.1:22) v ktorom je práca v terminály podstatne pohodlnejšia (kopírovať text medzi windows a virtuálnym strojom, špeciálne znaky na klávesnici, jednoduchá zmena veľkosti okna terminálu atď.).

virtual box putty

Po ukončení úprav môžeme SD kartu odpojiť:

sudo umount /mnt/rpi

Záver

Týmto spôsobom je možné pripojiť ľubovoľné blokové zariadenie (SD karta, USB flash disk, interný, externý hard disk), bez ohľadu na schopnosť hostiteľského OS čítať, zapisovať na, z pripojeného zariadenia , podmienkou je len schopnosť hosťujúceho – virtualizovaného OS pristupovať k tomuto súborovému systému (exFAT, ext2,3,4, btrfs, atď).

Zdroj po anglicky tu .

Zdieľaj to:

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *