A partire da Windows 7, il sistema operativo è in grado di gestire anche i dischi rigidi virtuali e, nella versione Ultimate (ed Enterprise Edition), anche di avviarli. Nel seguente articolo presentiamo in modo più dettagliato questo nuovo tipo di disco rigido e il suo scopo, descriviamo l’installazione di Windows 7 in un file VHD e forniamo anche suggerimenti su come aggiungere successivamente un sistema operativo già presente in un file VHD nel gestore di avvio di Windows Vista/Windows 7.
Indice dei contenuti
Scopo dei dischi rigidi virtuali
I dischi rigidi virtuali non sono una novità di Windows 7 e sono utilizzati nei prodotti Microsoft dal 2005, in particolare nel virtualizzatore Microsoft Virtual PC e nelle sue varianti server. I dischi rigidi virtuali sono stati utilizzati anche come formato di file per le funzioni di backup a partire da Windows Vista. Windows 7 è ora il primo sistema operativo a supportare pienamente questo formato di file. Anche Windows Server 2008 R2 erediterà questa funzionalità.
Il “nome proprio” dei dischi rigidi virtuali è Virtual Hard Disk, o in breve VHD, di Microsoft. Invece di riempire un disco rigido con i dati, un file viene utilizzato come contenitore e integrato nel sistema come unità.
Tipi, vantaggi e svantaggi
Esistono 3 tipi di dischi rigidi virtuali:
1. disco rigido virtuale a dimensione fissa.
Un disco rigido virtuale di questo tipo occupa la dimensione specificata come massima su un disco rigido reale, anche se non ci sono ancora dati nel disco rigido virtuale (contenitore vuoto con dimensione fissa). Il vantaggio di questa variante è l’accesso molto veloce in lettura e scrittura, difficilmente distinguibile da quello di un disco rigido reale nel lavoro quotidiano.
2. disco rigido virtuale con dimensioni dinamiche
Con questo tipo di disco rigido, la dimensione è dinamica, cioè è grande solo quanto il contenuto che contiene. Poiché la dimensione deve essere adattata ogni volta quando si scrive su questo tipo di disco rigido, gli accessi in scrittura e lettura sono complessivamente molto più lenti rispetto al tipo fisso. I dischi rigidi dinamici non si riducono automaticamente e mantengono il loro stato più grande, anche se nel frattempo sono stati cancellati dei file. La “cura del rimpicciolimento” è possibile solo manualmente.
Il 3° disco rigido virtuale è diverso dal 2° disco rigido virtuale.
Il 3° tipo salva solo le modifiche e le aggiunte da apportare a un altro disco rigido virtuale protetto da scrittura (differenza). Il 3° tipo è quindi adatto come unità di annullamento per un disco rigido virtuale di dimensioni fisse che contiene un sistema operativo (vedere più avanti).
I dischi rigidi virtuali presentano vantaggi e svantaggi.
I vantaggi includono,
- che non è necessario modificare il partizionamento esistente per installare un sistema operativo come Windows 7 (Ultimate/Enterprise), ad esempio, se lo si installa in un disco rigido virtuale.
- Inoltre, è possibile eseguire il backup di questo sistema in modo molto semplice, poiché è sufficiente copiare il file VHD in un’altra posizione. Se si verifica un problema con il sistema operativo nel file VHD, è sufficiente sostituirlo con il backup per ripristinare lo stato originale.
- In combinazione con il disco differenziale, è possibile creare un bel sistema di prova.
- I backup del sistema operativo tramite la funzione di backup integrata possono essere facilmente integrati nel sistema per ripristinare i dati in esso contenuti.
- Con delle limitazioni, il sistema operativo nel file VHD può anche essere integrato in un ambiente virtuale con Microsoft Virtual PC o in altri prodotti che supportano questo tipo di file. Sebbene possa essere necessaria una riattivazione a causa del cambiamento dell’hardware nell’ambiente virtuale, è possibile continuare a utilizzare il sistema (su un altro PC, con un altro sistema operativo come host) in caso di problemi con il sistema.
- In teoria, si potrebbe assegnare un disco rigido virtuale a ciascun utente invece delle cartelle utente, il che renderebbe il backup e la gestione dei file molto più semplice per gli amministratori.
Gli svantaggi dei dischi rigidi virtuali sono in particolare,
- che questo tipo di file è attualmente supportato direttamente solo da Windows 7 e Windows Server 2008 R2. Prodotti di terze parti come Acronis True Image Home possono convertire questo tipo di disco rigido, ma non possono lavorare esclusivamente con esso.
- Inoltre, i dischi rigidi virtuali non possono essere integrati in modo permanente nel sistema. Se si monta un disco rigido virtuale nel sistema con la gestione del disco, questa allocazione viene persa al successivo avvio. Anche la crittografia di queste unità non è possibile con BitLocker.
- Se Windows 7 è installato in un VHD, l’ibernazione non è supportata.
- Inoltre, il file VHD deve trovarsi su un disco rigido reale. L’avvio di file VHD su unità USB non è supportato.
Creazione e utilizzo di dischi rigidi virtuali
In Windows 7, la gestione del disco (inserire“dischi rigidi” o“diskmgmt.msc” nella finestra di immissione/ricerca di Windows 7), che si trova in Sistema -> Strumenti di amministrazione, è responsabile della gestione dei dischi rigidi virtuali.
Qui è possibile creare nuovi VHD o integrare quelli esistenti nel sistema.
Gestione dei dischi |
Se si crea un nuovo VHD, la gestione del supporto dati offre solo i tipi dinamico e fisso.
Gestione dei dischi |
Si noti che nel caso di un supporto dati dinamico, la dimensione specificata rappresenta il “massimo” che questo tipo occupa nel sistema, mentre nel caso del tipo “a dimensione fissa”, questo spazio viene occupato direttamente, indipendentemente dai dati che contiene.
Una volta creato un supporto dati virtuale, è necessario inizializzarlo, come qualsiasi altro supporto dati.
Inizializzazione del supporto dati |
Il passo successivo consiste nel creare volumi sul disco rigido virtuale invece di partizioni. È possibile utilizzare l’intero spazio di archiviazione o solo una parte di esso per i volumi e quindi ospitare più unità su un disco rigido virtuale.
Specificare le dimensioni del volume |
Nell’ultimo passaggio vengono assegnati la lettera di unità e il file system, con i quali il volume viene poi montato nel sistema.
Assegnazione della lettera di unità |
Formattazione |
Per il nostro esempio, abbiamo impostato 2 volumi in un disco rigido virtuale.
Volumi finiti nel VHD |
Per il sistema operativo, questi volumi sono ora disponibili come qualsiasi altra partizione.
Visualizzazione in Risorse del computer |
Se si desidera scollegare il disco rigido virtuale mentre il sistema è in funzione, è possibile farlo anche tramite la gestione del supporto dati. Facendo clic con il tasto destro del mouse sul disco rigido virtuale, appare la voce necessaria.
Disconnessione dei dischi rigidi virtuali |
Se si seleziona la funzione di disconnessione qui, è necessario confermarla nuovamente.
Disconnessione dei VHD |
Attenzione: se si seleziona “Elimina il file per il disco rigido virtuale dopo la rimozione del volume”, il file VHD verrà eliminato!
Nel nostro esempio, entrambi i volumi vengono nuovamente scollegati dal sistema.
I VHD già esistenti possono essere montati nella gestione del supporto dati tramite il comando “Attacca disco rigido virtuale”. Nella finestra di dialogo seguente vengono specificati solo il percorso del file VHD e l’opzione se il supporto dati deve essere montato protetto da scrittura.
Collegamento dei VHD |
Se in un file VHD sono presenti più volumi, come nel nostro esempio, tutti i volumi in esso contenuti vengono montati nuovamente nel sistema e ricevono le lettere di unità precedentemente assegnate.
Conversione di dischi rigidi reali in dischi rigidi virtuali
Il piccolo strumento Disk2vhd crea file VHD da partizioni esistenti, che possono essere utilizzati nel modo descritto nell’articolo.
Convertire in VHD |
Ingrandire e ridurre i VHD
Con lo strumento gratuito VHD Resizer è possibile regolare le dimensioni di un file VHD e/o modificarne successivamente il tipo.
Modifica delle dimensioni e/o del tipo di VHD |
Ulteriori possibilità con Diskpart
Con il programma “Diskpart”, che si avvia tramite la riga di comando, non si hanno solo le possibilità di creare, montare e separare i VHD presentate finora con la gestione dei dischi, ma anche altre più particolari.
Per avviare Diskpart è necessaria la riga di comando con diritti di amministratore (“cmd” + [CTRL]+[Shift]+[Invio]). Diskpart non è un comando, ma un programma che si aspetta ulteriori comandi dopo l’avvio. Tutte le opzioni di Diskpart (non solo per i VHD) possono essere richiamate con “help”. Per uscire da Diskpart è necessario il comando “exit”.
Diskpart |
I dischi rigidi virtuali possono essere creati con il comando create vdisk file=f:test.vhd Massimo=25000 tipo=fisso. Al posto del tipo fisso è possibile specificare anche espandibile (dinamico).
Disco rigido differenziale
Il terzo tipo di disco rigido, differenziale, viene creato con Diskpart specificando il disco rigido principale.
Il comando create vdisk file=f:testdiff.vhd parent=f:test.vhd crea un file differenziale che viene assegnato a test.vhd. Se testdiff.vhd viene integrato nel sistema, il contenuto di test.vhd viene visualizzato, ma tutte le modifiche vengono salvate in testdiff.vhd. Questo sistema è particolarmente adatto per un’installazione di Windows 7 a scopo di test. In caso di problemi con il sistema, è possibile eliminare il file testdiff.vhd e crearne uno nuovo. L’installazione di Windows non ne risente.
Si noti che invece del file VHD con l’installazione di Windows 7, è necessario includere il file delle differenze nel gestore di avvio e la voce di avvio deve essere modificata a questo scopo (vedere più avanti nel testo al punto 1.3). Questa operazione deve essere eseguita dopo aver completato l’installazione di Windows 7.
Includere, ingrandire, comprimere
I dischi rigidi virtuali vengono montati con l’aiuto di diskpart tramite i comandi
selezionare vdisk file=”f:test.vhd”
attacca vdisk
nel sistema.
Per disconnetterlo, l’input
selezionare vdisk file=”f:test.vhd”
stacca vdisk
è necessario.
I dettagli sul file VHD, come la dimensione, lo stato, l’unità padre assegnata ecc. possono essere trovati con il comando
select vdisk file=”f:est.vhd”
allega vdisk
Dettaglio vdisk
Stacca vdisk
ottenere.
I dischi rigidi virtuali possono anche essere successivamente ingranditi, ma non ridotti di dimensioni.
selezionare vdisk file=”f:test.vhd”
espandi vdisk massimo=30000
Come già detto, i dischi rigidi dinamici non si riducono automaticamente e mantengono il loro stato più grande, anche se nel frattempo sono stati cancellati dei file. La “cura del rimpicciolimento” è possibile solo manualmente. Per comprimere un VHD dinamico, inserire in Diskpart i comandi
select vdisk file=”f:test.vhd”
compatta vdisk
in Diskpart.
Integrazione automatica
Sfortunatamente, i VHD montati non vengono più montati automaticamente al riavvio del sistema, quindi è necessario tornare alla gestione del disco. Questo può essere fatto un po’ più facilmente con il piccolo freeware VHD Attach, che si integra nel menu contestuale dei file VHD e può quindi montare i VHD nel sistema o smontarli di nuovo con un clic del mouse.
VHD Attach |
Windows 8 può montare i file VHD semplicemente facendo doppio clic.
Un’integrazione automatica all’avvio, che aumenterebbe notevolmente l’utilità dei VHD, è possibile solo in modo indiretto e con il comando “diskpart”. In vari post su Internet (cercare termini VHD attach), ad esempio, si consiglia di creare un file batch.
Qui abbiamo un esempio, composto da 2 file. Il file attach.cmd viene richiamato all’avvio del sistema e cerca nel file disk.txt quali VHD devono essere collegati. Il vantaggio di separare i due file è che non si deve modificare nulla quando si cambia la chiamata stessa e si possono elencare diverse unità in disk.txt.
La sintassi di attach.cmd è quindi: diskpart /s c:scriptsdisk.txt
Il secondo file disk.txt (nella cartella c:scripts) contiene le informazioni su cosa esattamente Diskpart deve eseguire. Nell’esempio, vengono montati 2 VHD dal percorso F.
selezionare vdisk file=”f:test.vhd”
collegare il vdisk
selezionare vdisk file=”f:test2.vhd”
collega il vdisk
Tuttavia, questo sistema ha lo svantaggio che, grazie all’UAC, è necessario accettare le modifiche apportate da Diskpart ogni volta che si avvia il sistema.
Interrogazione UAC da parte di Diskpart |
Anche in questo caso esiste una soluzione: senza disattivare l’UAC, la richiesta di controllo dell’account utente non appare con questo programma. È spiegato nell’archivio dei suggerimenti di WinTotal.
Installazione su un disco rigido virtuale
Oltre all’installazione su una partizione reale, le edizioni Ultimate ed Enterprise di Windows 7 possono essere installate anche su un disco rigido virtuale. Questo tipo di installazione ha il vantaggio di non dover apportare alcuna modifica alle partizioni esistenti. Il disco rigido virtuale, come qualsiasi altro file, si trova semplicemente in una partizione con spazio sufficiente e viene montato da lì come unità virtuale quando Windows 7 tenta di avviarsi e viene quindi utilizzato come disco rigido. Se si desidera rimuovere l’installazione, è sufficiente eliminare il file e rimuovere la voce Windows 7 dal boot manager con strumenti come EasyBCD, in modo che il vecchio sistema si avvii nuovamente come prima. La perdita di velocità quando si lavora con un disco rigido virtuale in un sistema reale (non in una macchina virtuale) può essere dimostrata solo da misurazioni e non è quindi percepibile nel lavoro quotidiano.
Per creare un disco rigido virtuale, procedete come segue:
- Avviare prima il prompt dei comandi tramite [Shift]+[F10] e qui diskpart.
- Quindi utilizzare Seleziona volume (ID) per selezionare il volume corretto (volume elenco) su cui creare il disco rigido virtuale come file.
- Nel passaggio successivo, utilizzare il comando create vdisk file=c:win7.vhd type=fixed maximum=25000 per creare il disco virtuale.
Il percorso c: è solo un esempio e deve essere sostituito dal percorso in cui verrà memorizzato il disco rigido virtuale. Il tipo fisso specifica che si tratta di un disco rigido virtuale di dimensioni fisse e non in espansione. Quest’ultimo può essere definito con il comando expandable; richiede meno spazio sul disco rigido, ma costa in termini di prestazioni, soprattutto all’avvio e all’arresto del sistema su questo supporto dati. La dimensione del disco rigido virtuale viene impostata con il parametro massimo. - Nell’ultimo passaggio, selezionare il disco rigido creato con select vdisk file=c:Win7.vhd (il percorso è solo un esempio) e montarlo come supporto dati con attach vdisk.
Creazione di un disco rigido virtuale |
Dopo aver digitato Esci nel prompt dei comandi e aver aggiornato la visualizzazione del disco, il disco virtuale è visibile.
Selezione della partizione per l’installazione |
Si può ignorare l’indicazione che Windows non può essere installato su questo disco, perché funzionerà comunque.
Includere i dischi di installazione virtuali nel boot manager
Come descritto in precedenza, il sistema operativo può essere installato anche in un disco rigido virtuale (VHD). Tuttavia, poiché il boot manager non si trova nel file VHD, ma sul primo disco rigido primario del sistema, questi dati vengono persi quando il disco rigido viene modificato o cancellato. Di seguito verrà quindi descritto come è possibile reintegrare un’installazione VHD in un boot manager esistente di Vista/Windows 7 o, se non esiste più un boot manager, come è possibile crearlo ex novo.
Dopo aver installato Windows 7 in un disco rigido virtuale (file VHD), il programma di installazione aggiunge automaticamente le voci necessarie al boot manager per avviare il sistema dal file VHD. Il gestore di avvio non è presente nel file VHD, ma nella partizione di avvio del sistema.
Se ora il sistema viene configurato di nuovo (formattazione del supporto dati, ecc.), si pone la questione di come riportare il VHD nel boot manager. Esistono due scenari diversi:
1. sul disco rigido è già presente Windows Vista o Windows 7. 2. il disco rigido è “vuoto”.
2. il disco rigido è “vuoto”, cioè non c’è alcun boot manager di Windows sul disco rigido.
Scenario 1: Sul disco fisso è già presente Windows Vista o Windows 7.
In questo scenario Windows Vista e/o Windows 7 sono già installati sul sistema e quindi il boot manager è già presente su una partizione. L’installazione VHD deve essere aggiunta al boot manager.
1.1 Salvataggio delle impostazioni
Salvare prima le voci del boot manager con il comando bcdedit /export “c:bdsicherung”, nel caso in cui qualcosa vada storto durante la modifica. Il codice originale può essere riletto con bcdedit /import “c:bdsicherung”.
1.2 Creazione di una nuova voce per il file VHD
Il primo passo consiste nell’avviare la riga di comando CMD con diritti di amministratore ([CTRL]+[SHIFT]+[INVIO]) dal sistema in esecuzione.
Quindi creare una copia della voce standard nel gestore di avvio con il comando bcdedit /copy {default} /d “Windows 7 VHD”, da cui esce un nuovo {guid}. Il modo migliore per copiarlo è tramite gli appunti (selezionare con il mouse, quindi [RETURN] per copiare) nell’editor di testo Notepad. Il parametro /d assegna un nome (descrizione).
Restituzione di una nuova guida |
Il risultato appare come segue:
Nuova voce nel boot manager |
In basso si trova la nuova voce, che ora deve essere modificata.
1.3 Regolazione della voce appena creata
Le tre voci seguenti devono essere immesse tramite la riga di comando, dove il {guid} e il percorso (unità, percorso e nome del file) devono essere modificati.
bcdedit /set {guid} device vhd=[X:]win7.vhd
bcdedit /set {guid} osdevice vhd=[X:]win7.vhd
bcdedit /set {guid} detecthal on
Suggerimento: Per facilitare l’inserimento, si consiglia di preparare prima le voci nell’editor di testo, quindi di copiarle e incollarle nella riga di comando tramite la modalità QuickEdit. La modalità QuickEdit può essere attivata tramite le proprietà del prompt dei comandi, premendo il tasto destro del mouse nella barra del titolo e selezionando “Proprietà”. Se questa modalità è attivata, il contenuto degli appunti viene copiato direttamente nel prompt utilizzando il tasto destro del mouse. In questo modo si risparmiano lavoro ed errori di battitura con stringhe di caratteri lunghe.
Utilizzo della modalità QuickEdit |
Per il nostro sistema di prova, le righe sono le seguenti (il nostro file VHD si trova nell’unità F: nel percorso VMswin7vhd):
bcdedit /set {3ab629db-e099-11dc-b85f-e5800bbe0444} device vhd=[f:]VMswin7vhdwin7.vhd
bcdedit /set {3ab629db-e099-11dc-b85f-e5800bbe0444} osdevice vhd=[f:]VMswin7vhdwin7.vhd
bcdedit /set {3ab629db-e099-11dc-b85f-e5800bbe0444} detecthal on
Voci modificate per il file VHD |
Se ora si visualizza il boot loader, si vedrà la voce modificata alla fine:
Voci modificate per il file VHD |
Perché così macchinoso, si chiederà un conoscitore di strumenti come EasyBCD o VistaBootPro. Entrambi i programmi attualmente (dall’11/09) non sono in grado di creare e visualizzare correttamente le voci di un file VHD (vedi schermata). Possono solo essere modificate o eliminate in termini di nome e ordine.
Visualizzazione errata in EasyBCD |
Scenario 2: Il disco rigido è “vuoto”, cioè non c’è alcun gestore di avvio di Windows sul disco rigido.
In questo scenario, il disco rigido del sistema è privo di un gestore di avvio, cioè vuoto, e il file VHD si trova su un’unità esterna (USB). Poiché le informazioni di avvio non sono presenti nel file VHD, è necessario installare prima il codice di avvio per il boot loader.
2.1 Avvio del sistema dal supporto di installazione
A tal fine, avviare il sistema dal supporto di installazione di Windows 7 e avviare il setup. Dopo aver confermato le condizioni di licenza, selezionare il tipo di installazione “Definito dall’utente (esteso)”. Il programma di installazione visualizza ora le unità e le partizioni esistenti. A questo punto è necessario creare una nuova partizione oppure utilizzare una partizione esistente per il boot manager.
Se sul disco rigido esiste già una partizione, si può determinare con i comandi
diskpart
elenca volume
Esci
che può essere immesso nella riga di comando con [SHIFT]+[F10]. L’uscita è necessaria per lasciare nuovamente diskpart.
elenco volumi |
Se nel sistema è già presente una partizione primaria, si può passare al punto 2.4, altrimenti si deve continuare con il punto 2.2.
2.2 Creazione di una partizione di sistema
Se non esiste ancora una partizione (come nel nostro esempio), è necessario creare una nuova partizione tramite il programma di installazione di Windows. A tale scopo, fare clic su Opzioni unità (Avanzate).
Opzioni unità (avanzate) |
Fare clic su “Nuovo” per creare una nuova partizione. La dimensione deve essere scelta in modo che ci sia spazio per un file di swap oltre al file VHD. La nuova partizione, nel nostro esempio di circa 30 GByte (per il file VHD con l’installazione e il file di swap), deve ora essere formattata.
Dimensione dello spazio di archiviazione |
Formato |
Oltre alla partizione selezionata (E), Windows crea un’unità di sistema riservata (C) con 100 MB, sulla quale è possibile collocare successivamente il gestore di avvio.
Visualizzazione dei volumi con Diskpart |
2.3 Copia del file VHD
Ora copiate il file VHD con l’installazione di Windows 7 nell’unità E creata in precedenza. Questo presuppone che l’unità esterna sia già stata collegata quando è stata avviata l’installazione di Windows 7. Il trasferimento viene effettuato con il comando copy, ad esempio: copy f:win7.vhd e:.
2.4 Copia del Boot Manager nella partizione di avvio
Nella fase successiva, il boot manager deve essere copiato nella partizione di avvio. I file necessari per il boot loader si trovano nella directory Windows dell’installazione Windows esistente sul disco rigido virtuale. Per accedervi, il file VHD deve prima essere montato come unità.
A tal fine, aprire Diskpart nella riga di comando con [SHIFT]+[F10] e montare il file VHD con i comandi
select vdisk file=e:win7.vhd (il percorso e il nome del file sono solo esemplari, vedere 2.3)
attacca vdisk
come unità aggiuntiva.
Nel nostro esempio, l’installazione VHD è ora montata nell’unità D. Diskpart mostra anche la lettera del disco di installazione, nel nostro esempio D, che diventa importante per il comando bcdboot.
Con i comandi
cd d:windowsSystem32
bcdboot d:windows
il gestore di avvio viene impostato sull’unità C.
Copia del gestore di avvio |
I passi successivi sono identici a quelli del punto 1.2. Le voci superflue del boot manager possono essere facilmente rimosse dal VHD-Windows con lo strumento EasyBCD.
Ulteriori link sull’argomento
Technet: Aggiunta di un disco rigido virtuale nativo al menu di avvio.
Technet: Nozioni di base sui dischi rigidi virtuali ad avvio nativo
Tecnologie: Sintassi di bcdedit
Technet: Domande frequenti sull’editor dei dati di configurazione di avvio
Technet: Domande frequenti: Dischi rigidi virtuali in Windows 7
Blog Daniel Melanchthon: Come funziona l’avvio da VHD?
Blog Daniel Melanchthon: Devirtualizzazione con l’avvio da VHD
Unawave: Windows 7