giovedì 8 marzo 2012

Eseguire il boot da dispositivo USB in una macchina virtuale Virtualbox su host Windows


Come sappiamo Virtualbox include la possibilità di mappare, all'interno delle macchine virtuali, i dispositivi periferici collegati al sistema, come ad esempio i device USB. Possiamo quindi portare sulle macchine virtuali eventuali dischi esterni USB collegati al sistema ospite, senza la necessità di abilitare la funzione cartelle condivise o porre il sistema guest in rete con l'host e trasferire contenuti via ethernet.
Questa caratteristica tuttavia presenta un limite nei casi in cui abbiamo la necessità di collegare un dispositivo USB abilitato al boot. Il montaggio effettivo del dispositivo, all'interno del sistema guest, avviene solo nel momento in cui la macchina virtuale abbia completato la fase di boot ed il controllo sia trasferito al sistema operativo.
Abbiamo ad esempio creato un dispositivo USB bootable che contenga del software di diagnostica. Oppure abbiamo salvato un'immagine di un host fisico e vogliamo testarne il ripristino 'from scratch' in ambiente virutale. Per farlo abbiamo la necessità che il contenuto del dispositivo USB venga letto prima che un eventuale sistema operativo guest sia caricato. Per fare questo viene in aiuto l'interfaccia a riga di comando integrata in VirtualBox ed in particolare l'utility VBoxManage.exe < /p>
Questo metodo prevede 3 passaggi distinti:
1. Collegamento del dispositivo USB all'host fisico, riconoscimento ed installazione dei driver da parte del sistema operativo
2. Creazione del puntamento al dispositivo
3. Collegamento del file di puntamento a Virtualbox.
La prima fase non necessita di spiegazioni. L'unico inconveniente che possiamo incontrare è l'eventuale richiesta di driver da parte del sistema operativo per dispositivi non correttamente riconosciuti (ad esempio periferiche USB 3.0 su sistemi Windows XP o pendrive particolari). In tal caso è opportuno disporre del software fornito a corredo dal produttore.

Nella seconda fase si concentra in pratica il lavoro da svolgere: lo scopo è quello di creare un disco fisso virtuale che non contenga effettivamente dati, ma solo un puntamento al dispositivo hardware collegato al sistema host. Nelle recenti versioni VirtualBox ha aggiunto il supporto ad altri formati di dischi virtuali, oltre a quello VDI nativo; sono quindi supportati i file con estensione VHD di Microsoft, i VMDK di VMware e il formato HDD di Parallels. Al nostro scopo andremo a creare un file disco virtuale in formato VMDK.

Una volta installato il pendrive nel nostro sistema host, abbiamo la necessità di conoscere il puntamento fisico assegnato dal sistema operativo. Essendo in ambiente Windows possiamo utilizzare un comodo comando in PowerShell che ci restituisca questa informazione:

Get-WmiObject -Class Win32_diskdrive

L'output restituito potrebbe essere simile al seguente:

Partitions : 3
DeviceID : \\.\PHYSICALDRIVE0
Model : ST9120823ASG ATA Device
Size : 120031511040
Caption : ST9120823ASG ATA Device

Partitions : 1
DeviceID : \\.\PHYSICALDRIVE1
Model : SMI USB DISK USB Device
Size : 2023418880
Caption : SMI USB DISK USB Device

In questo caso vengono visualizzati due dispositivi distinti corrispondenti rispettivamente al disco fisico di sistema ed al pendrive inserito nello slot USB. E' facile distinguere i dispositivi oltre che dal nome dalla dimensione del supporto. L'informazione che ci interessa memorizzare è quella relativa al campo DeviceID. Ad esempio, per il nostro dispositivo esterno il DeviceID corrisponde a \\.\PHYSICALDRIVE1.

Ora dobbiamo creare il disco virtuale che punti a questo device. Sempre all'interno della console di PowerShell (o anche dal prompt classico dei comandi), dobbiamo digitare il seguente comando:

%ProgramFiles%\Oracle\VirtualBox\VBoxManage.exe internalcommands createrawvmdk -filename \image_name.vmdk -rawdisk \\.\PhysicalDrive1

Viene creato un file di testo con estensione .vmdk nel percorso specificato. Aprendo il file con un qualsiasi editor di testo, ci accorgiamo immediatamente che esso non contiene i dati estratti dal pendrive usb come ci si aspetterebbe.

Ecco come si presenta il contenuto del file

# Disk DescriptorFile
version=1
CID=23e97fbf
parentCID=ffffffff
createType="fullDevice"

# Extent description
RW 3956736 FLAT "\\.\PHYSICALDRIVE1" 0

# The disk Data Base
#DDB

ddb.virtualHWVersion = "4"
ddb.adapterType="ide"
ddb.geometry.cylinders="3925"
ddb.geometry.heads="16"
ddb.geometry.sectors="63"
ddb.uuid.image="0891a957-bf2a-4b0d-adfa-853e06c6e970"
ddb.uuid.parent="00000000-0000-0000-0000-000000000000"
ddb.uuid.modification="00000000-0000-0000-0000-000000000000"
ddb.uuid.parentmodification="00000000-0000-0000-0000-000000000000"

Il file svolge solo il ruolo di puntatore, ma i dati sul pendrive non vengono copiati, il che può risultare molto vantaggioso nel caso lo stesso contenga una grossa mole di informazioni, evitando tempi inutili di copia nel sistema host.
A questo punto, supposto che disponiamo già di una macchina virtuale di test, altrimenti la creiamo, non ci resta che collegare il file .vmdk appena creato alla stessa, tramite il menu impostazioni; l'operazione è quella classica di aggiunta di un nuovo disco ad una macchina virtuale effettuata tramite l'interfaccia grafica di VirtualBox.
Con il pendrive sempre collegato all'host, avviamo la macchina virtuale e, prontamente, spostiamo il focus all'interno della finestra di esecuzione della stessa, quindi premiamo F12 per selezionare il dispositivo di boot.


A questo punto compare il menu per la scelta del dispositivo di avvio. Selezionare il device esterno e proseguire con il boot. Nel nostro caso abbiamo creato un'immagine contenente Paragon Backup & Recovery 2012 Free.
Come ulteriore prova che il nostro disco virtuale non contiene dati, proviamo a rimuovere il pendrive dal sistema ospite prima di avviare la macchina virtuale; VirtualBox presenterà un errore come questo, ad indicare che un dispositivo, di cui abbiamo specificato la locazione, non è presente:



Ricolleghiamo il pendrive sulla stessa porta USB di prima (pena la reinstallazione del dispositivo e la probabile assegnazione di un percorso fisico diverso).
Ad un primo avvio la macchina potrebbe bloccarsi e visualizzare messaggi come questo:



Niente paura, non si tratta di eventuali errori legati all'incompatibilità del device, quanto alle impostazioni della macchina virtuale non adeguate al sistema che vogliamo avviare. Nel caso specifico, Paragon Backup & Recovery ci chiede espressamente di attivare la modalità PAE del processore. Spegniamo la macchina, andiamo nelle impostazioni e attiviamo la funzionalità richiesta.



A questo punto riavviamo la macchina virtuale, selezioniamo come prima il dispositivo di boot corretto ed attendiamo il caricamento del sistema. Ecco che dopo qualche istante il nostro sistema si avvia e possiamo procedere con il resto delle operazioni

martedì 6 marzo 2012

venerdì 13 gennaio 2012

Ma perché cazzo si continua ad usare 'piuttosto che' con il significato di 'oppure'?

Il termine 'piuttosto che' sta ad indicare la preferenza di una cosa rispetto ad un'altra (piuttosto che un'altra). Purtroppo lo si sente usare sempre più frequentemente in contesti nei quali sia fa riferimento ad elenchi di oggetti, o situazioni. In tal senso al termine 'piuttosto che' viene attribuito il valore di congiunzione: si usa dire questo, piuttosto che quest'altro, piuttosto che questo ancora, come ad indicare "questo, quindi quest'altro, quindi quest'altro ancora"...
non va bene, non si fa, non è bello!

'Piuttosto che' ha significato totalmente opposto; posso dire ad esempio: "Starei volentieri a casa tutto il giorno piuttosto che uscire con lei ..." . In questo contesto si capisce bene il significato di "piuttosto che": esprime una scelta ben precisa che tende ad escludere la seconda possibilità; potrebbe essere paragonato ad ad un discorso tipo "faccio questa cosa pur di non fare quest'altra" ossia 'piuttosto che' fare quest'altra.

Un rimando alla pagina dell'autorevole Accademia della Crusca per chiarire le idee:
Uso di piuttosto che con valore disgiuntivo


Versione riveduta e corretta da Gattiuscia

giovedì 22 dicembre 2011

Codec G2M4

G2M sta per GoToMeeting ed è il codec utilizzato nei webinar organizzati da Citrix e da altri vendor. Per poter visualizzare una registrazione on-line oppure on-demand che utilizza questo formato, è necessario scaricare il relativo codec disponibile a questo URL:

"https://www4.gotomeeting.com/codec?Portal=www.gotomeeting.com"

martedì 20 settembre 2011

Modificare il codice prodotto di Windows XP

A questo link la procedura per modificare il codice prodotto di Windows XP http://www.visivagroup.it/showthread.php?t=7857 Una volta modificato il product key dobbiamo effettuare nuovamente l'attivazione del prodotto; questa non può essere eseguita in modalità provvisoria. Qualora vi siano problemi nel seguire la procedura on line di riattivazione, viene riportato anche uno script WMI che permette di effettuare la volo la modifica. La procedura è valida anche per Windows Server 2003.

martedì 2 agosto 2011

Scaricare versioni precedenti di Ubuntu

 

Chi abbia bisogno di trovare sulla rete versioni precedenti di Ubuntu, si accorgerà che non sono poi molti i siti che mettono a disposizione le iso o i repository delle vecchie release.

 
Sul sito di Canonical sono disponibili i link all'ultima versione, ovviamente, e alla precedente release LTS, in quanto coperta da supporto a lungo termine. Tuttavia, anche per le release LTS, non sono disponibili tutte le maintenance rilasciate nel corso del tempo. Ad esempio viene fornita la release 10.04.3 LTS (l'ultima disponibile al momento), ma non la precedente 10.04.2.
 
Partire dalla versione base (più facile da trovare in rete) e poi aggiornare i pacchetti richiesti, è un lavoro estenuante, dovendo controllare la specifica versione di ogni pacchetto e risolvere tutte le dipendenze richieste.
 
Alcuni software richiedono delle versioni specifiche del sistema operativo: ad esempio la piattaforma NComputing per Ubuntu, nella versione 3.1.3 attualmente disponibile, richiede che il sistema sia aggiornato ad Ubuntu 10.04.1 o 10.04.2 (quest'ultimo in particolare è consigliato). Il kernel supportato va dalla versione 2.6.32.21 alla 2.3.32.31. Questo software in particolare non digerisce molto modifiche precedenti o successive a quelle fissate nei requisiti di compatibilità.
 
Fortunatamente i repository e le iso delle release precedenti di Ubuntu vengono mantenute e sono disponibili a questo link:
 
 
Le release notes delle versioni sono invece consultabili tramite il sito
 
 
Per le altre distribuzioni come ad esempio kubuntu o xubuntu, le immagini precedenti possono essere scaricate da