# Tạo bộ cài trên Linux

Mặc dù bạn không nhất thiết phải cài lại macOS mới để sử dụng OpenCore, nhưng một số người dùng thích làm mới hệ thống hoàn toàn khi nâng cấp boot manager (trình quản lý khởi động).

Để bắt đầu, bạn cần chuẩn bị những thứ sau:

# Tải macOS

Để bắt đầu, trước tiên hãy gõ lệnh cd vào thư mục macrecovery (opens new window) và chạy một trong các lệnh sau:

# Điều chỉnh lệnh bên dưới cho đúng đường dẫn thư mục
cd ~/Downloads/OpenCore-0/Utilities/macrecovery/

Tiếp theo, chạy một trong các lệnh sau tùy thuộc vào phiên bản OS bạn muốn boot:

# Lion (10.7):
python3 ./macrecovery.py -b Mac-2E6FAB96566FE58C -m 00000000000F25Y00 download
python3 ./macrecovery.py -b Mac-C3EC7CD22292981F -m 00000000000F0HM00 download

# Mountain Lion (10.8):
python3 ./macrecovery.py -b Mac-7DF2A3B5E5D671ED -m 00000000000F65100 download

# Mavericks (10.9):
python3 ./macrecovery.py -b Mac-F60DEB81FF30ACF6 -m 00000000000FNN100 download

# Yosemite (10.10):
python3 ./macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000GDVW00 download

# El Capitan (10.11):
python3 ./macrecovery.py -b Mac-FFE5EF870D7BA81A -m 00000000000GQRX00 download

# Sierra (10.12):
python3 ./macrecovery.py -b Mac-77F17D7DA9285301 -m 00000000000J0DX00 download

# High Sierra (10.13)
python3 ./macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000J80300 download
python3 ./macrecovery.py -b Mac-BE088AF8C5EB4FA2 -m 00000000000J80300 download

# Mojave (10.14)
python3 ./macrecovery.py -b Mac-7BA5B2DFE22DDD8C -m 00000000000KXPG00 download

# Catalina (10.15)
python3 ./macrecovery.py -b Mac-CFF7D910A743CAAF -m 00000000000PHCD00 download
python3 ./macrecovery.py -b Mac-00BE6ED71E35EB86 -m 00000000000000000 download

# Big Sur (11)
python3 ./macrecovery.py -b Mac-2BD1B31983FE1663 -m 00000000000000000 download

# Monterey (12)
python3 ./macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000000000 download

# Ventura (13)
python3 ./macrecovery.py -b Mac-B4831CEBD52A0C4C -m 00000000000000000 download

# Sonoma (14)
python3 ./macrecovery.py -b Mac-827FAC58A8FDFA22 -m 00000000000000000 download

# Sequoia (15)
python3 ./macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000000000 download

# Phiên bản mới nhất (Tahoe, 26)
python3 ./macrecovery.py -b Mac-CFF7D910A743CAAF -m 00000000000000000 -os latest download

Từ đây, chạy một trong các lệnh trên trong Terminal (giao diện dòng lệnh) và sau khi hoàn tất, bạn sẽ nhận được kết quả tương tự như sau:

  • Lưu ý: Tùy thuộc vào phiên bản OS, bạn sẽ nhận được file BaseSystem hoặc RecoveryImage. Cả hai đều hoạt động theo cùng một cách, vì vậy khi mình nhắc đến BaseSystem thì hướng dẫn đó cũng áp dụng tương tự cho RecoveryImage.

  • Lưu ý cho macOS 12 trở lên: Vì các phiên bản macOS gần đây có thay đổi về Hệ thống quản lý USB của hệ điều hành (USB stack), bạn rất nên lập sơ đồ (map) các cổng USB (sử dụng USBToolBox) trước khi cài đặt macOS.

# Tiến hành tạo bộ cài

Phần này sẽ hướng dẫn tạo các phân vùng cần thiết trên thiết bị USB. Bạn có thể sử dụng chương trình yêu thích của mình như gdisk fdisk parted gparted hoặc gnome-disks. Hướng dẫn này sẽ tập trung vào gdisk vì nó tiện lợi và có thể thay đổi loại phân vùng sau này, cái này cần thiết để macOS Recovery HD có thể khởi động. (bản phân phối Linux được sử dụng ở đây là Ubuntu 18.04, các phiên bản hoặc bản phân phối khác cũng có thể hoạt động).

Cảm ơn midi1996 (opens new window) vì công trình của anh ấy trong hướng dẫn Internet Install Guide (opens new window), bài viết này dựa trên đó.

# Phương pháp số 1

