UEFI กับ Windows 8

เมื่อวานนี้เห็นมี Windows 8 Pro x64 RTM หลุดมาแล้วเลยจัดแจงลองซะหน่อย แล้วก็ลองลงแบบ EFI Mode เลย ปรากฏว่า ดีกว่าลงใน Legacy BIOS เพราะว่า บูตได้เร็วกว่า (ราว 5-10 วินาที)

ติดตั้งเสร็จครั้งแรกใช้เวลาบูตแค่ 8 วินาที เข้าสู่หน้า Welcome Screen ตั้งแต่กดปุ่ม Power บน Thinkpad E220s (เครื่องผมมี Intel SSD อยู่ เลยไวมั้ง)

ในที่ที่จะพูดถึงจะเพราะ Non-Mac ที่เป็น x86-64 EFI เพราะว่าปัจจุบันไม่มี PC เครื่องไหนมากับ x32 EFI แน่ ๆ

ปัจจุบัน Mainboard และ Notebook ทั้งหลายเริ่มมากับ UEFI BIOS บ้างแล้ว ซึ่งส่วนใหญ่จะเป็น EFI 2.0  และ รุ่นที่มี EFI มารุ่นแรก ๆ หลายตัวมี bug เพราะว่ายัด UEFI Driver/TABLE ใน ACPI ผิด แล้ว Memory Corrupt ดังนั้น ต่อให้มี มี UEFI BIOS ไม่ได้หมายความว่าจะใช้ได้เสมอไป

UEFI BIOS ส่วนใหญ่สามารถ Boot Legacy BIOS แบบเดิม ๆ (x86 PC BIOS) ได้ด้วย

กระบวนการ Boot ของ UEFI นี่จะต่างจาก PC BIOS ปกติตรงที่ UEFI จริง ๆ มี Boot configuration เก็บใน NVRAM (CMOS) เลย (ใน ระบบ UEFI เรียกว่า EFI Variables) ซึ่งจะระบุว่ามี Boot Loader อยู่ที่ไหนบ้าง ซึ่งไม่จำกัดเฉพาะว่า อยู่บน Disk ลูกไหน … มันอ้างไปถึงไฟล์ที่ใช้บูตได้เลย

แต่ปกติ Boot Configuration ใน BIOS จะแก้ไม่ได้ ทำได้แค่เลือกบูตตัวไหนได้ (UEFI BIOS บางตัวก็แก้ได้) หรือจะเลือกบูต Default EFI Boot Application ใน Disk นั้น ๆ (คล้ายระบบบูตของ PC BIOS ดั้งเดิม ซึ่งเลือกได้แค่ว่าจะบูต Disk อันไหน)

ถ้ามีการติดตั้ง OS ที่ใช้ระบบบูตแบบ UEFI แล้วปกติมันจะไปใส่ค่าไว้ใน BIOS  เลย เช่น Windows 8 มันจะใส่ว่า Windows Boot Loader ไปเรียก  EFI Application \efi\microsoft\boot\bootmgfw.efi ใน Partition GUID บลา บลา บลา … อะไรแบบนั้น ซึ่งเราสามารถเลือกบูตจาก BIOS ได้เลย แทนที่จะเลือกไปว่า บูต Disk ตัวไหน ดังนั้นถ้าเราบันทึกไว้ว่าบูตตัวนี้ก่อน เราย้าย Disk ไปอยู่ Harddisk ลูกที่ 0 , 1 , 2 , 3 มันก้จะบูตตัวเดิมเสมอ เพราะมันอ่านจาก GUID ของ  Parition

แต่ถ้าไม่ได้บูตโดยใช้ Config ที่ตั้งไว้ ก็จะมีอีกทางเลือก คือ Default UEFI Boot Application ใน Disk นั้น ๆ โดยตรง ซึ่งปกติคือ \efi\boot\bootx64.efi ใน FAT(16/32) partiton แรก ของ Disk นั้น (BIOS บางตัวไล่ทุก partition)

BIOS บางตัวสามารถบูต UEFI Shell ได้ด้วย หรือ บางทีมี UEFI Shell ใน Firmware เลย ซึ่งมันจะเรียกตรงไหนก็แล้วแต่ยี่ห้อแต่รุ่น เอาไว้พูดถึงทีหลัง

และสุดท้ายคือ UEFI BIOS ใหม่ ๆ ส่วนใหญ่สามารถบูตแบบ PC BIOS ปกติได้ด้วย คือ บูตจาก MBR ใน Disk ลูกนั้น ๆ นั้นแหละ

UEFI จริง ๆ มีอะไรคล้าย ๆ DOS ครับ คือมีสิ่งที่เรียกว่า Driver และ Application ซึ่งตัว BIOS สามารถ Load Driver และ Application พวกนี้เข้าไปทำงานได้ ซึ่งถ้าคุณมี EFI Shell ติดตั้งไว้จะรู้สึกเหมือนใช้ DOS อย่างไรอย่างนั้น ซึ่ง BIOS SETUP ก็เป็น EFI Application ตัวนึง BOOT Loader ก็เป็น Application ตัวนึง หรือบางที แม้แต่ OS ก็เป็น

จะลง Windows 8 ด้วย UEFI ทำไง

ต้องใช้ Windows x64 แล้ว ไปตั้งใน BIOS ไห้บูตแบบ UEFI Only หรือ UEFI First จบครับ 555

เท่าที่ลองคือ ไม่ว่าจะเป็น USB หรือ CDROM มันก็จะบูตได้หมด

และมันก็ทำอย่างข้างบนจริง ๆ คือไปหา \efi\boot\bootx64.efi มาทำงาน

ถ้าอยากเล่นอะไรหน่อย หลังจากติดตั้ง Windows 8 เสร็จแล้ว ให้ไปหา EFI Shell มาครับ ใส่ใน Flash Drive ไวที่ \efi\boot\bootx64.efi แล้วลองบูตจาก Flash Drive แบบ EFI ดู

https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/EdkShellBinPkg/FullShell/X64/Shell_Full.efi

แล้วหาทาง Boot Windows 8 จาก EFI Shell ให้ได้

ใน EFI Shell กด Shift+PgUp ได้นะถ้าดูอะไรไม่ทัน

มี hint ให้สองสามคำสั่ง

map

fs1:

fs2:

cd efi\microsoft\boot

คราวหน้าถ้ามีอารมณ์จะมาพูดถึง EFI Shell และ GRUB EFI สำหรับใช้กับ Linux

….

ส่วนหา Windows 8 จากไหน Key อะไร … ผมว่าคุณก็รู้ว่าเอาจากไหน และผมก็ยังไม่ได้ Activate รอมันขายจริงนู่นแหละ


4 Comments

  • ekbal_khan@yahoo.com

    17 ธันวาคม 2012

    อยากให้อธิบายคำสั่งการใช้ UEFI BIOS ครับผม

  • eetsurt

    19 พฤศจิกายน 2013

    ขอบคุณสำหรับความรู้ดีดีๆ ที่เอามาแชร์จ้าา

  • Assassin

    9 กรกฎาคม 2014

    ขอบคุณความรู้ดีดีครับ

  • fai

    17 กรกฎาคม 2016

    พี่ครับของผม biosไม่มีให้เลือกแบบ UEFi แต่ผมเปลี่ยน hdd จาก msr เป็นUEFi แล้ว ทำไงดีครับ

ใส่ความเห็น