OpenCore Phần 1: macOS sẽ khởi động như thế nào?

OpenCore Phần 1: macOS sẽ khởi động như thế nào?
 
Để khởi đầu công cuộc cài macOS, mình nghĩ bạn nên bắt đầu với cơ chế khởi động (boot) của hệ điều hành thông qua OpenCore. Điều mà hầu hết các bài hướng dẫn nơi khác đều coi là thứ không cần phải biết thì ở đây chúng ta không làm vậy.

Mình đoán là bạn đã từng mong chờ Phần 5 của chuỗi bài về Hackintosh và cũng từng đó thắc mắc vì sao mình không viết tiếp. Từ hôm nay mình sẽ viết chuỗi bài mới với OpenCore. Mình khuyến khích bạn đọc Phần 1 2 trước, Phần 3 và 4 bạn có thể bỏ qua (vì đó là kĩ thuật cũ trên Clover).

Phần cứng mặc định là CPU Intel thế hệ thứ 6-7-8-9 hoặc cao hơn, các hệ thống thấp hơn cũng làm tương tự và mình sẽ nói thêm trong từng bài.
Mình cũng rất muốn có thêm một hệ thống CPU AMD để thử nghiệm nhưng tình hình tài chính hiện nay chưa cho phép chơi lớn đến mức đó, bạn nào thiện trí có thể cho mình mượn hoặc thuê CPU AMD thì mình rất cảm ơn.

Còn nữa, Hội Dev Thích Moè là sân chơi riêng dành cho lập trình. Hỏi đáp, nghiên cứu về cài macOS thì qua group OpenCore for macOS, mình cũng không muốn tạo thêm group nhưng suy nghĩ lại thì có group riêng sẽ dễ lắng nghe phản hồi và dễ định hướng nội dung cho bài viết trong tương lai. 

OpenCore đơn giản nó là:

OpenCore là bootloader thế hệ mới thay cho Clover và Chameleon. OpenCore không chỉ  cho hệ thống Hackintosh mà còn sử dụng được trên hệ thống real macs (máy mac thật). Giúp cho "người chơi" dễ dàng cài đặt song song nhiều hệ điều hành cùng lúc. Về mặt sâu hơn thì OpenCore đem lại nền tảng boot "sạch sẽ" và gần giống với cách thức hoạt động của real mac hơn, cách mà OpenCore nạp Kext cũng được cải tiến hơn (đó là lí do vì sao boot vào macOS với  OpenCore nó lại nhanh hơn hẳn so với người tiền nhiệm Clover.

OpenCore is an alternative bootloader to CloverEFI or Chameleon. It is not only for Hackintosh and can also be used on real macs for purposes that require an emulated EFI. It also aims to have the ability to boot Windows and Linux without the need for using different acpi tables. It has a clean codebase and aims to stay closer to how a real mac bootloader functions. Kext injection has been greatly improved. While already functioning well.
Source: insanelymacdiscord

OpenCore nó hoạt động thế nào?

OpenCore hoạt động như thế nào? duongth.dev
OpenCore hoạt động như thế nào?
UEFI bản chất nó là một hệ điều hành siêu mini được load sau khi bạn ấn nút nguồn. Nó sẽ tìm kiếm kệ điều hành có sẵn trong máy tính và khởi động hệ điều hành đó lên. Dấu hiệu nhận biết nó chính là logo của mainboard hoặc hãng laptop.

Giả sử bạn chỉ có cài mỗi Windows, UEFI sẽ tìm tới boot của Windows và Windows sẽ thực hiện quá trình boot. Cơ chế boot của Windows không phải trọng tâm của chuỗi hướng dẫn nhưng bạn tò mò có thể xem thêm tại đây: Link

Giả sử bạn muốn multi boot Windows + macOS + Linuxs thì làm thế nào để  quản lý được chúng? OpenCore bản chất cũng là một hệ điều hành siêu mini, được load sau UEFI, nó rà soát và đưa ra những hệ điều hành có trong máy tính, rồi từ OpenCore đi đâu là tuỳ vào lựa chọn của bạn:

  • Nếu bạn chọn Windows hay Linux thì OpenCore sẽ tìm tới boot tương ứng và thực hiện quá trình boot như trên.
  • Nếu bạn chọn macOS, nó sẽ đóng vai trò giả lập lại môi trường để đánh lừa macOS, giúp chúng ta vượt rào và đây chính là nguyên lý cơ bản của bộ môn thể thao trí tuệ cuốn hút nhất hiện nay mang tên "Hackintosh".

OpenCore sẽ được cài đặt ở đâu? 

Đầu tiên mình chuẩn hoá lại từ ngữ để bạn không bị nhầm lẫn giữa ổ cứngphân vùng.
  • Ổ cứng sẽ dùng chỉ thiết bị vật lý : ổ HDD, ổ SSD.
  • Trên mỗi ổ cứng sẽ chia ra nhiều phân vùng để quản lý dữ liệu: phân vùng C, phân vùng Data....
Trong ngôn ngữ bình dân chúng ta gặp hằng ngày từ "ổ" được dùng chung cho cả ổ cứng và phân vùng ( ổ C, ổ D, ổ Win, ổ Data, ổ cứng HDD, ổ cứng SSD, ổ USB ....). Nhưng về kĩ thuật thì phải phân định rõ ràng và không tồn tái khái niệm "ổ" chung chung.
OpenCore quản lý các hệ điều hành có sẵn như thế nào?
OpenCore sẽ được đặt vào phân vùng EFI trên ổ cứng. Từ tương quan giữa vị trí đặt OpenCore và vị trí cài đặt macOS mình chia thành 2 cách bố trí hệ điều hành phổ biến:
  1. Cài chung Windows và macOS trên cùng một ổ cứng.
  2. Cài riêng macOS trên ổ cứng độc lập. (ở đây lại chia tiếp làm 2 trường hợp nhỏ, mình sẽ nói cụ thể bên dưới)
Mình có lưu ý với bạn rằng macOS Catalina tương thích với mọi loại ổ cứng  HDD và SSD có mặt trên thị trường. Bởi vậy bạn không cần phân vân là nên cài lên ổ cứng HDD hay SSD làm gì cho mệt, chỉ có điều cài lên HDD thì macOS load chậm hơn SSD - hiển nhiên là vậy.

Cách 1:  Cài chung Windows và macOS trên cùng một ổ cứng.

Đây là phương án chia phân vùng phổ biến trên laptop hoặc desktop có 1 ổ cứng duy nhất. 
Cài chung Windows và macOS trên cùng một ổ cứng. duongth.dev
Cài chung Windows và macOS trên cùng một ổ cứng.
  • Trường hợp A: cài mới từ đầu. Gọn gàng và sạch sẽ với phân vùng EFI ở đầu -> Windows  -> macOS.  Phân vùng macOS trước hay Windows trước không quan trọng, nó không ảnh hưởng gì đến quá trình cài và chạy của macOS. Tuy nhiên mình thấy để  Windows trước sẽ tiện hơn,  khi bạn muốn gỡ bỏ macOS khỏi ổ cứng chỉ cần xoá OpenCore và format phân vùng macOS là máy tính lại y hệt như chưa từng cài macOS.
  • Trường hợp B: máy đang có sẵn Windows, bạn quyết định giữ lại Windows hiện tại thì sẽ phải tách một phân vùng EFI mới >200MB từ phân vùng chứa Windows, chuyển boot của Windows qua phân vùng EFI mới và xoá phân vùng EFI cũ đi. Nhưng đôi khi cách này gây ra rắc rối nhỏ và phải làm lại theo trường hợp A.

Nguyên nhân :

  • Mặc định khi cài, Windows sẽ tự động tạo phân vùng EFI (nếu máy đang không có phân vùng EFI nào). Phân vùng này sẽ có dung lượng 100MB.
  • MacOS thì lại yêu cầu phân vùng EFI phải có dung lượng tối thiểu 200MB.


Cách 2: Cài riêng macOS lên một ổ cứng độc lập.

Chi thêm vào trăm ngàm, mua SSD mới cài macOS không có gì khó hiểu với hệ thống Desktop cả. Gần đây cách cài riêng này cũng được sử dụng trên Laptop khi các hãng có option 2 ổ cứng.
Cài riêng macOS lên một ổ cứng độc lập duongth.dev
Cài riêng macOS lên một ổ cứng độc lập.
Cài riêng trên 2 ổ độc lập bạn sẽ không cần phải cân nhắc đụng chạm đến windows hiện tại. Tất cả chỉ là lắp ổ cứng mới -> chia ổ cứng mới với phân vùng EFI >200MB và tiến hành cài macOS là xong.

Trường hợp A: Bạn để OpenCore trên phân vùng EFI của ổ cứng chứa macOS.

  • Ưu điểm: Độc lập và an toàn cho cả Windows và macOS. Bạn có thể rút một trong 2 ổ cứng ra mà vẫn có thể an toàn boot vào hệ điều hành tương ứng. 
  • Nhược điểm:  Sẽ phát sinh ra vấn đề khi bạn muốn cài lại Windows. Bộ cài Windows sẽ báo lỗi khi phát hiện toàn bộ hệ thống có tới 2 phân vùng UEFI. 
  • Khắc phục: Bạn có thể tháo ổ  cứng macOS ra, cài lại Windows xong thì lắp ổ cứng chứa macOS vào. Cũng có thể cài Windows từ win mini hoặc làm theo Trường hợp B.

Trường hợp B: Gom OpenCore vào chung với boot của Windows trong phân vùng EFI của ổ cứng chứa Windows hoặc phân vùng EFI của ổ cứng chứa macOS, sau đó xoá đi phân vùng EFI còn lại.

  • Ưu điểm: dễ dàng cài lại Windows mà không bị cảnh báo gì.
  • Nhược điểm: Chung EFI nên khi ổ cứng chứa OpenCore bị rút ra, hệ điều hành ở ổ cứng còn lại không thể boot được.
  • Khắc phục: Làm theo trường hợp A.
Cả hai trường hợp A-B đều không ảnh hưởng hay gây lỗi gì trong quá trình cài đặt và sử dụng macOS. Bạn chỉ cần cân nhắc xem sẽ chọn phương án nào mà thôi. Cá nhân mình sử dụng trường hợp A.

Next:

Hôm nay đến đây là vừa đủ. Mình khuyên bạn nên tìm hiểu thêm ở nhiều nguồn khác nhau và tham gia thảo luận  ngay bên dưới comment hoặc tại OpenCore for macOS.

Hẹn gặp lại ở bài sau  mình sẽ viết về "Các thành phần của OpenCore và nguyên lý sử dụng". 
Nếu bạn mong chờ bài viết tiếp theo hãy mạnh dạn comment ý kiến cuối bài.
Cảm ơn bạn.

Đăng nhận xét

17 Nhận xét

  1. Mong bác sớm hoàn thiện series này, không bị bỏ zở như ngày xưa <3

    Trả lờiXóa
  2. Hóng bài tiếp theo

    Trả lờiXóa
  3. bác ơi liên hệ mình telegram @librastar nhé. Mình đang muốn build 1 hệ thống AMD hackintosh để vọc. Budget tầm 50tr. Có gì pm mình cùng vọc lấy kinh nghiệm.

    Trả lờiXóa
    Trả lời
    1. Bạn có thể liên hệ với mình qua email: HungDuongWP@gmail.com để trao đổi thêm nhé.
      Cảm ơn!

      Xóa
  4. mong anh hoàn thành chuỗi bài biết này để mọi người có thêm tài liệu tham khảo. Mặc dù đã tự hackintosh thành công theo guide của dortania nhưng em vẫn muốn đọc thêm bài biết của anh.

    Trả lờiXóa
  5. Em thấy bảo dùng opencore dễ chết main( có thể là reset nvram nhiều,... ) anh thấy thế nào về ý kiến này ạ.

    Trả lờiXóa
    Trả lời
    1. OpenCore không gây chết main. Nhưng mình đoán người đưa ra ý kiến này thì bị chết main do patch thiếu cái gì đó.

      Ví dụ đơn giản mà main Asus Strix Z390i. Dùng OpenCore mà không apply patch RTC sẽ bị lỗi RTC. Biểu hiện là dù không vào windows nhưng mỗi khi tắt macOS, bật lại thì Datetime trong BIOS tự động reset về mặc định. Cái này không biết, không fix là sẽ chết main (không chết ngay mà đột tử).

      Nhiều người chơi hackintosh tường bỏ qua tiểu tiết như trên dẫn tới hậu quả. Thường thì họ sẽ đổ lỗi cho opencore trước thay vì tự nhìn nhận lại vấn đề đến từ đâu.

      Xóa
  6. tony da caì được mac big sur len pc mà lúc boot chậm quá > 4 phút chạy các dòng code hoa cả mắt mới vào được giao dien gõ pass. ( đã dùng SSD samsung 850pro). có ai bị như vậy ko ? thích nhất là wifi nhận được chuẩn AC chạy vù vù ( đo thì vẫn thua wifi khi chạy với win10)

    Trả lờiXóa
    Trả lời
    1. + Có thể bạn patch thiếu hoặc thừa nên tốc độ boot siêu chậm.

      Để dễ hình dung, bạn tưởng tượng lúc khởi động máy sẽ phải check hàng loạt thông tin phần cứng. Một hoặc một vài trong số đó gây ra lỗi và máy sẽ cố thử kiểm tra lại vài lần trước khi bypass. Tích tụ lại nhiều lỗi sẽ phát sinh thời gian khởi động bị kéo dài.

      Về wifi thì có thể bạn đã cài thiếu kext nào đó. Từ cài được macOS đến cài ngon macOS là một quá trình khá dài, bạn cố gắng lên nhé.

      Xóa
  7. Có nhiều ý kiến cho rằng OC multi boot tệ hơn Clover cá nhân mình cũng đã thấy khi mình dualboot dùng OC thì hay bị lỗi mấy Active win. Điều đó có đúng ko bác

    Trả lờiXóa
    Trả lời
    1. Cá nhân mình vẫn dùng song song win vs mac bằng OC vì lâu lâu vẫn game gủng giải trí. Mình không gặp vấn đề gì về Active win cả. Không mất active và active cũng không bị gì. Trước đây win 10 và giờ là win 11, không phát sinh vấn đề gì.
      Như đã nói ở trên, mình chỉ có win vs mac, mình thấy multiboot với case này chả khác gì Clover. Nếu ai đó nói với bạn nó tệ hơn, hãy hỏi lại thật kĩ xem người đó nói nó tệ trong hoàn cảnh nào và nó tệ như thế nào. Rồi dựa vào đó bạn có thể suy nghĩ xem những cái sự tệ đó có ảnh hưởng tới nhu cầu của bạn không. Bạn có thể nghiên cứu để config multiboot cho đúng nhu cầu hoặc bỏ cuộc và tìm giải pháp multiboot khác. Quan trọng là được việc chứ con đường nào cũng dẫn đến Roma mà.
      OC cũng là dự án mở, dev lắng nghe cộng đồng, mình nghĩ nếu nó multiboot tệ thật đối với cộng đồng thì nó sẽ được cải tiến trong phiên bản sau này. Yên tâm mà chiến nhé bạn.

      Xóa
  8. Hướng dẫn mình dual boot với oc mình chỉ có win và mac mà làm hoài không được vào menu boot chỉ thấy mac không thấy ưin xin mọi người giúp đỡ thank tất cả

    Trả lờiXóa
Emoji
(y)
:)
:(
hihi
:-)
:D
=D
:-d
;(
;-(
@-)
:P
:o
:>)
(o)
:p
(p)
:-s
(m)
8-)
:-t
:-b
b-(
:-#
=p~
x-)
(k)