# Các vấn đề khác (Miscellaneous Issues)
Dưới đây là sách hướng dẫn bạn khắc phục các vấn đề ngoài lề không xoay quanh bản thân hệ điều hành macOS (macOS itself), ví dụ như việc cài song song nhiều hệ điều hành (multibooting) để bản hack của bạn hoàn hảo hơn.
- Không chạy được acpidump.efi
- Sửa lỗi SSDTTime: Could not locate or download iasl! (Không thể tìm thấy hoặc tải xuống iasl!)
- Sửa lỗi Python: Python is not installed or not found on PATH (Python chưa được cài đặt hoặc không tìm thấy trong cài đặt đường dẫn mặc định hệ thống)
- Trình chọn Startup Disk của Windows không thấy ổ đĩa APFS (Windows Startup Disk can't see APFS drives)
- Độ phân giải không chính xác trên OpenCore (Incorrect resolution with OpenCore)
- Không tìm thấy ổ đĩa Windows/BootCamp trong danh sách chọn (Can't find Windows/BootCamp drive in picker)
- Lỗi "You can't change the startup disk to the selected disk" (Bạn không thể thay đổi ổ đĩa mặc định để khởi động sang ổ đĩa đã chọn)
- Đã chọn ổ đĩa mặc định để khởi động nhưng sau đó nó không khởi động chính xác đúng ổ đĩa đã được cài đặt
- Khởi động Windows bị màn hình xanh hoặc Linux bị crash (Booting Windows results in BlueScreen or Linux crashes)
- Lỗi khi khởi động Windows: OCB: StartImage failed - Already started (Thất bại khi nạp file khởi động vì file này đã được chạy rồi)
- iASL warning, only X unresolved (Cảnh báo iASL, có X mục chưa được giải quyết - unresolved)
- Thời gian không đồng nhất giữa macOS và Windows
# Không chạy được acpidump.efi
Hãy triệu hồi OpenCore shell (giao diện dòng lệnh của OpenCore):
shell> fs0: //đổi lại cái này cho đúng với đường dẫn USB của bạn
fs0:\> dir //để xác định đã chọn đúng phân vùng, nếu không thì đổi fs1 và cứ vậy mần tiếp
Directory of fs0:\
01/01/01 3:30p EFI
fs0:\> cd EFI\OC\Tools //Lưu ý rằng nó có dấu gạch chéo.
fs0:\EFI\OC\Tools> acpidump.efi -b -n DSDT -z
# Sửa lỗi SSDTTime: Could not locate or download iasl! (Không thể tìm thấy hoặc tải xuống iasl!)
Lỗi này thường là do phiên bản Python đã quá cũ (outdated version), hãy thử cập nhật Python hoặc thêm iasl (trình biên dịch ACPI) vào thư mục scripts của SSDTTime:
- iasl phiên bản dành cho macOS (opens new window)
- iasl phiên bản dành cho Windows (opens new window)
- iasl phiên bản dành cho Linux (opens new window)
# Sửa lỗi Python: Python is not installed or not found on PATH (Python chưa được cài đặt hoặc không tìm thấy trong cài đặt đường dẫn mặc định hệ thống)
Kèo này dễ, tải và cài đặt phiên bản Python mới nhất là xong:
- Link tải xuống cho macOS (opens new window)
- Link tải xuống cho Windows (opens new window)
- Link tải xuống cho Linux (opens new window)
Bảo đảm là bạn đã tick Add Python to PATH (Đã thêm Python vô cài đặt đường dẫn mặc định hệ thống)

# Trình chọn Startup Disk của Windows không thấy ổ đĩa APFS (Windows Startup Disk can't see APFS drives)
- Do driver BootCamp đã lỗi thời (thường brigadier sẽ cung cấp cho bạn bản 6.0), nhưng công cụ Boot Camp Utility trong macOS thì cung cấp phiên bản mới hơn như 6.1 (Mới thêm hỗ trợ ổ đĩa APFS). Anh bạn CorpNewt cũng đã chỉnh sửa (forked) brigadier để xử lý các vấn đề này: brigadier của CorpNewt (opens new window)
# Độ phân giải không chính xác trên OpenCore (Incorrect resolution with OpenCore)
- Hãy làm theo hướng dẫn Sửa lỗi độ phân giải và dòng lệnh chạy chữ (Verbose) (opens new window) để thiết lập cho chuẩn, đặt
UIScalethành2cho màn hình độ phân giải cao (HiDPI) - Nhiều người cũng nhận thấy rằng nếu ta đặt
ConsoleModethành Max (tự động chỉnh độ phân giải tối đa) đôi khi sẽ gặp lỗi, nên để trống mục này có khi là giúp ích.
# Không tìm thấy ổ đĩa Windows/BootCamp trong danh sách chọn (Can't find Windows/BootCamp drive in picker)
Với OpenCore, chúng ta cần lưu ý rằng các bản cài Windows đời cũ (legacy Windows installs) không được hỗ trợ, chỉ hỗ trợ chuẩn UEFI. Hầu hết các bản cài hiện nay đều dựa trên UEFI nhưng những bản được tạo bởi BootCamp Assistant lại ở dạng Legacy (đời cũ), vì vậy bạn sẽ phải tìm phương pháp khác để tạo bộ cài (Google là bạn thân của bạn đó). Cái này cũng đồng nghĩa với việc các phân vùng MasterBootRecord/Hybrid (phân vùng lai) cũng sẽ bị hư, vì vậy bạn cần định dạng (format) ổ đĩa muốn cài đặt bằng Disk Utility. Hãy đọc Hướng dẫn đa khởi động trên OpenCore (opens new window) để biết các phương pháp thực hiện tốt nhất
Giờ thì cùng mình bắt tay vào gỡ lỗi (troubleshooting) nha:
- Bảo đảm bạn đã thiết lập
Misc -> Security -> ScanPolicyvới giá trị là0để hiện tất cả ổ đĩa - Kích hoạt
Misc -> Boot -> Hideselfkhi trình nạp khởi động Windows (Windows bootloader) nằm trên cùng một ổ đĩa.
# Lỗi "You can't change the startup disk to the selected disk" (Bạn không thể thay đổi ổ đĩa mặc định để khởi động sang ổ đĩa đã chọn)
Lỗi này thường do cách phân vùng của ổ chứa Windows không bình thường, cụ thể là phân vùng EFI không phải là phân vùng đầu tiên trong ổ cứng. Để khắc phục, chúng ta cần bật quirk này:
PlatformInfo -> Generic -> AdviseFeatures -> True

# Đã chọn ổ đĩa mặc định để khởi động nhưng sau đó nó không khởi động chính xác đúng ổ đĩa đã được cài đặt
Nếu bạn gặp vấn đề với việc Startup Disk không áp dụng đúng ổ đĩa khởi động mới, nguyên nhân rất có thể là do thiếu DevicePathsSupported trong I/O Registry của bạn. Để giải quyết, hãy bảo đảm bạn đang sử dụng PlatformInfo -> Automatic -> True
Ví dụ về việc thiếu DevicePathsSupported:
# Khởi động Windows bị màn hình xanh hoặc Linux bị crash (Booting Windows results in BlueScreen or Linux crashes)
Lỗi này là do vấn đề về sự sai lệch trong việc sắp xếp địa chỉ bộ nhớ (alignment issues), hãy bảo đảm SyncRuntimePermissions được bật trên các firmware (phần mềm hệ thống) hỗ trợ MATs. Hãy kiểm tra nhật ký (logs) xem firmware của bạn có hỗ trợ Memory Attribute Tables (Bảng thuộc tính bộ nhớ) hay không (thường thấy trên các đời firmware 2018 và mới hơn).
Chi tiết hơn, cái lỗi này "ác" ở chỗ thằng OpenCore khi nó vá lỗi cho macOS, nó vô tình làm thay đổi cách sắp xếp bộ nhớ mà Windows và Linux không hiểu được. Thằng MATs chính là cái "bản đồ" giúp các hệ điều hành biết chỗ nào trong bộ nhớ là "cấm vào", chỗ nào là "chỉ đọc". Nếu hông có sự đồng bộ (Sync), Windows nhảy vô nhầm chỗ là "ăn" màn hình xanh liền.
Common Windows error code:
0xc000000d
# Lỗi khi khởi động Windows: OCB: StartImage failed - Already started (Thất bại khi nạp file khởi động vì file này đã được chạy rồi)
Lỗi này xảy ra do OpenCore bị "lú" (getting confused) khi cố gắng khởi động Windows và nó vô tình nghĩ rằng nó đang khởi động chính nó (OpenCore). Lỗi này có thể tránh được bằng cách chuyển Windows sang một ổ đĩa riêng hoặc thêm một đường dẫn ổ đĩa tùy chỉnh (custom drive path) dưới mục BlessOverride. Đọc thêm Configuration.pdf (opens new window) để biết thêm chi tiết.
# iASL warning, only X unresolved (Cảnh báo iASL, có X mục chưa được giải quyết - unresolved)
Nếu bạn cố gắng giải mã (decompile) file DSDT mà gặp lỗi tương tự như vầy:
iASL Warning: There were 19 external control methods found during disassembly, but only 0 were resolved (19 unresolved)
(Cảnh báo: Có 19 phương thức điều khiển bên ngoài được tìm thấy, nhưng hổng có cái nào được giải quyết)
Lỗi này xảy ra khi một bảng ACPI yêu cầu các bảng còn lại để tham chiếu chính xác (proper referencing), nó không ảnh hưởng đến việc tạo các file DSDT vì chúng ta chỉ sử dụng nó để tạo ra một vài file SSDT chọn lọc. Đối với những ai lo lắng, bạn có thể chạy lệnh sau:
iasl * [liệt kê tất cả các file ACPI ở đây]
# Thời gian không đồng nhất giữa macOS và Windows
Cái này là 2 hệ điều hành sử dụng 2 hệ thống thời gian khác nhau. macOS về cơ bản là Unix nên kế thừa truyền thống sử dụng hệ thống giờ Quốc tế (Universal Time - UTC), trong khi Windows dựa trên giờ Greenwich (GMT), vì vậy bạn cần phải ép một trong 2 hệ điều hành sử dụng cùng 1 cách đo thời gian. Mình khuyên bạn nên thay đổi trên Windows vì nó ít gây hại và ít phiền phức hơn nhiều so với việc ép macOS chạy GMT: