giovedì 16 ottobre 2014

[HOW TO] Avviare la partizione BOOT CAMP da Virtualbox

Per noi utenti Mac può far comodo avere una macchina virtuale Windows sempre a disposizione. Per i più esigenti la virtualizzazione non basta e si preferisce utilizzare Boot Camp per dedicare una partizione al sistema operativo Microsoft.

Dover riavviare il proprio Mac per utilizzare Windows risulta, a volte, estremamente scomodo. Esistono alcune soluzioni commerciali per utilizzare la partizione Boot Camp anche in modo virtuale (Parallels Desktop, ad esempio) ma è possibile avviare la propria partizione Boot Camp anche dal sistema di virtualizzazione gratuito Virtualbox.

In questa guida spiegherò come configurare una macchina virtuale capace di eseguire un sistema operativo installato su una partizione fisica. Questa guida è stata testata con successo su Windows 7 e Windows 8.1.

Tempo necessario:
  • 30 minuti

Software necessario:

Creare il link Virtualbox


Per prima cosa creiamo un disco in formato VMDK collegato alla nostra partizione Boot Camp.

1) Innanzitutto apriamo il Terminale

2) Digitiamo il comando diskutil list
01Maximo:~ simonelai$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *320.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            239.7 GB   disk0s2
   3:       Microsoft Basic Data BOOTCAMP                80.0 GB    disk0s3
Questo comando stamperà a schermo le partizioni presenti sulla vostra macchina.
Nel mio caso la partizione Boot Camp è la partizione numero 3 del disco 0, accessibile con l'dentificativo disk0s3.

Memorizzate questo identificativo, è fondamentale per  prossimi passi.

3) Disattiviamo il volume BOOTCAMP, dando il comando diskutil unmount /dev/disk0s3
01Maximo:~ simonelai$ diskutil unmount /dev/disk0s3
Volume BOOTCAMP on disk0s3 unmounted
Se il volume era visibile sulla Scrivania, dopo aver dato questo comando non sarà più visibile. Ma non vi preoccupate, la partizione è stata soltanto temporaneamente disattivata, per poter permettere a Virtualbox di accedervi.

In caso di errore controllate che l'identificativo del volume sia corretto e che il volume non sia già stato disattivato (Potete controllare attraverso l'applicazione Utility Disco).

4) Rendiamo la partizione accessibile alla nostra utenza, inserendo la nostra password quando richiesto:
01Maximo:~ simonelai$ sudo chmod 777 /dev/disk0s3
Password:
5) Creiamo il disco virtuale collegato alla nostra partizione Boot Camp:

01Maximo:~ simonelai$ sudo VBoxManage internalcommands createrawvmdk -rawdisk /dev/disk0 -filename BOOTCAMP.vmdk -partitions 3
Password:
RAW host disk access VMDK file BOOTCAMP.vmdk created successfully.

Da notare che i parametri in rosso vanno cambiati in relazione all'identificativo del disco e al numero della partizione BOOTCAMP.

Se tutto è andato nel modo giusto dovreste aver creato un link virtuale di accesso alla vostra partizione BOOTCAMP. Nella vostra home directory dovrebbero essere presenti due nuovi files, BOOTCAMP.vmdk e BOOTCAMP-pt.vmdk.

6) Ora cambiamo i permessi di accesso a questo disco virtuale:
01Maximo:~ simonelai$ sudo chown simonelai:staff BOOTCAMP.vmdk
01Maximo:~ simonelai$ sudo chown simonelai:staff BOOTCAMP-pt.vmdk
Anche qui al posto del nome utente in rosso dovreste inserire il nome del vostro utente. Se anche questo passo si è concluso con successo, abbiamo completato la parte più complicata della configurazione.

7) Chiudiamo il terminale.

Creare la macchina virtuale