Trong giao diện dòng lệnh (Terminal):

  1. Chạy lsblk và xác định khối thiết bị (device block) USB của bạn. lsblk
  2. Chạy sudo gdisk /dev/<khối thiết bị USB của bạn>
    1. Nếu bạn được hỏi dùng bảng phân vùng nào, chọn GPT. Select GPT
    2. p để in ra các phân vùng hiện có của khối (và xác nhận đúng ổ cần làm)
    3. o ể xóa bảng phân vùng và tạo bảng GPT mới (nếu ổ chưa trống)
      1. Xác nhận bằng cách gõ y
    4. n (để tạo phân vùng mới).
      1. partition number: để trống (mặc định)
      2. first sector: để trống (mặc định)
      3. last sector: để trống (để bao gồm toàn bộ vùng chưa được sử dụng).
      4. Hex code or GUID: Gõ 0700 cho loại phân vùng Microsoft basic data
    5. w (để ghi thay đổi vào ổ đĩa)
      • Xác nhận bằng cách gõ y
      • Trong một số trường hợp sẽ cần khởi động lại máy, nhưng hiếm khi gặp. Nếu muốn chắc ăn thì cứ reboot. Bạn cũng có thể thử rút USB ra cắm lại.
    6. Tắt gdisk bằng cách gõ q (thường thì nó sẽ tự thoát sau lệnh w)
  3. Xài lệnh lsblk để xác định định danh phân vùng (ví dụ /dev/sdb1)
  4. Chạy lệnh sudo mkfs.vfat -F 32 -n "OPENCORE" /dev/<phân vùng USB của bạn> để format USB sang định dạng FAT32 và đặt tên là OPENCORE.
  5. Sau đó cd tới /OpenCore/Utilities/macrecovery/ nơi bạn có file .dmg.chunklist
    1. Mount (gắn) phân vùng USB của bạn bằng udisksctl (udisksctl mount -b /dev/<phân vùng USB của bạn>, đa số trường hợp không cần sudo) hoặc bằng mount (sudo mount /dev/<phân vùng USB của bạn> /đường/dẫn/mount/của/bạn, bắt buộc xài sudo)
    2. Gõ lệnh cd vào ổ đĩa USB của bạn và chạy mkdir com.apple.recovery.boot tại thư mục gốc của phân vùng USB FAT32.
    3. Bây giờ gõ lệnh cp hoặc rsync để chép cả 2 file BaseSystem.dmgBaseSystem.chunklist vào trong thư mục com.apple.recovery.boot.

# Phương pháp 2 (trong trường hợp cách 1 không hoạt động)

Trong Terminal:

  1. Chạy lsblk và xác định khối thiết bị (device block) USB của bạn.
  2. run sudo gdisk /dev/<khối thiết bị USB của bạn>
    1. Nếu bạn được hỏi sử dụng bảng phân vùng nào, chọn GPT.
    2. p để in ra các phân vùng hiện có của khối (và xác nhận đúng ổ cần làm)
    3. o ể xóa bảng phân vùng và tạo bảng GPT mới (nếu ổ chưa trống)
      1. Xác nhận bằng cách gõ y
    4. n (để tạo phân vùng mới).
      1. partition number: để trống (mặc định)
      2. first sector: để trống (mặc định)
      3. last sector: Gõ +200M để tạo một phân vùng 200MB, cái này lát nữa sẽ đặt tên là OPENCORE.
      4. Hex code or GUID: Gõ 0700 cho loại phân vùng Microsoft basic data.
    5. n (để tạo thêm một phân vùng nữa).
      1. partition number: để trống (mặc định)
      2. first sector: để trống (mặc định)
      3. last sector: để trống (mặc định) (hoặc bạn có thể gõ +3G nếu bạn muốn chia nhỏ tiếp phần còn lại của USB)
      4. Hex code or GUID: Gõ af00 cho loại phân vùng Apple HFS/HFS+
    6. w (để ghi thay đổi vào ổ đĩa)
      • Xác nhận bằng cách gõ y
      • Trong một số trường hợp sẽ cần khởi động lại máy, nhưng hiếm khi gặp. Nếu muốn chắc ăn thì cứ reboot. Bạn cũng có thể thử rút USB ra cắm lại.
    7. Tắt gdisk bằng cách gõ q (thường thì nó sẽ tự thoát sau lệnh w)
  3. Sử dụng lsblk lần nữa để xác định ổ 200MB và phân vùng còn lại
  4. Chạy sudo mkfs.vfat -F 32 -n "OPENCORE" /dev/<khối phân vùng 200MB của bạn> để format phân vùng 200MB sang FAT32, đặt tên là OPENCORE.
  5. Sau đó cd tới /OpenCore/Utilities/macrecovery/ nơi bạn có file .dmg.chunklist
    1. Mount (gắn) phân vùng USB 200MB bằng udisksctl (udisksctl mount -b /dev/<khối phân vùng 200MB của bạn>, đa số trường hợp không cần sudo) hoặc bằng mount (sudo mount /dev/<khối phân vùng 200MB của bạn> /where/your/mount/stuff, bắt buộc xài sudo)
    2. Gõ lệnh cd vào ổ đĩa USB của bạn và chạy mkdir com.apple.recovery.boot tại thư mục gốc của phân vùng USB FAT32.
    3. Tải tiện ích dmg2img (có sẵn trên hầu hết các bản phân phối Linux)
    4. Chạy dmg2img -l BaseSystem.dmg và xác định phân vùng nào có thuộc tính disk image (thường là phân vùng số lớn nhất).
    5. Chạy sudo dmg2img -p <số thứ tự của phân vùng> BaseSystem.dmg /dev/<khối phân vùng 3GB+ của bạn> để giải nén và ghi file ảnh khôi phục (recovery image) vào phân vùng đĩa
      • Sẽ tốn chút thời gian. RẤT LÂU nếu bạn sử dụng USB tốc độ chậm (mình mất khoảng dưới 5 phút với USB 2.0 nhanh).

# Sau khi xong xuôi tất cả, hãy tới phần Thiết lập EFI để hoàn tất công việc của bạn