เมนู rEFInd ไม่แสดงบนเครื่อง Mac / Ubuntu คู่


10

ฉันมีปัญหาเล็กน้อยกับ rEFInd และไม่พบสิ่งที่เฉพาะเจาะจงเกี่ยวกับเรื่องนี้

ฉันติดตั้ง Ubuntu 14.04 สำเร็จสำหรับการบู๊ตคู่กับ OS X Yosemite บน MacBook Pro 3.1 ของฉันโดยใช้ rEFInd แต่ตอนนี้หลังจากบูตเข้าสู่ Ubuntu เมนู rEFInd จะไม่แสดงหลังจากรีบูต มันเข้าสู่ด้วงโดยตรง หลังจากบูทเข้าสู่ OS X อีกครั้ง (โดยใช้ปุ่มตัวเลือกเมื่อเริ่มต้น) บางครั้ง rEFInd ก็เกิดขึ้นบางครั้งก็ไม่สามารถหาวิธีที่มันถูกทริกเกอร์ได้

มีวิธีการเพื่อให้แน่ใจว่า rEFInd กำลังจะมาถึงก่อนไม่ว่าระบบปฏิบัติการใดที่ฉันเปิดใช้ก่อนหน้านี้


แก้ไข

ใช้efibootmgr -vให้ฉัน:

BootCurrent: 0001
Timeout: 5 seconds
BootOrder: 0001,0080,0000
Boot0000* opensuse-secureboot   HD(4,1962b000,4e800,11f33185-0ff8-493d-86bd-b9fee568adb8)File(\EFI\opensuse\shim.efi)
Boot0001* ubuntu    HD(1,28,64000,7e798e0a-82c3-4719-95ed-d79675efd190)File(\EFI\ubuntu\shimx64.efi)
Boot0080* Mac OS X  HD(1,28,64000,7e798e0a-82c3-4719-95ed-d79675efd190)File(\EFI\refind\refind_x64.efi)
Boot0081* Mac OS X ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000HD(2,64028,1d02ba00,0b1ce04a-50b7-40b5-94f0-1a255d748d15)
Boot0082* ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000HD(2,64028,19490d60,20cc89c9-1320-4d70-b8bb-fffdf9900374)
BootFFFF* ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000HD(2,64028,19490d60,20cc89c9-1320-4d70-b8bb-fffdf9900374)File(\System\Library\CoreServices\boot.efi)

หากฉันตั้งค่า NextBoot ด้วย -option เป็น-n0080 หลังจากรีบูต rEFInd จะปรากฏขึ้น FFFF นำฉันเข้าสู่ OSX โดยตรง 0081 ดูเหมือนจะล้มเหลว

ขอบคุณสำหรับความช่วยเหลือ!


ที่นี่น่าจะเป็นบทความอย่างเป็นทางการของ rEFind: "การกู้คืนจากรัฐประหารโดยใช้ Linux" หรือ "การใช้ efibootmgr เพื่อปรับลำดับความสำคัญในการบูตของคุณ" จะช่วย: rodsbooks.com/refind/bootcoup.html
kenju

คำตอบ:


11

บางครั้งระบบปฏิบัติการรีเซ็ตโปรแกรมบูตเริ่มต้นโดยเฉพาะอย่างยิ่งหากพวกเขาอัปเกรดบูตโหลดเดอร์มาตรฐาน ไม่มีวิธีใดที่จะป้องกันไม่ให้เกิดเหตุการณ์เช่นนี้ดังนั้นคุณต้องรู้วิธีแก้ไขปัญหาเมื่อเกิดขึ้น ใน Linux สิ่งนี้ทำได้โดยใช้efibootmgrโปรแกรม ใน OS X blessก็ทำได้ผ่านทาง ดูที่นี่efibootmgrสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ

หากการเล่นปาหี่นี้เกิดขึ้นทุกครั้งที่คุณรีบูตแสดงว่ามีบางอย่างผิดปกติ หาก Ubuntu ตั้งค่า GRUB เป็นค่าเริ่มต้นในทุก ๆ การรีบูตโดยส่วนตัวแล้วฉันจะลบมันออก - แต่ฉันไม่ใช่แฟนของ GRUB (เพียงพอที่ฉันจะแยก rEFIt เพื่อสร้าง rEFInd แทนที่จะจัดการกับ GRUB) ฉันคิดว่าคุณสามารถโทรเข้ามาefibootmgrในสคริปต์ปิดเครื่องแต่นั่นก็เสี่ยงที่จะถูกตัดการเชื่อมต่อจากความเป็นจริงและทำให้เกิดปัญหาดังนั้นฉันจึงลังเลที่จะทำเช่นนั้น


แก้ไข:

ใช่การเปลี่ยนBootOrderตัวแปร (ผ่าน-oตัวเลือกเป็นefibootmgr) ตามที่คุณแนะนำเหมาะสม คุณสามารถลบรายการ OpenSUSE ด้วย:

sudo efibootmgr -b 0 -B

อาจมีไฟล์ OpenSUSE ติดตั้งซึ่งคุณสามารถลบโดยใช้rm- อาจsudo rm -r /boot/efi/EFI/opensuseมาจาก Ubuntu (ไฟล์เหล่านี้ไม่ควรทำอันตรายใด ๆ ต่อไฟล์ แต่อาจทำให้สับสนหรือถูกเปิดใช้งานอีกครั้งโดยไม่ตั้งใจในอนาคต) คุณสามารถลบ Ubuntu GRUB ในลักษณะที่คล้ายกันแม้ว่ามันอาจจะถูกติดตั้งใหม่หาก / เมื่อ Ubuntu อัปเดตในอนาคต นอกจากนี้การทำให้เป็นรอบเป็นวิธีการสำรองข้อมูลการบูตอาจทำให้รู้สึก

หากคุณปล่อยให้ติดตั้ง GRUB ของ Ubuntu แต่ไม่ต้องการดูในเมนู rEFInd คุณสามารถใช้dont_scan_dirsหรือdont_scan_filesในrefind.conf(อาจ/boot/efi/EFI/refind/refind.confมาจาก Ubuntu) เพื่อซ่อนรายการ GRUB


โปรดดูการแก้ไขของฉันด้านบน ดังนั้นขั้นตอนต่อไปฉันจะสมมติว่าจะลบ opensuse-entry (ฉันลบ distro นี้เมื่อไม่นานมานี้) และตั้งค่า BootOrder เป็น "0080,0001, FFFF" ถูกต้องหรือไม่ นอกจากนี้ฉันจะไม่สนใจที่จะลบ GRUB2 ทั้งหมด แต่ฉันจะทำเช่นนี้และรับ rEFInd เพื่อบูตเข้าสู่ Ubuntu ได้โดยตรงหรือไม่ ฉันจะต้องติดตั้ง EFI Stub Loader ตามที่ระบุไว้บนเว็บไซต์ของคุณหรือไม่? ขอบคุณอีกครั้ง!
paulkernstock

โปรดดูการแก้ไขของฉันด้านบน
Rod Smith เมื่อ

ตอนนี้คำถามของฉันแก้ไขได้อย่างแน่นอน แต่ก่อนที่ฉันจะลบ GRUB2 ฉันต้องการให้ rEFInd เข้าสู่ Ubuntu แต่ก็ไม่ได้ ในเมนู rEFInd ฉันเห็นรายการ Ubuntu สองรายการรายการหนึ่งที่ระบุว่า "grub_x64" และรายการที่พยายามบูตโดยตรงไปยัง Ubuntu โดยใช้เคอร์เนล vmlinuz-3.13.0-67-generic ซึ่งเมื่อเลือกจะหยุดใน rEFInd-booting-prompt . การกดปุ่ม F2 ในเมนูจะให้ฉันเลือกเวอร์ชันจริงของฉัน (3.19.0-32-generic) แต่ด้วยผลลัพธ์เดียวกัน เมื่อกดปุ่ม F2 อีกครั้งตัวเลือกจะแสดงเป็น /boot/refind_linux.conf ro quiet splash nomodeset vt.handoff=7ซึ่งเหมือนกับใน GRUB
paulkernstock

มีสroot={something}เปคrefind_linux.confหรือไม่? หากไม่จำเป็นต้องเพิ่ม คุณควรจะสามารถทำงานนี้ได้โดยการเรียกใช้mkrlconfสคริปต์ที่มาพร้อมกับ rEFInd แต่คุณอาจต้องเพิ่ม--forceตัวเลือกดังเช่นในsudo mkrlconf --force(แต่อาจใช้เส้นทางที่สมบูรณ์mkrlconf) หากที่ยังคงละเว้นตัวเลือกกรุณาแสดงให้ฉันดูสิ่งที่เกิดขึ้นเมื่อคุณพิมพ์root= cat /proc/cmdline
Rod Smith เมื่อ

สิ่งrefind-linux.confที่ฉันทำโดยใช้mkrlconf-script ของคุณมีสามรายการที่มีroot=-specification (ดูที่นี่ ) ใน GRUB2 ฉันต้องเพิ่มตัวเลือกnomodesetเพื่อให้ nVidia-GPU ของฉันทำงาน cat /proc/comdlineให้ฉัน: BOOT_IMAGE=/boot/vmlinuz-3.19.0-32-generic root=UUID=1b9ece72-754f-4f4b-85c0-5b5ed6fc89e1 ro quiet splash nomodeset vt.handoff=7. แม้ว่ากระบวนการบูตจะค้างอยู่ในหน้าจอ rEFInd- การบูทระบบก็ดูเหมือนว่าจะเริ่มต้นตัวอย่างเช่น fan-control-daemon ของฉันกำลังเริ่มทำงานและแฟน ๆ ก็ทำงานช้า
paulkernstock

8

สิ่งนี้เกิดขึ้นกับฉันและฉันแก้ไขด้วยสิ่งต่อไปนี้ใน Ubuntu (นี่เป็นกรณีเฉพาะของคุณเนื่องจากการบูต Ubuntu ของคุณBoot0001*):

sudo efibootmgr -o 80,1

ถ้าคุณพิมพ์อีกครั้งsudo efibootmgr, BootOrder: 0080,0001ลำดับการบูตของคุณควรจะตอนนี้ สิ่งนี้รับประกันได้ว่า Mac จะถูกบูทก่อนและเนื่องจากมีการติดตั้ง rEFInd ใน Mac จึงควรเริ่มต้นขึ้นก่อน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.