Menu rEFInd không hiển thị trên máy Mac / Ubuntu kép


10

Tôi có một chút vấn đề với rEFInd và không thể tìm thấy điều gì cụ thể về nó.

Tôi đã cài đặt Ubuntu 14.04 để khởi động kép với OS X Yosemite trên MacBook Pro 3.1 của tôi bằng rEFInd nhưng bây giờ sau khi khởi động vào Ubuntu, menu rEFInd không hiển thị sau khi khởi động lại. Nó chỉ đi thẳng vào grub. Sau khi khởi động lại vào OS X (sử dụng phím tùy chọn khi khởi động), đôi khi rEFInd xuất hiện, đôi khi không, không thể tìm ra cách nó được kích hoạt.

Có cách nào để đảm bảo rEFInd xuất hiện đầu tiên, bất kể hệ điều hành nào tôi đã khởi động trước đó không?


Biên tập

Sử dụng efibootmgr -vcho tôi:

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)

Nếu tôi đặt NextBoot với -n-option thành 0080, sau khi khởi động lại, rEFInd sẽ xuất hiện. FFFF đưa tôi trực tiếp vào OSX. 0081 dường như thất bại.

Cảm ơn đã giúp đỡ!


Đây dường như là bài viết chính thức của rEFind: "Phục hồi từ một cuộc đảo chính sử dụng Linux" hoặc "Sử dụng efibootmgr để điều chỉnh mức độ ưu tiên khởi động của bạn" sẽ giúp ích: Rodbooks.com/refind/bootcoup.html
kenju

Câu trả lời:


11

Các hệ điều hành đôi khi đặt lại chương trình khởi động mặc định, đặc biệt nếu chúng nâng cấp bộ tải khởi động tiêu chuẩn của chúng. Thực sự không có cách nào để ngăn chặn điều này xảy ra, vì vậy bạn chỉ cần biết cách khắc phục sự cố khi nó xảy ra. Trong Linux, điều này được thực hiện bằng cách sử dụng efibootmgrchương trình. Trong OS X, nó được thực hiện thông qua bless. Xem ở đây để biết thêm về efibootmgr.

Nếu sự tung hứng này xảy ra mỗi khi bạn khởi động lại, thì có gì đó sai nghiêm trọng. Nếu Ubuntu đặt lại GRUB làm mặc định cho mỗi lần khởi động lại thì cá nhân tôi sẽ xóa nó - nhưng tôi không phải là fan hâm mộ của GRUB (đủ để tôi chia rEFIt để tạo rEFInd thay vì giao dịch với GRUB). Tôi cho rằng bạn cũng có thể thực hiện cuộc gọi efibootmgrtrong một kịch bản tắt máy, nhưng điều đó có nguy cơ bị ngắt kết nối với thực tế và gây ra vấn đề, vì vậy tôi không muốn làm điều đó.


BIÊN TẬP:

Có, thay đổi BootOrderbiến (thông qua -otùy chọn thành efibootmgr) như bạn đề xuất là phù hợp. Bạn có thể xóa mục OpenSUSE bằng:

sudo efibootmgr -b 0 -B

Có thể có các tệp OpenSUSE được cài đặt mà bạn có thể xóa bằng cách sử dụng rm- có thể sudo rm -r /boot/efi/EFI/opensusetừ Ubuntu. (Các tệp này không gây hại gì cho chúng, nhưng chúng có thể gây nhầm lẫn hoặc vô tình được kích hoạt lại trong tương lai.) Bạn có thể xóa Ubuntu GRUB theo cách tương tự, mặc dù có thể được cài đặt lại nếu / khi Ubuntu cập nhật nó trong tương lai. Ngoài ra, giữ nó xung quanh như một phương pháp sao lưu khởi động có thể có ý nghĩa.

Nếu bạn đã cài đặt GRUB của Ubuntu nhưng không muốn thấy nó trong menu của rEFInd, bạn có thể sử dụng dont_scan_dirshoặc dont_scan_filestrong refind.conf(có thể /boot/efi/EFI/refind/refind.conftừ Ubuntu) để ẩn mục GRUB.


Xin vui lòng xem chỉnh sửa của tôi ở trên. Vì vậy, bước tiếp theo, tôi giả sử, sẽ xóa mục mở ra (tôi đã xóa bản phân phối này một thời gian trước đây) và đặt BootOrder thành "0080,0001, FFFF" chẳng hạn. Đúng không? Ngoài ra, tôi sẽ không gỡ bỏ hoàn toàn GRUB2, nhưng làm thế nào tôi có thể làm điều này và nhận rEFInd để khởi động trực tiếp vào Ubuntu? Tôi có phải cài đặt EFI Stub Loader như được chỉ ra trên trang web của bạn không? Cảm ơn một lần nữa!
paulkernstock

Xin vui lòng xem chỉnh sửa của tôi ở trên.
Rod Smith

Bây giờ điều này chắc chắn đã giải quyết câu hỏi của tôi. Nhưng trước khi xóa GRUB2, tôi muốn có rEFI và tìm đường vào Ubuntu, nhưng không được. Trong menu rEFInd, tôi thấy hai mục Ubuntu, một mục có nội dung "grub_x64" và một mục để khởi động trực tiếp vào Ubuntu bằng kernel vmlinuz-3.13.0-67, khi được chọn, sẽ bị treo trong dấu nhắc khởi động rEFInd . Đánh F2 trong menu sẽ cho phép tôi chọn phiên bản thực tế của mình (3.19.0-32-generic), nhưng với kết quả tương tự. Khi nhấn F2 một lần nữa, các tùy chọn hiển thị như trong /boot/refind_linux.conf ro quiet splash nomodeset vt.handoff=7giống như trong GRUB.
paulkernstock

Có một root={something}đặc điểm kỹ thuật trong refind_linux.conf? Nếu không, nó cần phải được thêm vào. Bạn sẽ có thể làm cho điều này hoạt động bằng cách chạy mkrlconftập lệnh đi kèm với rEFInd, nhưng có lẽ bạn sẽ phải thêm --forcetùy chọn, như trong sudo mkrlconf --force(nhưng có thể với đường dẫn đầy đủ đến mkrlconf). Nếu vẫn không có root=tùy chọn, vui lòng cho tôi biết điều gì xảy ra khi bạn nhập cat /proc/cmdline.
Rod Smith

Cái refind-linux.confmà tôi đã tạo bằng cách sử dụng mkrlconf-cript của bạn có ba mục với một root=-specifying (xem tại đây ). Trong GRUB2 tôi đã phải thêm tùy chọn nomodesetđể chạy nVidia-GPU của mình. cat /proc/comdlinecho tôi : BOOT_IMAGE=/boot/vmlinuz-3.19.0-32-generic root=UUID=1b9ece72-754f-4f4b-85c0-5b5ed6fc89e1 ro quiet splash nomodeset vt.handoff=7. Ngoài ra, mặc dù quá trình khởi động bị treo trực quan trong màn hình khởi động rEFInd, hệ thống dường như bắt đầu, ví dụ như trình điều khiển quạt của tôi đang được khởi động và người hâm mộ chạy chậm.
paulkernstock

8

Điều này đã xảy ra với tôi và tôi đã sửa nó bằng cách sau trong Ubuntu (đây là trường hợp cụ thể với trường hợp khởi động Ubuntu của bạn Boot0001*):

sudo efibootmgr -o 80,1

Nếu bạn gõ lại sudo efibootmgr, thứ tự khởi động của bạn sẽ là ngay bây giờ BootOrder: 0080,0001. Điều này đảm bảo rằng Mac được khởi động trước và vì rEFInd đã được cài đặt trong Mac, nên nó sẽ xuất hiện trước.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.