Monday, March 8, 2010

การบูท Windows 7 จาก Virtual Hard Disk

Windows 7 นั้นมีฟีเจอร์สำคัญตัวหนึ่งคือฟีเจอร์การบูทระบบจาก Virtual Hard Disk (VHD) ซึ่งเป็นฟีเจอร์ที่มีประโยชน์อย่างมากในการใช้งานในด้านการทดสอบหรือพัฒนาระบบ และยังเป็นทางเลือกที่ดีในการใช้งานแบบ "Multi-boot" สำหรับผู้ใช้ที่ต้องการรันหลายระบบปฏิบัติการบนคอมพิวเตอร์เครื่องเดียว

ข้อดีของการบูทระบบจาก VHD คือระบบปฏิบัติการจะทำงานบนระบบฮาร์ดแวร์จริงเหมือนกับการบูทจากฮาร์ดดิสก์หลักทุกประการ ทำให้สามารถใช้ประโยชน์ฮาร์ดแวร์ต่างๆ เช่น Memory, Graphics, Wireless หรือ USB ได้อย่างเต็มประสิทธิภาพ ซึ่งไม่สามารถทำได้ในการใช้งานแบบ "Virtual environment"

อย่างไรก็ตาม การบูท Windows 7 จาก VHD มีข้อควรทราบ 2 ข้อดังนี้
1. ฟีเจอร์นี้รองรับเฉพาะ VHD ของระบบปฏิบัติการ Windows 7 และ Windows Server 2008 R2 เท่านั้น
2. วิธีการเตรียม VHD สำหรับใช้ในการบูทจะทำได้โดยใช้ ImageX หรือ Sysprep

สำหรับบทความนี้จะแสดงวิธีการเตรียม VHD สำหรับใช้ในการบูทโดยใช้ ImageX สำหรับวิธีการใช้ Sysprep นั้นจะนำมาเสนอในโอกาสต่อไปครับ

เตรียมความพร้อมระบบ
การบูทระบบด้วย VHD จะต้องทำบนเครื่องคอมพิวเตอร์ที่ใช้ Windows 7 (ในที่นี่ใช้รุ่น Ultimate 32-bit) และจะต้องทำการสร้างไฟล์ VHD และเพิ่มไฟล์ VHD เข้าในระบบ (Attach) ตามขั้นตอนในบนความเรื่อง Creating Virtual Hard Disk (VHD) in Windows 7 using Disk Management) หรือ Creating Virtual Hard Disk (VHD) using Diskpart utility) ซึ่งผมได้โพสต์ไปแล้วก่อนหน้านี้ โดยบทความนี้จะอ้างอิงการสร้างไฟล์ VHD ชื่อ vhd01.vhd เก็บไว้ในโฟลเดอร์ชื่อ VHD บนไดรฟ์ D: และกำหนดอักษรประจำไดรฟ์เป็น H:

