Hướng dẫn duaboot Hackintosh với Linux
Phương Pháp 1: OpenLinuxBoot
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àoUEFI/Drivers
trong config.plist và thư mụcEFI/OC/Drivers
trong EFI của OpenCore.Enable tùy chọn
RequestBootVarRouting
vàLauncherOption
trongconfig.plist
. Nên bật tùy chọnHideAuxiliary
để ẩ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 Configuration.pdf.
Cách 2: EFI Bootloader (GRUB2, Systemd-boot)
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 trongfstab
)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ụcBOOT
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 grub2EFI/ubuntu/grubx64.efi
- dùng cho Ubuntu dùng với grub2EFI/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 grub2bằng lệnh
find . -iname "grubx64.efi"
hoặcfind . -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.
Nguồn tiếng Anh: Dotania
Chúc các bạn thành công!
Last updated