ฉันจะติดตั้ง bootloader grub-efi ใหม่บน Fedora Linux ได้อย่างไร


12

ฉันเพิ่งติดตั้ง Fedora 18 โดยใช้การบูต EFI เช่นเดียวกับดิสทริบิวชันอื่น ๆ ของลินุกซ์มันตั้งค่า GRUB2 ให้ฉัน

ฉันมีประสบการณ์กับการติดตั้งGRUB รุ่นBIOSใหม่เมื่อสิ่งผิดปกติ ฉันรู้เช่นวิธีการบูตดิสก์กู้ภัย chroot เข้าไปในการติดตั้งระบบการทำงานgrub-installและอาจจะupdate-grub/ /grubbygrub-mkconfig

ฉันจะติดตั้งGRUB เวอร์ชันEFIใหม่เมื่อสิ่งผิดปกติได้อย่างไร (ฉันรู้ว่าสิ่งต่าง ๆ จะผิดพลาด: ฉันทำลายพวกเขา)


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

@RodSmith ขอบคุณสำหรับการตอบกลับอีเมลของฉันเกี่ยวกับ EFI ก่อนหน้านี้ :) และสำหรับการเพิ่มความคิดเห็นของคุณไปยัง downvotes คำถามที่ฉันเริ่มด้วยคือสิ่งนี้อย่างแท้จริง ฉันมีประสบการณ์กับการติดตั้งด้วงพีซีใหม่ ฉันต้องการมีความมั่นใจในระดับเดียวกันกับที่ฉันรู้วิธีการกู้คืนระบบ EFI ฉันแก้ไขคำถามหนึ่งครั้งเพื่อเน้นว่ามันเป็นเรื่องเกี่ยวกับการติดตั้งด้วง ... ฉันเดาว่าฉันควรลองอีกครั้งและชัดเจนกว่าเกี่ยวกับแรงจูงใจของฉัน
sourcejedi

ทำไมคุณใช้ด้วงถ้าคุณมี UEFI ข้อได้เปรียบอะไรบ้างที่ผูกมัดการบูตสองโหลดให้?
มาร์โก

@Marco UEFI ไม่ใช่บูตโหลดเดอร์ที่รองรับโดยการแจกจ่าย linux ใด ๆ ที่ฉันรู้! Fedora อัปเดต GRUB โดยอัตโนมัติเมื่อติดตั้งเคอร์เนลใหม่และติดตั้งตัวเลือกการบูตที่จำเป็นเช่น root = มันไม่ได้ทำเพื่อ EFI ฉันสามารถละทิ้งการสนับสนุนการกระจายและใช้ตัวเลือกการสแกนอัตโนมัติของ w / เคอร์เนลตัวเลือกใน refind.confแต่นั่นจะยังคงผูกมัดบูตโหลดเดอร์ / ผู้จัดการ! และไมโครซอฟท์ไม่ได้ลงไดรเวอร์ GPL, Secure Boot เพื่อให้มีที่จะไป SHIM-> บูต loader-> ลินุกซ์อยู่แล้วและคุณต้องการเมนูการบูตหลังจาก UEFI-> Shim ส่วนหนึ่งจริงๆ
sourcejedi

หลังจากติดตั้งเคอร์เนลใหม่การเรียกครั้งเดียวefibootmgrก็เพียงพอที่จะอัพเดตรายการในเมนู UEFI ฉันไม่รู้เกี่ยวกับ rEFInd หรือ SHIM โดยส่วนตัวแล้วฉันจะไม่ต่อพ่วงบูตหลายอัน ระบบปฏิบัติการทั้งหมดถูกเพิ่มเข้าไปในเมนูการบู๊ต UEFI และมันทำงานได้อย่างสมบูรณ์แบบ
มาร์โก

คำตอบ:


9

ประการแรกคุณจะต้องใช้ระบบลินุกซ์ที่บูตด้วย EFI หากคุณยังคงมีสื่อการติดตั้งดั้งเดิม (ซีดี / ดีวีดี / USB ติด) ของคุณซึ่งโดยปกติจะมีระบบช่วยเหลือที่เพียงพอ มันอาจมีตัวเลือกซ่อมเพียงคลิกเดียว :)

อีกทางหนึ่งชุมชน Ubuntu ให้ภาพซ่อมแซมการบู๊ตอัตโนมัติ มันอ้างว่าให้การสนับสนุน Fedora หากคุณต้องการทราบว่ามันทำอะไรได้จริงฉันขอแนะนำให้คุณอ่านคำอธิบายของบุคคลที่สามล่วงหน้า

อย่างไรก็ตามฉันใช้ระบบช่วยเหลืออเนกประสงค์ด้วยเครื่องมือคอนโซล เช่นเดียวกับการสนับสนุนการบูต EFI ผมทำให้แน่ใจว่าอยู่ในรายการของแพคเกจefibootmgr มันถูกเรียกว่าGRMLและขึ้นอยู่กับ Debian นี่คือข้อมูลเกี่ยวกับเครื่องมือคอนโซลและ grub-efi ที่ฉันค้นพบในขณะที่ช่วยระบบ Fedora ของฉัน:

  1. เมื่อใช้ระบบ Fedora 18 booted โดย EFI, ไม่ได้ทำงาน grub2-installมันจะเรียกร้องความสำเร็จ แต่มันจะทำให้ระบบการบูตของ Fedora grub-efi หยุดชะงัก

    • ไฟล์/boot/EFI/fedora/grub.efiถูกติดตั้งโดยแพ็คเกจ grub-efi หากคุณไม่yum reinstall grub-efiต้องการที่จะติดตั้งใช้งาน (การทำเช่นนี้จากระบบกู้ภัยทั่วไปคุณสามารถทำเช่นนี้หลังจากที่mountไอเอ็นจีและchrootไอเอ็นจีเข้าสู่ระบบ Fedora ของคุณติดตั้ง) Fedora grub-efi ใช้ไฟล์ปรับแต่ง/boot/EFI/fedora/grub.cfg(อาจสร้างโดยสกปรก) Fedora บน EFI /boot/grub2/grub.cfgจะไม่สร้างไฟล์ที่ การรันgrub2-installจะแทนที่ grub.efi ด้วยรูปภาพที่พยายามอ่าน/boot/grub2/grub.cfgและจะล้มเหลว

    • grub2-installติดตั้งรายการบูต EFI grub.efiสำหรับ อย่างไรก็ตามหากคุณไม่ได้ปิดใช้งาน Secure Boot ในเฟิร์มแวร์ที่ได้รับการรับรองโดย Windows 8 รายการนี้จะไม่สามารถบู๊ตได้ คุณต้องบูตshim.efiแทน (ไม่ต้องสนใจshim-fedora.efiฉันไม่แน่ใจว่ามันคืออะไร) ดูด้านล่าง

  2. คุณสามารถสูญเสียรายการบูต EFI สำหรับ Fedora หากการตั้งค่าเฟิร์มแวร์ของคุณถูกรีเซ็ต (ด้วยตนเองหรือโดยการอัพเกรดเฟิร์มแวร์หรือเพราะเฟิร์มแวร์เป็นรถบั๊ก - หลังได้รับการรายงานในรุ่นเสริม) ต่อไปนี้เป็นวิธีสร้างรายการบูต EFI สำหรับ Fedora ด้วยการบู๊ตด้วยตนเอง:

    $ sudo efibootmgr -c -L Fedora -d /dev/sda -p 100 -l \\EFI\\fedora\\shim.efi
    

    ตัวอย่างนี้ใช้หมายเลขพาร์ติชัน 100 บนดิสก์มาตรฐานตัวแรกที่ Linux รู้จัก คุณควรจะปรับตัวเลือก-d /dev/sdaและ-p 100การระบุระบบแฟ้มที่เมาท์ Fedora /boot/efiที่ นี่คือพาร์ติชันระบบ EFI โปรแกรมติดตั้ง Fedora จะสร้างESP เฉพาะสำหรับการติดตั้ง Fedora ของคุณเพื่อใช้แยกจาก ESPs ที่ใช้โดยระบบปฏิบัติการอื่น ๆ ( สิ่งนี้แตกต่างจาก Ubuntu และ OpenSUSE )

    หมายเหตุefibootmgrคำสั่งต้องการให้คุณเรียกใช้จากระบบที่บูตด้วย EFI


"สังเกตคำสั่ง efibootmgr ต้องการให้คุณเรียกใช้จากระบบที่บูตด้วย EFI" - ในกรณีนี้คุณจะ "bootstrap" เป็นระบบที่บูตด้วย EFI ได้อย่างไร (USB ปัจจุบันของฉันจะไม่บูตเมื่อเลือกตัวเลือก UEFI)
jozxyqk

1
สื่อการติดตั้งเป็นวิธีที่ได้รับการสนับสนุนในการบูตระบบของคุณ ฉันคิดว่าคุณควรจะสามารถบูตระบบ EFI ได้โดยไม่ต้องติดตั้งตัวแปรเฟิร์มแวร์ของ EFI ซึ่งเกี่ยวข้องกับการสร้าง/EFI/boot/bootx64.efi(สมมติว่า UEFI 64 บิต) นี่เป็นวิธีที่สื่อการติดตั้ง USB ใช้งานได้ (อย่างอื่นนอกเหนือจากซีดี / ดีวีดี) มันอาจจะเพียงพอที่จะคัดลอก shim.efi ที่นั่น แต่ฉันไม่แน่ใจว่ามันถูกตั้งค่าให้ทำงานหรือไม่
sourcejedi

5

หากคุณใช้ระบบบูทคู่กับ UEFI Windows ก็มีความเป็นไปได้อีกอย่าง ซึ่งไม่ต้องการดิสก์กู้คืน

คุณสามารถบูตเข้าสู่ Windows เปิดบรรทัดคำสั่งด้วยสิทธิ์ผู้ดูแลระบบและเรียกใช้คำสั่งต่อไปนี้:

bcdedit /set {bootmgr} path \EFI\fedora\shim.efi

สิ่งนี้จะแทนที่รายการบูตของ Windows ใน UEFI ด้วยรายการที่บู๊ตเป็น GRUB สมมติว่าเมนู GRUB ของคุณมีรายการทำงานสำหรับ Windows ตอนนี้คุณมี dual-boot :-) หวังว่าทั้งหมดนี้จะทำงานได้โดยไม่ต้องปิดใช้งาน Secure Boot

ฉันต้องทำด้วยตัวเองหลังจากอัปเดต Windows และดูเหมือนว่าจะได้ทำเคล็ดลับ

แหล่งที่มาและข้อมูลเพิ่มเติม: http://nwrickert2.wordpress.com/2013/05/13/notes-on-uefi-windows-and-linux/


หรือดูวิธีแก้ปัญหาสองวิธีที่อธิบายไว้ที่askubuntu.com/a/799734/462004 (ใช้ EasyUEFI หรือวิธีเปลี่ยนลำดับการบูตโดยใช้bcdedit.exeแทนรายการ Windows เช่นเดียวกับคำสั่งของคุณ)
phk

1

https://fedoraproject.org/wiki/GRUB_2?rd=Grub2#Updating_GRUB_2_configuration_on_UEFI_systems :

dnf reinstall grub2-efi grub2-efi-modules shim

(สมมติว่าคุณมีแพ็คเกจเหล่านั้นติดตั้งแล้วและมีการกำหนดค่าก่อนหน้านี้อยู่)


ขอบคุณ! "สร้างรายการเมนูบูต: TL; DR: สิ่งนี้จะเกิดขึ้นโดยอัตโนมัติ" - ใช่
sourcejedi

ใช่แล้วมันทำ: grub2-mkconfig -o /boot/grub2/grub.cfg(หรือในระบบ (U) EFI มันจะเป็นอะไรบางอย่างgrub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfgไม่ทำงาน

ขออภัยฉันหมายถึง wiki หมายถึงว่าการติดตั้งแพ็กเกจ grub ใหม่จะสร้างตัวแปร EFI ซึ่งจำเป็นในการบูต GRUB อีกครั้ง (ซึ่งอาจจำเป็นต้องสร้างขึ้นใหม่เช่นหากคุณรีเซ็ตการตั้งค่า "BIOS" ด้วยเหตุผลบางอย่าง) ฉันไม่คิดว่าฉันจะลองทำdnf reinstallและถ้าจริงมันฟังดูดีมาก
sourcejedi

0

เพื่อให้ง่ายนี่คือทั้งหมดที่คุณทำ:

yum reinstall grub2-efi

อย่ารันการติดตั้ง grub2 เพราะจะทำให้ระบบของคุณพังโดยแสดงเมนูการบู๊ตด้วงเปล่า (เพราะการติดตั้ง grub2 จะทำให้คุณมีไฟล์. efi / generic ที่ไม่ดี / ทั่วไปที่พยายามโหลด grub.cfg จากตำแหน่งที่ไม่ถูกต้อง

นอกจากนี้คุณอาจต้องการอัปเดต grub-config ของคุณหากคุณย้ายไปยังดิสก์ใหม่หรือพาร์ติชัน / โครงร่างของคุณเปลี่ยนแปลงด้วย:

grub2-mkconfig -o /boot/EFI/fedora/grub.cfg

ดีใจที่ได้อ่านคำยืนยัน :) ฉันเสนอการแก้ไขซึ่งแสดงว่าต้องใช้ grub2-mkconfig -oอย่างไร ฉันไม่แน่ใจว่าคำตอบง่าย ๆ มีประโยชน์อย่างไร - ไม่ใช่ว่าของฉันจะมีประโยชน์มากกว่านี้อย่างแน่นอน แต่สิ่งนี้ถือว่าคุณยังสามารถบูตระบบ Fedora ได้หรือคุณสังเกตว่าคุณทำผิดพลาดก่อนที่จะปิดตัวลง (คำตอบของฉันส่งผ่านเกี่ยวกับดิสก์การช่วยเหลือทั่วไป แต่ AFAIK คุณต้อง chroot ในการติดตั้งทำให้แน่ใจว่าติดตั้งระบบไฟล์ใด ๆ ก็ตามที่จำเป็น ... นั่นเป็นสิ่งที่ดีเกี่ยวกับระบบช่วยเหลือพิเศษเช่นตัวติดตั้ง Debian มันจะ mount + chroot สำหรับคุณ).
sourcejedi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.