Ora apriamo Virtualbox e creiamo la nostra macchina virtuale.

  1. Selezioniamo dal menu Macchina => Nuova...
  2. Scegliamo come nome della nostra macchina virtuale BOOTCAMP e selezioniamo il tipo di sistema operativo (nel mio caso Windows 8.1)
  3. Allochiamo almeno 1 Gb di RAM
  4. Nella schermata "Disco" scegliamo "Usa un file di disco virtuale esistente" e scegliamo il disco nella home directory BOOTCAMP.vmdk
  5. Selezioniamo il bottone Crea

La procedura dovrebbe concludersi senza errori.

Ora dobbiamo configurare soltanto il controller del disco fisso.

  1. Selezioniamo la nuova macchina virtuale
  2. Selezioniamo dal menu Macchina => Impostazioni...
  3. Selezioniamo Archiviazione
  4. Rimuoviamo il controller SATA e il disco fisso collegato
  5. Aggiungiamo il disco BOOTCAMP.vmdk al Controller IDE
  6. Modifichiamo il tipo di controller in ICH6
  7. Selezionate OK



Bene. Ora potete avviare la vostra macchina virtuale. E' arrivato il momento di incrociare le dita!
Se la macchina virtuale parte correttamente, potete installare le Virtualbox Guest Additions per abilitare funzionalità avanzate quali:

  • shared folders
  • seamless mode
  • drag 'n' drop
  • shared clipboard

Inoltre potete configurare uno script di start per evitare di dover smontare la partizione e cambiare i permessi ad ogni avvio.

Script di configurazione automatica


Vedremo ora come impostare uno script per attivare l'accesso Virtualbox alla partizione BOOTCAMP ed avviare la macchina virtuale quando necessario.

1) Apriamo il terminale
2) Digitiamo nano BOOTCAMP
3) Digitiamo questi comandi (sostituendo le parti in rosso con le proprie informazioni):

#!/bin/sh
diskutil unmount /dev/disk0s3
sudo chmod 777 /dev/disk0s3
Virtualbox startvm "BOOTCAMP"
4) Premiamo CTRL+X
5) Premiamo Y
6) Premiamo Invio
7) Ora diamo il comando chmod +x BOOTCAMP, per rendere lo script eseguibile
8) Installiamo lo script con il comando sudo mv BOOTCAMP /usr/local/bin/BOOTCAMP

Se tutto è andato nel modo giusto, d'ora in poi basterà invocare il comando BOOTCAMP da terminale per avviare la macchina virtuale collegata alla partizione di Boot Camp.

Fonte:

16 commenti:

  1. Tutto bene tranne i permessi per creare disco virtuale esistente:BOOTCAMP.vdmk

    RispondiElimina
  2. Posto anche il testo del msg di errore qui sotto : (BOOTCAMP e' stato rinominato WINDOWS7 per mia convenienza)
    Apertura del file del disco fisso /Users/newowner/WINDOWS7.vmdk non riuscita.
    Permission problem accessing the file for the medium '/Users/newowner/WINDOWS7.vmdk' (VERR_ACCESS_DENIED).

    RispondiElimina
  3. Ciao,

    i problemi di permessi possono essere dovuti a due motivi principali: disco occupato o non leggibile.
    Per caso hai smontato il disco? (Punto 3).
    In caso affermativo hai cambiato il proprietario del disco? (Punto 6).

    Spero di essere stato utile,

    Simone

    RispondiElimina
  4. CIAO, grazie per la risposta ti incollo ulteriori info:
    Codice 'uscita:
    VBOX_E_FILE_ERROR (0x80BB0004)
    Componente:
    Medium
    Interfaccia:
    IMedium {05f2bbb6-a3a6-4fb9-9b49-6d0dda7142ac}
    Chiamante:
    IVirtualBox {fafa4e17-1ee2-4905-a10e-fe7c18bf5554}
    RC Chiamante:
    VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)

    RispondiElimina
  5. e mi viene in mente che da Mac ho solo i permessi di lettura sulla partizione Windows7

    RispondiElimina
    Risposte
    1. Il fatto che non tu possa scrivere sulla partizione Windows da Mac OS X è normale.

      Elimina
  6. Potresti incollare l'output del comando "diskutil list"?

    RispondiElimina
  7. Cetrtamente:


    Last login: Tue Jan 27 13:36:13 on ttys000
    Mintu:~ newowner$ diskutil list
    /dev/disk0
    #: TYPE NAME SIZE IDENTIFIER
    0: GUID_partition_scheme *500.1 GB disk0
    1: EFI EFI 209.7 MB disk0s1
    2: Apple_CoreStorage 377.2 GB disk0s2
    3: Apple_Boot Recovery HD 650.0 MB disk0s3
    4: Microsoft Basic Data WINDOWS 7 122.0 GB disk0s4
    /dev/disk1
    #: TYPE NAME SIZE IDENTIFIER
    0: Apple_HFS Macintosh HD *376.9 GB disk1
    Logical Volume on disk0s2
    2BEBD0DA-AC9C-4268-8A9F-F81A9E98D31F
    Unlocked Encrypted
    Mintu:~ newowner$

    RispondiElimina
    Risposte
    1. Ok grazie.

      Prova a cancellare la VM da VirtualBox e a lanciare questi comandi in sequenza:

      sudo rm /Users/newowner/WINDOWS7.vmdk
      sudo rm /Users/newowner/WINDOWS7-pt.vmdk

      diskutil unmount /dev/disk0s4
      sudo chmod 777 /dev/disk0s4
      sudo VBoxManage internalcommands createrawvmdk -rawdisk /dev/disk0 -filename /Users/newowner/WINDOWS7.vmdk -partitions 4
      sudo chown simonelai:staff /Users/newowner/WINDOWS7.vmdk
      sudo chown simonelai:staff /Users/newowner/WINDOWS7-pt.vmdk

      e poi ricrea la macchina virtuale seguendo le istruzioni.

      Elimina
  8. fatto... ma anche dopo un restart l'errore persiste... bohhh

    RispondiElimina
  9. AZZ.. rifatto e adesso va: sbagliavo a inserire direttamente la password al posto dell'utente!
    Puoi ancora aiutarmi nell'uso del mouse e della tastiera internamente alla VM?

    RispondiElimina
    Risposte
    1. Ciao, in realtà è piuttosto semplice, una volta partita la macchina virtuale devi solo selezionare dal menu in alto Devices > Insert Guest Additions CD...

      In questo modo potrai installare i drivers per integrare Windows con VirtualBox.

      A presto,

      Simone

      Elimina
  10. Ciao, e' passato un anno di buon funzionamento della VB e ho deciso di sostituire il lettore dvd con un disco ssd per progetti futuri.
    Ovviamente devo cambiare da disk0s3 a disk1s3 ma mi sono incasinato e la VB parte ma windows7 resta in modalita' "running" con schermo sempre nero.
    Ancora un' aiuto?

    RispondiElimina
  11. Ho recuperato un tuo post dell'anno scorso e ho risolto: comunque mi sei stato di aiuto ancora!
    Ciao e alla prossima.

    RispondiElimina
  12. Ciao, quando cerco di creare il disco raw mi ritorna questo errore:
    ero$ sudo VBoxManage internalcommands createrawvmdk -rawdisk /dev/disk0 -filename BOOTCAMP.vmdk -partitions 4
    VBoxManage: error: VMDK: could not open raw partition file '/dev/disk0s4'
    VBoxManage: error: Error code VERR_RESOURCE_BUSY at /Users/vbox/tinderbox/5.0-mac-rel/src/VBox/Storage/VMDK.cpp(3582) in function int vmdkCreateRawImage(VMDKIMAGE*, VBOXHDDRAW*, uint64_t)
    VBoxManage: error: Cannot create the raw disk VMDK: VERR_RESOURCE_BUSY
    VBoxManage: error: The raw disk vmdk file was not created

    RispondiElimina
    Risposte
    1. Ciao, verifica che la partizione BOOTCAMP sia espulsa prima di lanciare la creazione del disco

      Elimina