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:

  1. Cài đặt Linux như bình thường

  2. Thêm OpenLinuxBoot.efiext4_x64.efi vào UEFI/Drivers trong config.plist và thư mục EFI/OC/Drivers trong EFI của OpenCore.

  3. Enable tùy chọn RequestBootVarRoutingLauncherOption 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)

  4. Khởi động lại, trong màn hình menu OpenCore sẽ hiện mục chọn Linux đã cài đặt

  5. 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:

  1. Xác định bootloader/manager nào đang được sử dụng (GRUB2, systemd-boot,... )

  2. Khởi động linux qua OpenCore, bạn cần sử dụng UEFI Shell để chạy EFI Application cho bootloader/manager

  3. Xác định đường dẫn của bootloader / manager, thường là trong EFI (nếu bạn thiết lập đúng)

    1. Trong cửa sổ terminal trình cài đặt linux , khởi chạy lsblk

      $ lsblk
      NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
      ... 
      sda            8:0    0 223.6G  0 disk 
      ├─sda1         8:1    0   200M  0 part /boot/efi
      ├─sda2         8:2    0 116.3G  0 part 
      └─sda3         8:3    0   107G  0 part /
      ...
      • 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 đó.

    2. Di chuyển tới phân vùng EFI bằng lệnh cd /path/to/efi (ví dụ cd /boot/efi)

    3. Ở 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 .

  4. 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)

  5. 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,

  6. 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