Virtualbox usb install

Benvenuti nella pagina Wiki di Simone Giustetti.


Lingue: English - Italiano


Il presente articolo è poco più di un trucco che consenta di avviare la procedura di installazione di una macchina virtuale VirtualBox facendo ricorso ad una chiavetta Usb anzichè un Dvd o un'immagine Iso. In condizioni normali risulta impossibile sfruttare una chiavetta per eseguire un'installazione poichè il Bios di VirtualBox non consente il boot da supporto Usb. Una mancanza che pone numerosi limiti agli utenti dell'emulatore; non ultimo l'impossibilità di utilizzare sistemi di ripristino residenti su chiavetta per aggiustare i problemi di un sistema corrotto.

E' possibile comunque aggirare la limitazione dell'emulatore sfruttando le potenzialità dello stesso. VirtualBox è infatti in grado di funzionare accedendo direttamente ad un disco rigido o ad una partizione anzichè utilizzando un file immagine avente estensione *.vdi. La funzionalità appena citata prende il nome di “raw hard disk access” ed è consultabile sul manuale del prodotto.


Raw Hard Disk Access

Consente ad un sistema ospite di accedere ad un disco rigido o ad una partizione del sistema principale senza dover passare attraverso il file system di quest'ultimo. L'accesso diretto è una funzionalità del solo formato VMDK, uno dei formati di macchina virtuale supportati da VirtualBox . Sarà obbligatorio creare una immagine VMDK onde sfruttare il raw hard disk access. Una volta creata, l'immagine potrà essere usata come un qualsiasi altro disco virtuale ed assegnata ad una macchina virtuale.


Immagine di Boot

Per eseguire una installazione attraverso una chiavetta USB è necessario copiare sulla stessa una immagine di boot. Tali immagini solitamente occupano l'intero supporto indipendentemente dalle dimensioni o dal numero di partizioni di quest'ultimo. Essendo il nostro scopo eseguire una installazione attraverso chiavetta Usb, configureremo l'accesso raw ad un intero disco supponendo che il supporto sia totalmente occupato.

Prima di procedere alla creazione dell'immagine ci occuperemo di predisporre il supporto. Dopo aver collegato la chiavetta Usb al Pc è necessario scoprire quale dispositivo di sistema le sia stato associato. Per far ciò si avvii una shell con privilegi di root e si lanci il comando dmesg:

  clear; dmesg | tail -20
  [15044.405959] sd 8:0:0:0: [sdb] Assuming drive cache: write through
  [15044.405966]  sdb: sdb1
  [15364.740852] EXT4-fs (dm-4): mounted filesystem with ordered data mode. Opts: (null)
  [21920.056729] usb 1-1.4: new high speed USB device using ehci_hcd and address 3
  [21920.356397] usb 1-1.4: New USB device found, idVendor=0951, idProduct=1643
  [21920.356403] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
  [21920.356408] usb 1-1.4: Product: DataTraveler G3
  [21920.356412] usb 1-1.4: Manufacturer: Kingston
  [21920.356417] usb 1-1.4: SerialNumber: 001D0F0CAA77FAB136311317
  [21920.356948] scsi9 : usb-storage 1-1.4:1.0
  [21921.357935] scsi 9:0:0:0: Direct-Access::r  Kingston DataTraveler G3  1.00 PQ: 0 ANSI: 2
  [21921.358245] sd 9:0:0:0: Attached scsi generic sg4 type 0
  [21921.360988] sd 9:0:0:0: [sdc] 7557704 512-byte logical blocks: (3.86 GB/3.60 GiB)
  [21921.361616] sd 9:0:0:0: [sdc] Write Protect is off
  [21921.361624] sd 9:0:0:0: [sdc] Mode Sense: 03 00 00 00
  [21921.361629] sd 9:0:0:0: [sdc] Assuming drive cache: write through
  [21921.364828] sd 9:0:0:0: [sdc] Assuming drive cache: write through
  [21921.364836]  sdc:
  [21921.367956] sd 9:0:0:0: [sdc] Assuming drive cache: write through
  [21921.367964] sd 9:0:0:0: [sdc] Attached SCSI removable disk

Nel nostro caso il sistema operativo ha associato la chiavetta al dispositivo /dev/sdc.

Si può quindi procedere a copiare l'immagine di boot per la distribuzione di scelta sulla chiavetta.

Attenzione il contenuto della chiavetta verrà sovrascritto interamente e la stessa non potrà più essere usata a meno di formattarla.

Nel caso di Slackware Linux 13.1 l'immagine può essere reperita nella directory usb-and-pxe-installers di un Dvd di installazione o da un repository Ftp accessibile in rete. Il nome del file è usbboot.img. Si consiglia la lettura del file README_USB.TXT reperibile nella directory usb-and-pxe-installers per una trattazione esaustiva della procedura di seguito riportata.

Per copiare l'immagine si farà ricorso al comando dd la cui sintassi è: dd if=<path>/usbboot.img of=<device> bs=512. Si avvii una shell con privilegi di root e si lanci il comando:

  dd if=/mnt/floppy/slackware/stable32/usb-and-pxe-installers/usbboot.img of=/dev/sdc bs=512

Il ritorno del prompt indicherà che il supporto è pronto.


Disco Virtuale

Per creare un disco virtuale a partire da un intero disco in VirtualBox si usa il comando VBoxManage seguito da opportune opzioni. L'immagine ottenuta non conterrà alcun dato. I dati verranno immagazzinati sul disco fisico.

VBoxManage è l'interfaccia carattere per l'amministrazione di VirtualBox. La sintassi del comando è uniforme per i sistemi operativi Linux, MacOsX, Unix e Windows. Ovviamente ogni sistema operativo ha le sue convenzioni ad esempio la sintassi per i percorsi dei file.

  VBoxManage internalcommands createrawvmdk -filename <path>/<file.vmdk> -rawdisk <dev> -register

ove:

<path>/<file.vmdk> è il percorso assoluto del file immagine nel file system della macchina principale.
<dev> è il percorso assoluto del dispositivo che identifica la chiavetta sulla macchina principale (Sistemi Unix-like. Consultare il manuale per la sintassi Windows).
L'opzione register registra il dispositivo appena configurato nell'elenco dei dischi disponibili all'emulatore. Se omessa, la registrazione dovrà essere eseguita manualmente mediante la Gui.

Tutti i dati verranno letti da e scritti su <dev>.

Per creare il disco virtuale mediante la cli si lanci il comando:

  VBoxManage internalcommands createrawvmdk -filename /opt/vm/test.vmdk -rawdisk /dev/sdc -register
  Oracle VM VirtualBox Command Line Management Interface Version 3.2.10
  (C) 2005-2010 Oracle Corporation
  All rights reserved.

  RAW host disk access VMDK file /opt/vm/test.vmdk created successfully.

Il disco dovrà poi essere assegnato alla macchina da installare. La sintassi del comando è:

  VBoxManage storageattach <virtual_machine> --storagectl "IDE Controller" --port <port> --device <device number> \
  --type hdd --medium <path>/<file.vmdk>

ove:

<virtual_machine> è il nome della macchina virtuale.
<port> è l'identificatore del canale Ide. 0 per Primary e 1 per Secondary.
<device number> è l'identificatore del dispositivo Ide. 0 per Master e 1 per Slave.
<path>/<file.vmdk> è il percorso assoluto del disco virtuale sul sistema principale.

Nel nostro caso, supponendo che la chiavetta debba essere il dispositivo Ide Secondario Master:

  VBoxManage storageattach vms131v32 --storagectl "IDE Controller" --port 1 --device 0 --type hdd \
  --medium /opt/vm/test.vmdk

Alternativamente l'operazione può essere eseguita tramite la GUI.


Avvio dell'Installazione

Ultimata la preparazione della chiavetta di boot, si avvii la macchina virtuale tramite la Gui. Durante le prime schermate di boot si tenga premuto il tasto F12 in modo da poter selezionare il dispositivo di boot.

Se tutto e' stato eseguito correttamente, selezionando il disco secondario master verremo salutati dalla schermata di installazione di Slackware 13.1.

 


Per commenti, consigli, domande inviate una e-mail all'indirizzo studiosg [chiocciola] giustetti [punto] net.


Link esterni





Lingue: English - Italiano