นอกจากนี้ จะต้องทำการเตรียมแผ่นดีวีดีติดตั้ง Windows 7 (ในที่นี้ไดรฟ์ดีวีดีคือไดรฟ์ F:) และเครืองมือ ImageX ซึ่งเป็นเครื่องมือแบบคอมมานด์ไลน์ในชุดเครื่องมือ Windows Automated Installation Kit (WAIK) สามารถดาวน์โหลดได้ฟรีจากเว็บไซต์ Microsoft (http://go.microsoft.com/fwlink/?LinkId=136976) โดยหลังจากดาวน์โหลดแล้วให้ทำการติดตั้งให้เรียบร้อย

ขั้นตอนที่ 1 การเตรียม VHD โดยใช้เครื่องมือ ImageX
ImageX เป็นเครื่องมือสำหรับใช้ในการสร้าง, แก้ไข และดีพลอยไฟล์ Windows images (ไฟล์ .wim) และยังสามารถใช้ทำการแยกรุ่นของไฟล์ Windows images ของ Windows 7 ที่ต้องการลงไปเก็บไว้ในไลฟ์ VHD ได้ตามขั้นตอนดังนี้
1. คลิก Start แล้วพิมพ์ cmd ในช่อง Search programs and files จากนั้นคลิกขวาบน cmd ที่แสดงในรายการภายใต้หัวข้อ Programs แล้วคลิก "Run as administrator"


2. ในหน้าไดอะล็อกบ็อกซ์ User Account Control (UAC) ให้คลิก Continue
3. ในหน้าต่างคอมมานด์พร็อมท์ให้ทำการรันคำสั่งด้านล่าง (พิมพ์คำสั่งแล้วตามด้วยกด Enter) แล้วรอจนการทำงานแล้วเสร็จ ซึ่งอาจใช้เวลาหลายนาที

imagex /apply "F:\sources\install.wim" 5 H:\

เมื่อ: F:\sources\install.wim คือตำแหน่งของไฟล์ install.wim ซึ่งอยู่ในแผ่นดีวีดีติดตั้ง Windows 7 ในไดรฟ์ F: และ 5 คือ หมายเลข Image Index ซึ่งอ้างอิงรุ่นของ Windows 7 Ultimate และ  H:\ อักษรประจำไดรฟ์ของไฟล์ VHD

วิธีการดูหมายเลข Image Index
สำหรับวิธีการดูหมายเลข Image Index ซึ่งใช้ในการอ้างอิงรุ่นของ Windows 7 (ในบทความนี้ใช้ 5 ซึ่งอ้างอิงรุ่นของ Windows 7 Ultimate) สามารถดูได้โดยการรันคำสั่งด้านล่างที่คอมมานด์พร็อมท์

imagex /info "F:\sources\install.wim"


หลังจากทำการแยกรุ่นของไฟล์ Windows images ของ Windows 7 ที่ต้องการลงไปเก็บไว้ในไลฟ์ VHD เสร็จเรียบร้อยแล้ว ขั้นตอนต่อไปคือการสร้าง Boot Menu

ขั้นตอนที่ 2 การสร้าง Boot Menu
การสร้าง Boot Menu มีขั้นตอนดังนี้
1. คลิก Start แล้วพิมพ์ cmd ในช่อง Search programs and files จากนั้นคลิกขวาบน cmd ที่แสดงในรายการภายใต้หัวข้อ Programs แล้วคลิก "Run as administrator"
2. ในหน้าไดอะล็อกบ็อกซ์ User Account Control (UAC) ให้คลิก Continue
3. ในหน้าต่างคอมมานด์พร็อมท์ให้ทำการรันคำสั่งด้านล่าง (พิมพ์คำสั่งแล้วตามด้วยกด Enter)

bcdedit /copy {current} /d "Boot from VHD"

โดยผลลัพธ์ที่ได้จากคำสั่งด้านบนจะแสดงค่า GUID ปัจจุบันในลักษณะดังนี้

The entry was successfully copied to {f1aeaa7a-ac5d-11de-b4cc-fb84df2afe01}.

4. จากนั้นให้นำค่า GUID ที่ได้ (ค่าในเครื่องหมาย {}) ไปแทนที guid คำสั่ง ด้านล่าง

bcdedit /set {guid} device vhd=[D:]\VHD\vhd01.vhd
bcdedit /set {guid} osdevice vhd=[D:]\VHD\vhd01.vhd
bcdedit /set {guid} detecthal on


5.ทำการรีสตาร์ทเครื่องคอมพิวเตอร์แล้วเลือกบูทเป็น Boot from VHD จากนั้นให้ทำการติดตั้ง Windows 7 Ultimate บน VHD เหมือนกับการติดตั้งตามปกติ (อาจมีการรีสตาร์ทระบบหลายครั้ง) หลังจากติดตั้งเสร็จแล้วก็จะสามารถใช้งาน Windows 7 จากไฟล์ VHD เหมือนการบูทจากระบบฮาร์ดดิสก์ตามปกติ

การตรวจสอบบูทเมนู
หากต้องการตรวจสอบว่าการเพิ่มบูทเมนูเสร็จเรียบร้อยหรือไม่ให้รันคำสั่ง bcdedit /v ที่คอมมานด์พร็อมท์ หากผลการทำงานถูกต้องจะเห็นบูทเมนูที่ทำการสร้างซึ่งในที่นี้คือ Boot from VHD ดังรูปด้านล่าง

 

การลบบูทเมนู
หากต้องการลบบูทเมนูที่ไม่ต้องการออกให้รันคำสั่งด้านล่างที่คอมมานด์พร็อมท์ โดย guid คือ ค่า GUID ของบูทเมนูที่ต้องการลบ

bcdedit /delete {guid} /cleanup


บทความโดย: Thai Windows Administrator Blog

แหล่งข้อมูลอ้างอิง
Technet

© 2010 TWA Blog. All Rights Reserved.

0 Comment: