Hướng dẫn Dual Boot

Tạo usb trên mac

Dùng command terminal

Cách này chỉ có thể tạo USB boot cho winpe

B1: Mở Disk Utilitiy

B2: Chọn View --> Show all Devices

B3: Chọn vào tên USB của các bạn rồi chọn Erase

B4: Các bạn Format USB với tên WINDOWS10

B5: Tiếp các bạn tải file ISO Wi‌nPE Khuyến khích dùng bộ nhvboot

B6: Các bạn Mount file ISO vừa tải về.

B7: Gọi Terminal lên và gõ lệnh

cp -rp kéo ổ iso vừa mount vào /* /Volumes/WINDOWS10 

Vd: cp -rp /Volumes/CCCOMA_X64FRE_EN-GB_DV9/* /Volumes/WINDOWS10

B8: Boot vào WinPE và cài thôi

Các bạn có thể dùng CMD gõ lệnh setup.exe hoặc winNTsetup hoặc wintohdd, v.v

Dùng unetbootin

Cách này có xác xuất thành công thấp

B1: Tải unetbootin tại đây

B2: Chọn xuống diskimage sau đó tiến hành chọn file iso và usb

B3: Nhấn ok và boot thôi

WinDiskWriter

Cách này có xác xuất thành công cao và khá là tiện

B1: Tải WinDiskWriter về

B2: Giải nén ra file WinDiskWriter.zip ra

B3: Kéo WinDiskWriter.app vào Application

B4: Chạy WinDiskWriter.app trong Application lên

B5: Mục Windows Image chọn file ios bạn cần flash

B6: Mục Target Device chọn tên usb bạn cần flash

B7: Bắt đầu Flash

B8: Reboot và tận hưởng thôi

Lưu ý: các bạn vẫn có thể dùng cả 3 cách để tạo bộ cài linux thay vì windows

OpenCore

OpenCore không chuyên về Dual Boot

Nhưng các bạn vẫn có thể thực hiện Dual Boot với OpenCore

Chỉnh sửa config

B1: mở config bằng propertree

B2: Tiến hành chỉnh sửa những phần sau

  • Bật CustomSMBIOSGuid.

  • UpdateSMBIOSMode set là Custom.

Mục đích

Chống inject thông tin SMBIOS sang các OS khác (ví dụ MacBookPro15,1; iMac20,1;…). Nếu muốn kiểm tra máy có bị inject hay không thì chỉ cần chạy dxdiag ở Run trên Windows là được.

Lưu ý chung

Hãy nhớ rằng opencore inject smbios sang những os khác là để dùng bootcamp. Nên khi bạn chỉnh như phần này sẽ không dùng được bootcamp

Lưu ý cho windows

Đối với 1 số model thì opencore không thể win được phân vùng windows khi này các bạn sẽ add config theo sau

Misc -> BlessOverride -> \EFI\Microsoft\Boot\bootmgfw.efi

Chỉnh sửa ACPI

Đối với phần này cũng như phần trên để dùng bootcamp nên opencore đã cho acpi injet qua các os khác.

Để ngăn chạn việc này đòi hiẻu bạn phải có kỹ năng chỉnh sửa SSDT, DSDT xem chi tiết tại đây

B1: Mở file SSDT hoặc DSDT cần sửa bằng maciasl

B2: Các bạn sẽ tiến hành add 1 dòng If (_OSI ("Darwin"))

//Add dưới method cần patch
            If (_OSI ("Darwin"))
            {
               Giá trị cần patch 
            }
            Else
            {
                Giá trị ban đầu
            }

Giá trị ban đầu: tức là giá trị trước khi patch. Vậy lấy nó ở đâu, Các bạn sẽ lấy nó ở DSDT gốc máy

Vậy ý nghĩa của nó là gì?

  • Các bạn càn biết là win cũng cần DSDT để chạy. Nhưng DSDT của mac và win khác nhau.

  • Do đó các bạn cần sửa giá trị của DSDT ở win cho phù hợp đẻ chạy ở mac

  • Nhưng do opencore cho phép inject ACPI sang os khác để chạy bootcamp do đó giá trị ban đầu của DSDT sẽ bị ghi đè bởi DSDT đã sửa đổi dẫn đến lỗi win

  • Do đó khi bạn add dòng if này có nghĩa là

    • If (_OSI ("Darwin")): tức là macos

      • Nhân của macos là Darwin

        • Thì sẽ chạy giá trị đã sửa

    • Else Tức là những os khác

      • Thì sẽ chạy những gì trị ban đầu

// Ví dụ:
        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            If (_OSI ("Darwin"))
            {
                Return (0x0F)
            }
            Else
            {
                Return (Zero)
            }
       }

B3: Chuyển về file .aml để sử dụng

Đối với các bạn chỉ dùng các SSDT từ dortania thì các bạn ko cần phải làm bước này vì hầu hết họ đã thêm if osi vào SSDT rồi nhé

Nhớ là tất cả SSDT đều phải tải từ dortania

Hay nói cách khác tất cả SSDT đều phải có if osi thì mới ko gây lỗi khi dualboot

Update: đã có một bản opencore no acpi giúp acpi ko bị inject sang os khác.

Giúp cho các bạn ko có kiến thức về SSDT vẫn sử dụng được

Build opencore mod theo hướng dẫn tại đây

Boot Linux from OpenCore picker

B1: Tải driver OpenLinuxBoot.efiext4_x64.efi

  • Driver phải đúng với phiên bản OpenCore của bạn

  • Driver này sẽ nằm trong OpenCorePkg -> X64 -> EFI -> OC -> Drivers

B2: Enable các quirk sau trong config

  • RequestBootVarRouting : True

  • LauncherOption : Full

    • Có thể đặt là Short tuỳ vào thiết bị

B3: Snapshot và Save lại

Cuối cùng reboot để tận hưởng

Chú ý

Nếu OpenCore Picker vẫn chỉ hiện mac và windows thì bạn hãy ấn phím space để hiển thị thêm linux

Do bạn bật HideAuxiliary trong Config.plist

rEFInd

B1: Các bạn down refind tại đây

B2: Vào folder EFI --> Boot Copy Bootx64.efi paste vào EFI --> OC và đổi tên lại là BOOT-origx64.efi

B3: Copy refind_x64.efi vào EFI --> boot và đổi tên lại là Bootx64.efi

B4: copy các mục drivers, icons, tools, refind.conf-sample paste vào EFI --> Boot

B5: Đổi tên refind.conf-sample thành refind.conf

B6: Xoá hết các arg trong refind.conf đi sau đó add các arg sau

timeout 10 //thời gian đếm ngược ở menu boot

resolution max //độ phân giải màn hình

use_nvram true //sử dụng rest nvram

scanfor manual,external //chỉ cho phép quét đối với manual và external

Chi tiết các arg của refind xem tại đây

B7: Tạo thư mục themes tại EFI --> Boot

B8: Tải theme refind tại đây

B9: Copy theme vào thư mục themes vừa tạo

B10: Copy các arg trong file theme.conf vào file refind.conf

B11: Tiến hành add các đường dẫn boot theo sau

menuentry "My macOS" {
    icon \EFI\refind\icons\os_mac.png
    loader  \EFI\OC\Opencore.efi
}

menuentry "Windows" {
    icon \EFI\Boot\themes\rEFInd-minimal\icons\os_win.png
    loader \EFI\Microsoft\Boot\bootmgfw.efi
}

menuentry "Ubuntu" {
    loader /EFI/ubuntu/grubx64.efi
    icon /EFI/refind/icons/os_linux.png
}

menuentry "Arch Linux" {
    icon     /EFI/refind/icons/os_arch.png
    volume   "Arch Linux"
    loader   /boot/vmlinuz-linux
    initrd   /boot/initramfs-linux.img
    options  "root=PARTUUID=5028fa50-0079-4c40-b240-abfaf28693ea rw add_efi_memmap"
    submenuentry "Boot using fallback initramfs" {
        initrd /boot/initramfs-linux-fallback.img
    }
    submenuentry "Boot to terminal" {
        add_options "systemd.unit=multi-user.target"
    }
}

Như vậy là xong rồi

Đối với các bạn lười. Có thể lấy bản refind mình đã build sẵn tại đây

Sử dụng clover để boot OC

Nghe có vẻ lạ nhưng đây hoàn toàn là điều khả thi. Bởi bạn thân clover là một bootloder rất mạnh nên nó hoàn toàn có thể boot OC

B1: Tải bản clover mình đã chỉnh sửa tại đây

B2: Tải clover configurator

B3: Mở file config của clover bằng propertree

B4: Tiến hành add Entries theo đường dẫn /EFI/OC/Opencore.efi

B5: Tiến hành boot thôi

Clover

Add boot entries

Đối với clover như đã nói ở trên trình dual boot của clover đã rất mạnh.

Nên cứ như vậy thì boot thôi.

Tuy nhiên trường hợp các bạn muốn add thêm bootoption làm theo hướng dẫn tại đây

B1: Các bạn mở config bằng Clover Configuration.

B2: Các bạn chuyển tới mục Gui.

B3: Bấm vào dấu + ở mục Custom Entries.

B4: Sau khi làm xong các bạn sẽ được như hình:

B5: Các bạn nhấn đúp và chọn New Custom Entry

B6: Add Boot Option các bạn chỉnh như sau

Nếu các bạn xoá mục Drivers thì ở đây các bạn phải add đường dẫn cho os mà các bạn muốn Dualboot

  • Volume: Chọn partition chứa file boot cần add

  • Path: chọn đến đường dẫn cần add

  • Title / Full Title: tên tùy ý

  • Type: Other.

  • Volume type: internal.

B7: Save lại.

B8: Reboot và tận hưởng thôi.

Hide boot entries

B1: Mở config bằng propertree

B2: Tìm đến mục Root -> GUI -> Hide

Nếu như trên các key có ký tự ? thì hãy xoá nó đi

B3: Hãy add vào mục này hai key như sau

<key>GUI</key>
   <dict>
       <key>Hide</key>
       <array>
           <string>Recovery</string>
           <string>Preboot</string>
       </array>
       <key>Scan</key>
       <true/>
       
   </dict>

Mặc định ở mục này đã có sẵn 2 key 01 với các giá trị khác

Chỉ cần sửa hai giá trị này thành RecoveryPreboot là được

B4: Save lại rổi reboot

Nếu các bạn muốn hiện lại các entries đã ẩn chỉ việc ấn F3 ở picker của clover là được

Chú ý: Một số máy khi dualboot giữa windows và MacOS sẽ bị lệch time

Nguyên nhân là do 2 controller thời gian giữa mac và win khác nhau nên bị xung đột.

Để khắc phục thì các bạn làm như sau

Fix UTC time

B1: Vào hackintool tab Utilities và nhấn vào mục Generate Windows UTC Registry Files

B2: Vào Desktop bạn sẽ nhận được 2 file là

  • WinUTCOff.reg

  • WinUTCOn.reg

B3: Copy file WinUTCOn.reg vào một nơi nào đó mà Windows có thể đọc được

B4: Vào Windows và chạy file WinUTCOn.reg lên

B5: Restart lại và boot vào Windows

Hãy đặc biết chú ý là các này sẽ phụ thuộc vào giờ bạn set bên mac nên ngay cả khi bạn thay đổi múi giờ ở win thì sau khi restart nó vẫn sẽ trở về với múi giờ bạn đã chỉnh bên MacOS

Nếu lần đầu chưa thành công thì đừng lo hãy reboot 1-2 lần và restart NVRAM nhé

Last updated