Hướng dẫn duaboot Hackintosh với Linux
Last updated
Last updated
OpenCore đã hỗ trợ OpenLinuxBoot.efi
để dualboot với Linux dễ dàng hơn.
Các bước thực hiện:
Cài đặt Linux như bình thường
Thêm OpenLinuxBoot.efi
và ext4_x64.efi
vào UEFI/Drivers
trong config.plist và thư mục EFI/OC/Drivers
trong EFI của OpenCore.
Enable tùy chọn RequestBootVarRouting
và LauncherOption
trong config.plist
. Nên bật tùy chọn HideAuxiliary
để ẩn các nhân Linux cũ. (bấm phím SPACE trong màn hình menu boot của OpenCore để hiện các tùy chọn đã bị ẩn)
Khởi động lại, trong màn hình menu OpenCore sẽ hiện mục chọn Linux đã cài đặt
Không dùng Grub để boot nữa
Nếu bạn đã từng dùng cách khác thì phải gỡ bỏ các cài đặt đó để không thấy biểu tượng 2 biểu tượng Linux trong menu boot của OpenCore.
Để biết thêm thông tin cách hoạt động của OpenLinuxBoot và cách khắc phục lỗi, tham khảo phần OpenLinuxBoot trong tài liệu .
1: Sử dụng BlessOverride
Nếu Linux không được thêm tự động, hãy thêm những thứ dưới đây vào config.plist:
Một số đường dẫn Linux bootloader phổ biến:
\EFI\arch\grubx64.efi
\EFI\ubuntu\grubx64.efi
\EFI\systemd\systemd\systemd-bootx64.efi
2: Sử dụng efibootmgr
(Khuyến khích dùng)
efibootmgr
là 1 chương trình chi phối EFI Boot Manager trong UEFI Firmware của máy (ngoại trừ BIOS). Thông qua nó, bạn có thể tạo mới và thêm linux boot manager (GRUB2, systemd-boot,...) vào menu OpenCore.
Cách thực hiện:
Xác định bootloader/manager nào đang được sử dụng (GRUB2, systemd-boot,... )
Khởi động linux qua OpenCore, bạn cần sử dụng UEFI Shell để chạy EFI Application cho bootloader/manager
Xác định đường dẫn của bootloader / manager, thường là trong EFI (nếu bạn thiết lập đúng)
Trong cửa sổ terminal trình cài đặt linux , khởi chạy lsblk
Xác định đường dẫn phân vùng hệ thống (ở đây là sda3
)
/boot/efi
là đường dẫn phân vùng EFI. (nếu bạn thêm đúng cách trong fstab
)
bootloader
/manager
nằm trong /boot/efi
Trong trường hợp này số của phân vùng /boot/efi
là 1 . Bạn cần nhớ con số này.(nó có thể nằm trong sda1 hay nvme0nXp1 hoặc bất cứ đâu), nếu EFI nằm trong phân vùng khác, hãy nhớ kỹ số của phân vùng đó.
Di chuyển tới phân vùng EFI bằng lệnh cd /path/to/efi
(ví dụ cd /boot/efi
)
Ở phân vùng EFI, bạn sẽ thấy 1 thư mục EFI
chứa thư mục BOOT
và các thư mục khác, 1 trong các thư mục này chứa bootloader/manager, thường thấy trong:
EFI/arch/grubx64.efi
- dùng cho Arch dùng với grub2
EFI/ubuntu/grubx64.efi
- dùng cho Ubuntu dùng với grub2
EFI/systemd/systemd-bootx64.efi
- dùng cho systemd-boot (đường dẫn được sử dụng bởi Arch)
EFI/fedora/grubx64.efi
- cho Fedora dùng với grub2
bằng lệnh find . -iname "grubx64.efi"
hoặc find . -iname "systemd-bootx64.efi"
trong thư mục EFI .
cài đặt efibootmgr
trong hệ thống linux (thường được tích hợp trong ubuntu, nhưng yêu cầu cài đặt trên arch chẳng hạn)
Sau khi cài đặt, chạy dưới dạng sudoer/superuser (hoặc sự dụng sudo): efibootmgr -c -L "Linux" -l "\EFI\pathto\filex64.efi" -d "/dev/sda" -p 1
-c
: Tạo
-L "Linux"
: Nhãn của mục khởi động (bạn có thể đặt tên tùy thích)
-l "\EFI\pathto\filex64.efi"
: đường dẫn tệp loader
-d "/dev/sda"
: đường dẫn đến ổ đĩa. Nếu bạn dùng ssd NVMe thì thay bằng /dev/nvme0nX
-p 1
: trỏ đến phân vùng có số là 1,
Khởi động lại và kiểm tra OpenCore, bạn sẽ tìm thấy một mục mới có tên EFI,có thể có nhiều vì nó cũng có thể chỉ ra các mục khởi động khác, đó là theo thiết kế của OpenCore, không phải là lỗi.
Chúc các bạn thành công!
Nguồn tiếng Anh: