Hướng dẫn Dual Boot
Tạo usb trên mac
Dùng command terminal
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 WinPE 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ặcwinNTsetup
hoặcwintohdd
, v.v
Dùng unetbootin
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
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
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
.
Chỉnh sửa ACPI
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
Dump DSDT theo hướng dẫn tại đâ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à macosNhân của macos là
Darwin
Thì sẽ chạy giá trị đã sửa
Else
Tức là những os khácThì 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.efi
và ext4_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
Tải
OpenCorePkg
tại đây
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
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
trongConfig.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
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
Sử dụng clover để 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
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
Volume
: Chọn partition chứa file boot cần addPath
: chọn đến đường dẫn cần addTitle
/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

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>

B4: Save lại rổi reboot


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
Last updated