Linux บน UEFI - จะรีบูตหน้าจอตั้งค่า UEFI เช่น Windows 8 ได้อย่างไร


33

makeuseof.com อธิบายว่าฮาร์ดแวร์ที่ผ่านการรับรอง Windows 8 มีวิธีใหม่ในการเข้าสู่หน้าจอการตั้งค่า UEFI (เทียบเท่ากับ BIOS) จากวิธีเข้าถึง BIOS บนคอมพิวเตอร์ที่ใช้ Windows 8 :

เราไม่กดปุ่มบางปุ่มในระหว่างกระบวนการบู๊ตเพื่อเปิด BIOS - ตัวเลือกในการเข้าถึง BIOS จะอยู่ในเมนูตัวเลือกการบูตของ Windows 8 ... หากคุณเพียงแค่เข้าถึง UEFI BIOS ของคอมพิวเตอร์ของคุณให้คลิก แก้ไขปัญหาไทล์

นักพัฒนาหลักของการบูตที่ปลอดภัยสำหรับลินุกซ์กล่าวว่าทางเลือกของระบบปฏิบัติการไม่สามารถสันนิษฐานได้ว่าวิธีการแบบเก่าจะยังคงทำงาน ดังนั้นลีนุกซ์จึงมีวิธีใหม่ในการเข้าสู่การตั้งค่า UEFI หรือไม่

ฉันมีเมนบอร์ด ASUS มันแสดงให้เห็นว่าเป็นรุ่นอัพเกรดของเฟิร์มมีตัวเลือกการบูตอย่างรวดเร็ว ด้านพลิกคือตัวเลือกที่อาจทำให้ยากยิ่งขึ้น "เปิดเผย BIOS" กว่าที่เป็นอยู่แล้ว

ฉันไม่สนใจการซ่อม เพียงแค่นี้เป็นที่ทราบกันดีแล้วฉันไม่ต้องการเสี่ยงต่อการอัพเกรดเฟิร์มแวร์โดยไม่ต้องทำอะไรเลย (และอาจจะต้องเปิดเคสออกใหม่รีเซ็ตการตั้งค่าและต้องตั้งค่าทั้งหมดอีกครั้ง)


หรือจะจัดการกับผู้ใช้ Windows 7 ได้อย่างไร? หากพวกเขาเลือกตัวเลือกการบูตอย่างรวดเร็วในแง่ดีพวกเขาจะเข้าถึงการตั้งค่า "BIOS" อีกครั้งได้อย่างไรเมื่อต้องการ


ประณามมัน ตอนนี้ฉันหวังว่าฉันจะไม่ได้เลือก Asus มากกว่า Gigabyte สำหรับการอัปเกรดใหม่ของฉัน
kluka

ใช้การตั้งค่าใดก็ได้ที่ใช้ได้กับ Windows 7 ซึ่งจะเป็นค่าเริ่มต้นและจะใช้ได้ :) ต้องมีวิธีมาตรฐานในการทำมันใน UEFI ฉันแค่ไม่พบมันถูกเรียกออกมาทุกที่ แม้แต่เฟิร์มแวร์ดั้งเดิมที่ไม่มีตัวเลือกการบูตอย่างรวดเร็วก็ค่อนข้างเร็วดังนั้นฉันจึงไม่เสียใจ เรากำลังดูคุณสมบัติเฉพาะของ UEFI ฉันยังไม่ต้องพึ่งพา Gigabyte เพื่อรับ EFI ในตอนนี้ ฉันกำลังแก้ไขปัญหาเกี่ยวกับ 1) พอร์ต USB3 และ 2) แป้นพิมพ์ USB ซึ่งประกอบกันเป็นหลักการที่น่าผิดหวังเล็กน้อย OTOH LED ทดสอบหน่วยความจำมีประโยชน์สำหรับฉันเมื่อ RAM ใหม่ของฉันล้มเหลวหลังจากหนึ่งสัปดาห์
sourcejedi

1
หนึ่งในปัญหาของ UEFI คือแม้จะมีเอกสารข้อกำหนด 2,000 หน้า แต่ก็ไม่มีปัญหามาตรฐานส่วนติดต่อผู้ใช้ นักพัฒนาเฟิร์มแวร์มีอิสระที่จะให้ผู้ใช้สามารถเข้าถึงยูทิลิตี้การตั้งค่าได้ทุกวิธีที่พวกเขาต้องการ
Rod Smith เมื่อ

บทความกล่าวว่า Windows 8 ในที่สุดให้ผู้ใช้สามารถเข้าถึงยูทิลิตี้การตั้งค่าปกติในลักษณะมาตรฐาน ดังนั้นการรับรอง windows ต้องระบุวิธีการเพื่อสนับสนุนนี้ หวังว่ามันจะเป็นส่วนหนึ่งของ UEFI ไม่ใช่ส่วนขยาย MS ที่ไม่มีเอกสาร โปรดทราบว่านี่ไม่ใช่คำถามเกี่ยวกับ "Secure Boot" คำถามถือว่าฉันได้ติดตั้งและบูต Linux แล้ว
sourcejedi

ฉันใช้ Windows 8 เป็นการส่วนตัวกับ ASRock Z77 Pro3 motherbord เพิ่งใช้ตัวเลือก "บูตเร็วเร็ว" นี้ในการตั้งค่า UEFI ฉันได้รับยูทิลิตี้โดย ASRock ซึ่งอยู่ในถาดของฉันซึ่งฉันสามารถกดเพื่อเข้าถึงการตั้งค่า UEFI CMOS clear จะรีเซ็ตตัวเลือกการบูตอย่างรวดเร็วดังนั้นคุณสามารถลองได้เสมอ vBIOS ของฉันไม่อนุญาตสำหรับการตั้งค่านี้เนื่องจากไม่มีการสนับสนุน GOP ดังนั้นฉันจึงไม่มีโอกาสลองใช้ ฉันไม่ได้จัดหาซอฟต์แวร์ที่คล้ายกันสำหรับ Linux เฉพาะ Windows 8
Steen Schütt

คำตอบ:


39

ในลีนุกซ์รุ่นใหม่ที่ใช้ systemd คุณสามารถไปที่เมนูการตั้งค่าเฟิร์มแวร์ได้โดยตรงโดยใช้:

systemctl reboot --firmware-setup

เอกสารประกอบ: https://www.freedesktop.org/software/systemd/man/systemctl.html#--firmware-setup


1
ฮะหมอนั่นมันสั้นไปหน่อย ดูดี - ไม่เฉพาะเจาะจงกับตัวจัดการการบูตที่กำหนด ความอัปยศไม่มีเครื่องมือแบบสแตนด์อโลน แต่ฉันไม่ได้ทำอะไรกับ systemd github.com/systemd/systemd/blob/…
sourcejedi

1
ดูUnix.SEคำตอบนี้ด้วย ใช้ความระมัดระวังอย่างยิ่งefivarฉันจัดการลบ8be4df61-93ca-11d2-aa0d-00e098032b8c-OsIndicationsตัวแปรอย่างใดอย่างหนึ่งโดยอาจส่งผ่านข้อมูลว่างเปล่าไปยังefivarโปรแกรม ตอนนี้ฉันต้องหาวิธีในการสร้างไฟล์นี้ใหม่โดยที่systemctl reboot --firmware-setupโปรแกรมไม่ทำงานอีกต่อไป
Lekensteyn

ขออภัยที่ได้ยินปัญหาของคุณ ฉันได้รับการตั้งค่าการแสดงผลที่ตัวแปรเป็น 0 จะไม่เป็นไร (จากความคิดเห็นนี้github.com/systemd/systemd/blob/ ...... ) ถึงแม้ว่ารหัสเดียวกันจะแนะนำว่า systemd จะไม่สนใจว่าตัวแปรนั้นถูกลบหรือไม่
sourcejedi

1
ดูเหมือนว่าจะสร้างตัวแปรขึ้นใหม่ แต่อย่างใดจะหายไปหลังจากรีบูต: printf '\7\0\0\0''\0\0\0\0\0\0\0\0' > /sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c(อิงจากfirmware.intel.com/blog/accessing-uefi-variables-linuxและเนื้อหาก่อนหน้าซึ่งฉันทิ้งไว้) โปรดทราบว่าความrm ...ต้องการchattr -i ...ก่อนที่คุณจะสามารถลบออกได้ (มาตรการความปลอดภัยเกี่ยวกับrm -rf /)
Lekensteyn

1
@sourcejedi Arch Linux มาพร้อมกับ systemd 230 ในที่สุดฉันก็จัดการเพื่อให้ได้ตัวแปรของฉันกลับมา ด้วยเหตุผลบางประการในการสร้างตัวแปรผ่าน efivars ส่งผลให้OsIndications-89efde67-ffcd-12de-ab01-01efff012389มี GUID ที่แตกต่างกัน เมื่อฉันบูทเข้าไปในUEFI Shellฉันเรียกใช้คำสั่งsetvar OsIndications -nv -bs -rt =0000000000000000เพื่อตั้งค่าตัวแปร OsIndications ในหน่วยเก็บข้อมูลแบบไม่ลบเลือนสำหรับบูทเซอร์วิสและการเข้าถึงรันไทม์ไปยังลำดับเลขฐานสิบหกที่เป็นตัวแทนหมายเลข 64 บิต (0)
Lekensteyn

4

ฉันไม่แน่ใจว่า Windows 8 ทำสิ่งนี้อย่างไร แต่ฉันสามารถเดาได้ว่าใช้ประโยชน์จากตัวแปร UEFI ที่ใช้สำหรับตัวเลือกการบูต

คุณสามารถใช้efibootmgrเพื่อกำหนดความหมายของตัวแปรการบูตต่างๆ ในระบบของฉัน Boot0000 คือการตั้งค่าดังนั้นการใช้efibootmgr -n 0ควรทำให้ระบบบูตเข้าสู่การตั้งค่าในการบูตครั้งถัดไป


ขอบคุณ ตอนนี้ฉันได้ลองบูท UEFI บน BIOS ปัจจุบันของฉันแล้ว Boot0000 ดูเหมือนว่าจะถูกครอบครองโดยหนึ่งในรายการบูตปกติ (ฉันก็รู้ว่าฉันอ่านบันทึกย่อผิดพลาดและไม่มีเหตุผลที่จะคาดหวังว่าเวอร์ชั่นใหม่จะเร็วขึ้นโอ้ว :) :)
sourcejedi

@sourcejedi เฟิร์มแวร์ตัวเลือกการบู๊ตเร็วอาจบู๊ตได้จริงเร็วกว่า 1 หรือ 2 วินาทีการบู๊ตเร็วพิเศษอีกครั้งอาจหาย
สำรองข้อมูล Pro

3

ฉันลองบูท EFI ด้วย Ubuntu 12.04 และพบคำตอบสำหรับคำถามของฉันเอง

(ฉันยังไม่ได้อัพเกรดเฟิร์มแวร์ของฉันฉันอ่านบันทึกย่อประจำรุ่นผิดไป แต่เดิมอาจจะไม่เร็วขึ้น)

เข้าสู่การตั้งค่าเฟิร์มแวร์จากเมนูการบูต grub-efi

efibootmgrดูเหมือนจะไม่รองรับการรีบู๊ตการตั้งค่าเฟิร์มแวร์สำหรับฉัน แต่grub-efiทำ มันสามารถสร้างรายการสำหรับการตั้งค่าเฟิร์มแวร์ในเมนูการบูต GRUB

คุณสามารถเข้าสู่เมนูการบูตของ GRUB โดยกดปุ่ม Shift ค้างไว้ "แต่เนิ่นๆในขั้นตอนการบู๊ต" ฉันกดลงทันทีหลังจากไฟ NumLock เปิดใช้งานบนแป้นพิมพ์และใช้งานได้สำหรับฉัน

หากคุณสงสัยฉันก็ดูคำสั่งด้วยเช่นกัน: มันคือ "fwsetup" คือคุณสามารถเข้าสู่เมนูด้วงทำตามคำแนะนำบนหน้าจอเพื่อสลับไปยังบรรทัดคำสั่งจากนั้นพิมพ์ "fwsetup" และกดส่งคืน

หากคุณติดตั้ง EFI ตั้งแต่เริ่มต้นฉันเชื่อว่ารายการเมนูจะถูกสร้างขึ้นโดยอัตโนมัติ ฉันไม่ได้ติดตั้งเป็น EFI ซึ่งหมายความว่าฉันต้องเตะมัน (ดูด้านล่างขั้นตอนที่ 4)

แปลงจากการบูต BIOS-GPT เป็นการบูต UEFI-GPT โดยไม่ต้องเผาแผ่นบูต EFI หรือไม่

แก้ไข: ส่วนนี้อาจทำงานในบางระบบ อย่างไรก็ตามตอนนี้ฉันเชื่อว่ามันขึ้นอยู่กับพฤติกรรมพิเศษที่ไม่ได้เป็นส่วนหนึ่งของมาตรฐาน UEFI บางวันฉันจะคิดออกว่าเกิดอะไรขึ้นที่นี่

ฉันกำลังแปลงการติดตั้งที่มีอยู่ไปเป็น EFI โดยไม่มีแผ่นบูตสำหรับเปิดใช้งาน EFI บางคนคิดว่ามันเป็นไปไม่ได้ ข้อความเตือนมีความสับสนเล็กน้อย ฉันได้ดูว่าเกิดอะไรขึ้น หากคุณสามารถเข้าสู่การตั้งค่าเฟิร์มแวร์ในปัจจุบันก็ไม่ได้แย่ขนาดนั้นทั้งหมด

ส่วนที่ยากคือคุณอาจยังคงใช้ตารางพาร์ติชัน MBR อยู่และคุณเกือบจะต้องแปลงเป็น GPT ฉันจะไม่ครอบคลุมการแปลงจาก MBR เป็น GPT การแบ่งพาร์ทิชันนั้นค่อนข้างอันตราย gdiskสามารถแปลง แต่มีบิตเที่ยวยุ่งยิ่งไม่กี่ ฉันไม่ได้ระบุไว้ทั้งหมดที่นี่ แต่อย่างหนึ่งคุณอาจจำเป็นต้องลดขนาดพาร์ติชันล่าสุดเพื่อให้มีที่ว่างสำหรับจุดสิ้นสุดของดิสก์ GPT คุณไม่สามารถทำเช่นนั้นได้หากมีการติดตั้งพาร์ติชันดังนั้นคุณจะต้องใช้ซีดีบูต (ฉันจัดฉากการแปลงด้วยทำให้แน่ใจว่าฉันสามารถบูตจาก BIOS-GPT ก่อนที่ฉันจะลอง UEFI-GPT ซึ่งเกี่ยวข้องกับการสร้างพาร์ติชันสำหรับบูตอีกประเภทหนึ่ง)

สมมติว่าคุณได้ตั้งค่า GPT:

  1. ติดตั้ง grub-efi สิ่งนี้ลบด้วงพีซีและหยุดทำงาน (grub-efi ยังคงใช้งานได้จริงหลังจากฉันลบมัน!) Fedora นั้นดูแตกต่างออกไปเล็กน้อย ฉันได้ลองทำสิ่งนี้บน Ubuntu เท่านั้น ระหว่างการติดตั้งคุณจะเห็นข้อผิดพลาดเกี่ยวกับการไม่สามารถเข้าถึงตัวแปร EFI ซึ่งเป็นเพราะคุณไม่ได้บูตด้วย EFI
  2. ปิดตัวลง.
  3. เปิดเครื่อง. ตรวจสอบให้แน่ใจว่าคุณบูตผ่าน EFI! นี่คือส่วนที่ขึ้นอยู่กับระบบและกังวล ระบบของฉันเริ่มต้นกับการบูต MBR เพื่อเริ่มต้นด้วยดังนั้นฉันเห็นข้อผิดพลาดที่น่ากลัวจากด้วง - แต่มันมาจากด้วงพีซีรุ่นเก่า ในระบบของฉันมันง่ายที่จะเข้าสู่หน้าจอการตั้งค่าเฟิร์มแวร์ ณ จุดนี้ (ดูด้านล่าง) และเปลี่ยนลำดับความสำคัญในการบูตเป็น "ubuntu" (ซึ่งเป็นรายการสำหรับการบูตระบบปฏิบัติการผ่าน EFI)
  4. ตอนนี้คุณสามารถทำซ้ำการติดตั้งด้วง ( grub-installหรือgrub2-installบน Fedora) และมันจะไม่แสดงข้อผิดพลาดใด ๆ และตอนนี้การรันupdate-grub(หรือgrub2-mkconfig -o /boot/grub/grub.cfgบน Fedora) จะสร้างรายการเมนูเพื่อเข้าสู่การตั้งค่าเฟิร์มแวร์

การเข้าสู่เมนูการตั้งค่า / การบูตเฟิร์มแวร์ในระบบ ASUS ของฉัน

หมายเหตุ: นี่ไม่ใช่เฟิร์มแวร์ / บอร์ดรุ่นล่าสุด ระบบ ASUS ของคุณอาจทำงานแตกต่างจากของฉัน

ASUS เฟิร์มแวร์ปัจจุบันของฉันแจ้งให้ทราบเมื่อ "การกำหนดค่าการบูต" เปลี่ยนแปลง - เช่นเมื่อฉันติดตั้ง grub-efi มีข้อความแจ้งว่ามีการเปลี่ยนแปลงหากคุณดูที่หน้าจอ "การตั้งค่า EZ" เริ่มต้น และเมื่อตรวจพบการเปลี่ยนแปลงดังกล่าวจะทำให้ง่ายต่อการเข้าสู่หน้าจอการตั้งค่า สิ่งที่มันทำคือแสดงหน้าจอเริ่มต้นด้วย "กด DEL เพื่อเข้าสู่การตั้งค่า" สักครู่ (หากคุณเปิดใช้งานตัวเลือก "บูตเร็ว" โดยปกติจะข้ามหน้าจอเริ่มต้น)

ฉันคิดว่ามันเป็นไปได้ที่จะเปิดหน้าจอสาดโดยที่คุณปิดระบบและถอดปลั๊กออกเป็นเวลาหนึ่งนาทีก่อนจะรีบูตเครื่อง

ในเฟิร์มแวร์ปัจจุบันของฉันฉันสามารถเข้าสู่การตั้งค่าเฟิร์มแวร์ได้โดยการกดปุ่ม DEL ระหว่างการบู๊ตแม้ว่าจะไม่มีหน้าจอสแปลช อย่างไรก็ตามนี่เป็นเงื่อนไขในการเปิดใช้งานการสนับสนุนแป้นพิมพ์ในเฟิร์มแวร์

เป็นไปได้ที่จะเปลี่ยนเฟิร์มแวร์เพื่อไม่ตรวจสอบคีย์บอร์ดระหว่างการบู๊ตซึ่งควรจะเพิ่มความเร็วให้สูงขึ้น ฉันเดาว่านี่เป็นการทดลองครั้งต่อไปที่จะลองตอนนี้ฉันมั่นใจมากขึ้นเกี่ยวกับสิ่งที่ EFI นี้! (น่าจะเป็นไปได้ว่ามันสามารถฆ่าการรองรับคีย์บอร์ดในเมนูบูท GRUB ได้เช่นกัน แต่ฉันก็ควรจะใช้ grub-set-default เพื่อให้ GRUB บูทรายการ fwsetup และกู้คืนด้วยวิธีนั้น)


0

จากคำตอบของ @ Lekensteyn ฉันได้สร้างทางลัด UI (ในเมนูการดูแลระบบหากสภาพแวดล้อมของคุณยังคงมีอยู่) มีประโยชน์หากคีย์บอร์ดของคุณไม่ทำงานจนกว่าจะหลัง POST

/usr/share/applications/uefi-reboot.desktop

[Desktop Entry]
Name=UEFI Firmware Setup (Reboot)
Comment=Access the motherboard configuration utility
Exec=systemctl reboot --firmware-setup
Icon=system-restart
Terminal=false
Type=Application
Categories=System;Settings;
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.