Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows 7

การบูต Windows 7 / 10 จากดิสก์ GPT บนระบบ BIOS (ไม่ใช่ UEFI)

วันนี้มาพูดถึงวิธีติดตั้ง/บูต Windows รุ่นสมัยใหม่ (รวมถึง Windows 7 และ Windows 10) บนคอมพิวเตอร์เก่าที่มี Firmware BIOS (ไม่รองรับ UEFI) พร้อมฮาร์ดดิสก์ที่ใช้ GPT Partition Table ความจำเป็นในการทำเช่นนี้เกิดขึ้นเมื่อผมพยายามติดตั้ง Windows Server 2008 R2 บนเซิร์ฟเวอร์ HP DL380 G8 (HP DL Server ยังไม่รองรับ EFI) พร้อมดิสก์ท้องถิ่นรวมขนาดมากกว่า 4 TB ใน RAID 5 ในการติดตั้ง Windows แบบปกติบนดิสก์ MBR มีพื้นที่ใช้ได้เพียง 2 TB เท่านั้น ไม่สามารถจัดสรรหรือเข้าถึงพื้นที่อีก 2 TB ที่เหลือได้ วิธีเดียวที่จะใช้พื้นที่ดิสก์ทั้งหมดคือแปลง Disk Layout เป็นรูปแบบ GPT

บทความนี้อธิบายวิธีตั้งค่า Windows ให้บูตจากฮาร์ดดิสก์ที่ทำเครื่องหมายเป็น GPT Partition Table บนคอมพิวเตอร์ที่มี Classic BIOS (Non-UEFI) หรือโหมด Legacy BIOS Windows OS ไม่สามารถบูตจากดิสก์ GPT บนระบบ BIOS เก่าได้ เพื่อแก้ข้อจำกัดนี้ เราจะ ย้าย Windows Bootloader (BCD) ไปยัง USB Flash Drive ขนาดเล็ก (หรือ HDD) แยกต่างหาก ที่มี MBR Partition Table Flash Drive นี้จะใช้เพื่อเริ่มต้น Windows Bootloader เท่านั้น ซึ่งต่อมาจะส่งต่อการควบคุมไปยัง Windows Image หลักที่อยู่บนดิสก์ที่มี GPT Partition Table คำแนะนำนี้ใช้ได้ทั้ง Windows 7 และ Windows 10 และรุ่น Windows x86/x64 ที่รองรับอยู่ทั้งหมด

ข้อดีของ GPT เหนือ MBR

GUID Partition Table (GPT) รูปแบบตาราง Partition ใหม่บนฮาร์ดดิสก์ ให้ข้อดีอะไรบ้าง? GPT ช่วยข้ามข้อจำกัดของ MBR Partition Table แบบคลาสสิก สรุปจุดสำคัญ:

  1. รองรับฮาร์ดดิสก์ขนาดใหญ่กว่า 2.2TB (ขนาด GPT Disk สูงสุด 9.4 ZettaBytes)
  2. รองรับ Partition ได้ถึง 128 Partition (MBR มีได้แค่ 4 Partition)
  3. ความน่าเชื่อถือสูง ด้วยการ Duplicate Partition Table หลายจุดบนดิสก์ และตรวจสอบด้วย CRC
  4. ไม่ต้องใช้ Logical Partitions ที่มักเกิดข้อผิดพลาด

การบูต Windows จากดิสก์ GPT

ตามเอกสาร Microsoft อย่างเป็นทางการ ทุก OS ตั้งแต่ Windows Server 2003 SP1 รองรับ Volume ที่มี GPT Markup เป็น Data Disk แต่ เฉพาะ Windows 64-bit ที่ติดตั้งบน Motherboard รองรับ UEFI เท่านั้นที่บูตจาก GPT Volume ได้ ดังนั้น ไม่สามารถติดตั้งหรือบูต Windows จากดิสก์ GPT บนคอมพิวเตอร์เก่าที่มี BIOS แบบคลาสสิกได้

เคล็ดลับ มีวิธี繞ทางหลายอย่างที่อนุญาตให้บูต Windows 10/7 x64 บนคอมพิวเตอร์ BIOS จากดิสก์ GPT ต้องใช้ Boot Disk ที่มี DUET (Developer's UEFI Environment) ซึ่งจำลอง EFI ในการตั้งค่านี้ BIOS จะเริ่มบูตจาก SYSLINUX ที่ติดตั้ง ซึ่งโหลด UEFI Emulator (DUET) DUET จะเรียก Windows Bootloader มาตรฐานคือ bootx64.efi อีกวิธีคือแปลงดิสก์เป็นโหมด Hybrid MBR ด้วย Tool Linux gdisk แต่ทั้งสองวิธีซับซ้อนและต้องมีความรู้ Linux อยู่พอสมควร

ข้อเท็จจริงสำคัญที่ต้องจำเสมอ: สามารถบูต Windows x64 จากดิสก์ GPT ได้เฉพาะระบบที่เป็น UEFI-based เท่านั้น

ดังนั้น หาก PC ของคุณเป็น BIOS-based และต้องการดิสก์ที่มี GPT Partition Table วิธีง่ายที่สุดคือเพิ่มฮาร์ดดิสก์ MBR อีกอัน (Standard หรือ SSD) ติดตั้ง Windows บนมัน แล้วบูตจากดิสก์นั้น

เราจะปรับวิธีนี้เล็กน้อย จำเป็นต้องมี USB Flash Drive หรือ SD Card ขนาดเล็ก (อย่างน้อย 64 MB) ที่มี MBR Markup วาง Windows Boot Manager (bootmgr) ขนาดเล็กไว้ Flash Drive ที่บูตได้นี้จะให้การบูตเริ่มต้นและส่งต่อการควบคุมไปยัง Bootloader ของระบบหลักที่อยู่บน GPT Volume

สำคัญ! BIOS ของคุณต้องรองรับบูตจาก USB Flash Drive หรือ SD Card

ดังนั้น การบูต Windows ทุกรุ่น (ทั้ง x86 และ x64!!!) บนระบบ BIOS-based (ไม่มี EFI) จึงได้รับการรองรับ

การติดตั้ง Windows บนดิสก์ GPT บนคอมพิวเตอร์ BIOS

สมมติเรามีคอมพิวเตอร์ BIOS (Non-UEFI Firmware) ฮาร์ดดิสก์ใช้ GPT Partition Table เมื่อพยายามติดตั้ง Windows บน GPT Drive ของคอมพิวเตอร์นี้ Windows Setup จะคืนข้อผิดพลาด:

Windows cannot be installed to this disk the selected disk is of the GPT Partition Style

การบูต Windows 7 / 10 จากดิสก์ GPT บนระบบ BIOS (ไม่ใช่ UEFI)

เคล็ดลับ สามารถแปลง Partition Table จาก MBR เป็น GPT พร้อมลบข้อมูลทั้งหมดได้โดยกด Shift+F10 บนหน้าจอ Windows Setup รันคำสั่ง:

Diskpart
select disk 0
clean
convert gpt

ในกรณีนี้ สามารถติดตั้ง Windows 10/8.1/7 บนดิสก์ GPT ได้เฉพาะในโหมด UEFI ผ่าน DUET Emulation แต่โหมดนี้ใช้ได้กับ Windows 64-bit เท่านั้น และขั้นตอนซับซ้อน

จึงง่ายกว่าที่จะติดตั้ง Windows บนดิสก์ MBR แบบปกติ ก่อน แล้วค่อยแปลงเป็น GPT ด้วย gptgen

Gptgen: แปลง MBR เป็น GPT โดยไม่ลบ Partition

Windows Disk Management Snap-in อนุญาตแปลง MBR Disk เป็น GPT ได้ก็ต่อเมื่อเป็น Unallocated หรือ "Clean" ไม่สามารถแปลงดิสก์ที่มี OS ติดตั้งอยู่ได้

หมายเหตุ ใน Windows 10 1703 (ขึ้นไป) มี Console Utility mbr2gpt.exe ที่อนุญาตแปลง Partition Table จาก MBR เป็น GPT โดยไม่สูญเสียข้อมูล (ดูบทความ Convert MBR to GPT without losing data in Windows 10)

เพื่อแปลงฮาร์ดดิสก์จาก MBR เป็น GPT แบบ Online สามารถใช้ Tool ขนาดเล็ก Gptgen ที่เปลี่ยนรูปแบบ Partition Table แบบ Real-time ได้โดยไม่ต้องลบ Partition ทั้งหมด (ไม่สูญเสียข้อมูล)

สำคัญ! ก่อนแปลง แนะนำให้ Copy ข้อมูลสำคัญทั้งหมดไปเก็บที่ External Drive แยกต่างหาก แม้ผมจะไม่เคยเห็น Gptgen ล้มเหลวจนทำให้ File System Crash แตก็แนะนำให้ Backup ข้อมูลก่อนการแปลง

  1. ดาวน์โหลด gptgen แตกไฟล์ไปที่ไดเรกทอรี่ใดก็ได้ (เช่น c:\tools\gptgen-1.1)
  2. รัน Command Prompt ด้วยสิทธิ์ Administrator
  3. รันคำสั่ง: diskpart
  4. ใน Diskpart แสดงดิสก์ทั้งหมด: list disk
    การบูต Windows 7 / 10 จากดิสก์ GPT บนระบบ BIOS (ไม่ใช่ UEFI)
    ในตัวอย่าง มีดิสก์ 40 GB Index 0 (Disk 0) ระบบมีเพียงดิสก์เดียว ดูได้ว่าดิสก์นี้มี MBR Partition Table ปกติ (คอลัมน์ GPT ว่าง)
  5. แปลง Partition Table ของ Disk 0 จาก MBR เป็น GPT ด้วยคำสั่ง gptgen.exe -w \\.\physicaldrive0 ขณะรันจะมีเตือนว่า Developer ไม่รับประกันว่าจะบูตจาก Partition นี้ได้หลังแปลงเป็น GPT

หมายเหตุ ตัวเลข 0 ท้าย physicaldrive หมายถึง Disk 0 ที่จะแปลง
gptgen.exe: Partition table converter v1.1
Boot: 1, Type: 0×7, Start: sector 2048, Length: 204860 sectors
Boot: 0, Type: 0×7, Start: sector 206858, Length: 83685636 sectors
WARNING: Boot partition(s) found. This tool cannot guarantee that
such partitions will remain bootable after conversion.
Do you want to continue? [Y/N] y
Writing primary GPT and protective MBR to LBA address 0…
Writing secondary GPT to LBA address 83786657…
Success!
การบูต Windows 7 / 10 จากดิสก์ GPT บนระบบ BIOS (ไม่ใช่ UEFI)
ดังนั้น การแปลง Partition Table เป็น GPT สำเร็จแล้ว!

การย้าย Windows Bootloader ไปยัง USB Flash Drive

รีสตาร์ทคอมพิวเตอร์ และตรวจสอบว่า BIOS ไม่สามารถบูตจากฮาร์ดดิสก์ที่มี GPT Table ได้ เยี่ยม! เสียบ USB Flash Drive หรือ SD Card ขนาดเล็ก บูตจาก Windows Installation Media (DVD/USB) ที่มี Windows 10 หรือ Windows 7 Installation Image ที่เหมาะสม กด Shift+F10 บนหน้าจอ Windows Setup เพื่อเปิด Command Prompt:

  • รันคำสั่ง: diskpart
  • แสดงรายการดิสก์ในระบบ: list disk ตอนนี้มี 2 ดิสก์: Disk 0 คือฮาร์ดดิสก์ 40 GB ที่มี OS ติดตั้ง (* ในคอลัมน์ Gpt แสดงว่าดิสก์นี้มี GPT Partition Table) และ Disk 1 คือ USB Flash Drive 1 GB
    การบูต Windows 7 / 10 จากดิสก์ GPT บนระบบ BIOS (ไม่ใช่ UEFI)
  • จัดการกับดิสก์และ Drive Letter: เลือก HDD: select disk 0 แสดง Volume บนมัน: list volume
    การบูต Windows 7 / 10 จากดิสก์ GPT บนระบบ BIOS (ไม่ใช่ UEFI)
    จากขนาด Volume 可知ว่า OS ติดตั้งอยู่ที่ Volume 2 ซึ่งมี Drive Letter D: (อาจต่างจาก System Drive Letter ที่ Windows แสดง)
  • สร้าง Partition บน USB Flash Drive:
    select disk 1
    clean
    create partition primary size=1000
    format fs=fat32
    select partition 1
    active
    list volume
    select volume 3
    assign letter=G
    list volume
    exit
    การบูต Windows 7 / 10 จากดิสก์ GPT บนระบบ BIOS (ไม่ใช่ UEFI) การบูต Windows 7 / 10 จากดิสก์ GPT บนระบบ BIOS (ไม่ใช่ UEFI) (Format ด้วย FAT32 อย่าใช้ NTFS เพราะระบบจะบูตไม่ได้)
  • Copy ไฟล์ Windows Boot Environment จาก System Volume ไป USB Flash:
    bcdboot d:\Windows /l en-us /s g:
  • เขียน Boot Code ลง USB Flash Drive เพื่อให้ Bootmgr (Windows Boot Manager) เริ่มต้นทำงาน:
    bootsect /nt60 G: /mbr /force
  • รีสตาร์ท

เข้า BIOS เปลี่ยน Boot Order ให้ USB Flash Drive หรือ SD Card เป็นอันดับแรก Save การเปลี่ยนแปลง หากทำถูกต้อง ระบบควรบูตได้ปกติ สามารถตรวจสอบได้ว่า Windows อยู่บน GPT Drive เปิด Disk Manager (diskmgmt.msc) เลือก Properties ของ System Disk ที่แท็บ Volumes จะเห็น Partition Style เป็น GUID Partition Table

การบูต Windows 7 / 10 จากดิสก์ GPT บนระบบ BIOS (ไม่ใช่ UEFI)

วิธีการย้าย Windows Boot Manager ไป USB Flash Drive แยกต่างหากนี้ ช่วยให้ใช้ข้อดีของ GPT ทั้งหมด และใช้ขนาดฮาร์ดดิสก์เต็มที่ (เกิน 2.2 TB) บนระบบ BIOS-based (ไม่มี UEFI) ทริกนี้ใช้ได้กับ Windows รุ่นต่อไปนี้ (รวม x86):

  • Windows 10 / Windows Server 2016
  • Windows 8, 8.1, Windows Server 2012 / 2012 R2
  • Windows 7, Vista, Windows Server 2008 / 2008 R2
  • Windows Server 2003 SP1 / 2003 (x64)
  • Windows XP x64

ต้องเข้าใจว่า ทุกครั้งที่เปิด/รีบูทอุปกรณ์ USB Flash Drive ที่มี MBR Table และ Bootloader ต้องเสียบอยู่ในคอมพิวเตอร์ มิฉะนั้น Windows จะบูตไม่ขึ้น

จากข้อมูลที่มี บางรุ่นคอมพิวเตอร์เก่าที่มี BIOS ไม่สามารถทำงานกับ GPT Drive ได้เลย ดิสก์เหล่านั้นจะไม่ถูกจดจำระหว่าง CMOS