Dual Boot from a VHD on Windows 7

Έχουν δημοσιευτεί 19 Οκτωβρίου 09 03:15 πμ

Me_teched Σε αυτό το post θέλω να περιγράψω πως είναι δυνατόν στα windows 7 να έχουμε την δυνατότητα dual boot χωρίς την ανάγκη δημιουργίας ξεχωριστών partitions κλπ, αλλά μόνο με την χρήση ενός αρχείου εικονικού δίσκου, ενός vhd. Ένα vhd το οποίο θα δημιουργήσετε και θα το χρησιμοποιήσετε για να bootαρετε ένα άλλο λειτουργικό όπως Vista, WS 2008, WS 2008 R2, χωρίς την χρήση κάποιου εξωτικού 3rd party εργαλείου.

Τα παρακάτω βήματα είναι απαραίτητα για την δημιουργία vhd από το οποίο θα γίνεται boot στο σύστημα μας

1. Δημιουργία VHD

2. Μεταφορά WIM image από DVD του επιλεγμένου λειτουργικού στο VHD

3. Επέμβαση στο boot loader για εκκίνηση από το VHD.

Στο παράδειγμα που θα ακολουθήσει θα δημιουργήσω ένα vhd με WS 2008 R2 μέσα σε ένα σύστημα με Windows 7, και θα το ρυθμίσω ώστε να bootαρω και απο αυτό ώστε στο ίδιο PC να έχω client και server λειτουργικό μαζί και να επιλέγω ποιο θα χρησιμοποιώ.

Είναι πραγματικά τόσο απλό όσο το περιγράφω με μόνη δυσκολία, ένα download…αυτό του WAIK. Και το περιγράφω ως δυσκολία διότι είναι το μόνο πράγμα που δεν έχετε άμεσα στη διάθεση σας, όλα τα άλλα είναι ήδη στο σύστημα σας.

Πάμε να το δούμε

Δημιουργία VHD

Εξασφαλίζω ελεύθερο χώρο σε ένα δίσκο του υπολογιστή μου. 20 GB είναι αρκετά. Και δεν εννοώ unallocated space αλλά κανονικό χώρο σε ένα volume. Δημιουργώ ένα folder στο volume αυτό όπου θα φιλοξενήσω το vhd μου. Π.χ. c:\vhd

Δημιουργώ VHD (π.χ. w2k8r2.vhd) από το Computer Management/Disk Management / Action / Create Vhd

clip_image002

Όταν το δημιουργήσουμε στο folder που δημιουργήσαμε παραπάνω, αυτό εμφανίζεται σαν κανονικός δίσκος στο disk management οπότε και τον κάνουμε initialize

clip_image004

Μετά δημιουργούμε single volume πάνω στον vhd και στη συνέχεια αναθέτουμε drive letter, έστω το x: με ένα label π.χ. WS2k8R2

Αν δεν σου αρέσει ο wizard έχουμε και εντολές τις οποίες δίνουμε στο cmd

DISKPART

CREATE VDISK FILE="c:\vhd\WS2K8R2.vhd" MAXIMUM=20000

SELECT VDISK FILE=" c:\vhd\WS2K8R2.vhd "

ATTACH VDISK

CREATE PARTITION PRIMARY

ASSIGN LETTER=X

FORMAT QUICK LABEL= WS2K8R2

EXIT

Μεταφορά WIM image από DVD στο VHD

Στη συνέχεια κατεβάζουμε το WAIK και το εγκαθιστούμε στο σύστημα. Από αυτό χρειαζόμαστε το imageX utility.

Τοποθετούμε το DVD των WS 2008 R2 και από εκεί θα πάρουμε το install.wim και θα μεταφέρουμε τα περιεχόμενα του στο VHD που φτιάξαμε παραπάνω:

clip_image006

d:\imagex>imagex /apply d:\install.wim 1 x:\

Στο παράδειγμα θεωρώ ότι στο partition d: έχω μεταφέρει το περιεχόμενο του WAIK και συγκεκριμένα το imagex σε ένα folder και ομοίως ότι έχω αντιγράψει το περιεχόμενο του dvd των WS 2008 R2 σε ένα άλλο folder στο d:

Στην παραπάνω εντολή, μετά το 'd:\install.wim' υπάρχει το '1'. Αυτό υποδηλώνει ποια από τις εκδόσεις που έχει μέσα το DVD των WS 2008 R2 θέλω να βάλω. Δηλαδή enterprise, standard, core κλπ.

Για να δούμε το index number αυτού που θέλουμε να εγκαταστήσουμε δίνουμε την εντολή d:\imagex>imagex /info "d:\<η θέση που βρίσκεται το wim στο dvd>\install.wim"

Επέμβαση στο boot loader για εκκίνηση από το VHD

Το τελευταίο βήμα είναι η προσθήκη του vhd στο boot μενού. Το εργαλείο εδώ είναι το BCDEdit.exe που υπάρχει στο σύστημα.

Ανοίγουμε Elevated Command Prompt με Administrator Privileges και δίνουμε:

C:\>bcdedit /copy {current} /d "Βάλε την περιγραφή του VHD που θές"

Αυτό θα προσθέσει εγγραφή στο boot μενού και θα επιστρέψει ένα guid το οποίο αντιγράφουμε και το τοποθετούμε στα παρακάτω commands όπου υπάρχει η ένδειξη <guid>

C:\>bcdedit /set <guid> device vhd=[driveletter:]\<directory>\<vhd filename>

C:\>bcdedit /set <guid> osdevice vhd=[driverletter:]\<directory>\<vhd filename>

C:\>bcdedit /set <guid> detecthal on

Για το παράδειγμα μας οι εντολές θα είναι:

C:\>bcdedit /set <guid> device vhd=[c:]\vhd\w2k8r2.vhd

C:\>bcdedit /set <guid> osdevice vhd=[c:]\vhd\w2k8r2.vhd

C:\>bcdedit /set <guid> detecthal on

Για να δούμε αν πετύχαμε δίνουμε την εντολή C:\>bcdedit /v οπότε και θα εμφανιστεί η εγγραφή όπως θα φαίνεται στο boot menu.

Αν έγινε λάθος και θέλουμε να σβήσουμε το entry δίνουμε:

C:\>bcdedit /delete <guid> /cleanup

Στο επόμενο restart στο boot μενού θα υπάρχει το νέο σύστημα και μπορούμε να το επιλέξουμε για να δουλέψουμε με αυτό.

Είτε ξεκινήσουμε από το κανονικό σύστημα είτε από το vhd τα περιεχόμενα είναι διαθέσιμα. Δηλαδή αν ξεκινήσουμε από το vhd το υπόλοιπο σύστημα θα φαίνεται με ένα drive letter στον windows explorer, ενώ αν ξεκινήσουμε από το κανονικό, μπορούμε να φορτώσουμε το vhd και να αλληλεπιδράσουμε με τα αρχεία που περιλαμβάνει χρησιμοποιώντας την τεχνική του πρώτου βήματος (attach vhd).

Αν θέλουμε αυτό το vhd να δωθεί και σε άλλα pc και να γίνει πραγματικά ανεξάρτητο από το hardware, το φορτώνουμε σε ένα server με Hyper-V, δημιουργούμε ένα VM και του κάνουμε sysprep. Στη συνέχεια μπορεί να φορτωθεί σε όσα διαφορετικά συστήματα θέλουμε.

Σε επόμενο post θα δούμε πως bootάρουμε μόνο απο το vhd χωρίς να υπάρχει τίποτα άλλο στο σύστημα.

από το μέλος Thanasis Kladakis

Σχόλια:

# Thanasis Kladakis said on Οκτωβρίου 19, 2009 3:23 πμ:

Προφανώς το παραπάνω θέμα το έχει παριλάβει σε webcast ο frees76, αλλά είπα να το ανέβάσω και γω για να μπορεί κάποιος να κάνει copy paste τις εντολές.

# outis said on Οκτωβρίου 19, 2009 4:42 μμ:

Απολύτως σωστός, μου χρειάστηκε πρόσφατα!

# GSimos said on Οκτωβρίου 19, 2009 7:43 μμ:

Ευχαριστούμε Νάσο!

Να σημειώσω ότι για Vista & Server 2008 χρειάζεται "κόλπο" για να παίξει.

Στη Θεσσαλονίκη το είχαμε παρουσιάσει στο Event του Ιουνίου 2009.

# Thanasis Kladakis said on Οκτωβρίου 20, 2009 9:28 πμ:

Τι κόλπο? Περιμένουμε να μας το πείτε.

Προφανώς βέβαια εννοείς όταν το βασικό λειτουργικό είναι vista πρέπει να κάνεις κόλπο.

# GSimos said on Οκτωβρίου 22, 2009 12:35 πμ:

Βασικά αντιμετώπισα ένα πρόβλημα προσπαθώντας να κάνω VHD boot ενός Vista λειτουργικού, θα το ξαναδοκιμάσω και σας αναφέρω.

# Nikos Kastanas said on Οκτωβρίου 23, 2009 3:45 μμ:

Αν το VHD ειναι Vista παιζει?

ΝΚ

# Thanasis Kladakis said on Οκτωβρίου 24, 2009 5:33 μμ:

Τι είναι τα Vista?

# frees76 said on Οκτωβρίου 25, 2009 7:58 πμ:

Νίκο boot από vhd κάνουν μόνο τα W7 και τα W2008 R2.

# Nikos Kastanas said on Οκτωβρίου 25, 2009 11:34 πμ:

για να ξεμπερδευτω πρεπει κ το host κ το Virtual να ειναι win7 or w2k8?

NK

# Thanasis Kladakis said on Οκτωβρίου 26, 2009 10:27 μμ:

Το host μπορει να είναι vista

ΑΛλά δυστυχώς χρειάζεται αντικατάσταση μία σειρά απο αρχεία με τα αντίστοθχα των win7 και μάλιστα με όχι και τόσο εύκολο τρόπο. Οπότε στην ουσία πρόκειται για χαρακτηριστικό των 7 και του WS2008R2

# klag said on Οκτωβρίου 29, 2009 9:03 μμ:

Πολύ χρήσιμο Το έκανα σήμερα και έπαιξε ΕΠΙΤΕΛΟΥΣ!!!

Μία λεπτομέρεια που μου είχε ξεφύγει (και μου άνοιξε τα μάτια ο Νάσος) ο Δίσκος C: πρέπει να είναι μέσα σε αγγείλες [C:] δηλαδή η εντολή που γράφει ο Νάσος επάνω C:\>bcdedit /set <guid> device vhd=c:\vhd\w2k8r2.vhd πρέπει να γίνει C:\>bcdedit /set <guid> device vhd=[c:]\vhd\w2k8r2.vhd

ΚΟΡΥΦΑΙΟ ΑΡΘΡΟ!!!! Ευχαριστώ Νάσο

# GSimos said on Νοεμβρίου 1, 2009 9:15 μμ:

Είχα αναφέρει παραπάνω ότι θα επανέλθω για τα Windows Vista/2008 Server, αντιγράφω απο το Virtualization Team Blog ( http://blogs.technet.com/virtualization/archive/2009/05/14/native-vhd-support-in-windows-7.aspx):

When Windows boots from a VHD file, all the ‘disk I/O’ to load the kernel device drivers, start system services, and run applications is translated to I/O to the VHD file initially, and then to I/O to the NTFS volume and the physical disk.    On shutdown, all outstanding write operations flush to the VHD file and underlying physical partition in the proper order before the storage stack shuts down the disk device.  Because of these enhancements to core parts of the system, native VHD boot only works for VHDs containing Windows 7 or Windows Server 2008 R2 and not earlier versions of Windows.  Native VHD boot in this release does not support BitLocker, or hibernation (which includes resuming from hibernate).

Τουτέστιν, δεν μπορείτε να έχετε VHD bootable λειτουργικά προηγούμενα των Windows 7 και Windows Server 2008 R2.

# Tips, Tricks and Recipes for IT Pros (Macedonia IT Pros Child) said on Νοεμβρίου 1, 2009 11:40 μμ:

Πριν από μερικές ημέρες ετοίμαζα το Lab μηχάνημα για τα Demos της ομιλίας μας με το Νάσο Κλαδάκη στο

# George J. Capnias said on Φεβρουαρίου 28, 2010 4:11 μμ:

Καλά για να πάρω το ImageX πρέπει να κατεβάσω τα 1,7GB του WAIK και δεν ξέρω εγώ πόσο χώρο θα πάρει στο σύστημά μου για να το εγκαταστήσω; Γιατί όλη αυτή η "ματσολιά";

Δεν μπορούμε να το πάρουμε κάπως αλλιώς;

Γιατί ας πούμε δεν είναι μέσα στο Microsoft Deployment ToolKit;

# Windows 8 Fever…. « Chris Spanougakis MVP Technology Issues said on Σεπτεμβρίου 17, 2011 2:03 μμ:

PingBack απόhttp://spanougakis.wordpress.com/2011/09/17/windows-8-fever/

# Macedonia IT PROs Community said on Σεπτεμβρίου 17, 2011 2:04 μμ:

Do you want to know how many Developer Preview downloads Microsoft had so far? During the first 24 hours

Έχει απενεργοποιηθεί η προσθήκη σχολίων από ανώνυμα μέλη