Boot từ ổ đĩa GPT

Raspberry Pi không hỗ trợ boot từ phân vùng GPT trong khi MBR chỉ hỗ trợ các ổ đĩa có dung lượng đến 2TB. Vì vậy phải đi vòng bằng Hibrid partition table để boot từ ổ đĩa trên 2TB.

Bước 1: Nếu chứ có gdisk thì cài đặt.

apt install gdisk

Dùng gdisk tạo phân vùng boot và các phân vùng khác theo nhu cầu, thí dụ OS, Swap, Data. Phân vùng boot của PiOS cần 256MB.

Bước 2: Dùng gdisk để đổi phân vùng boot sang dạng MBR FAT32 thay vì GPT, giả sử thuộc ổ đĩa /dev/sdg (Chú ý các trả lời màu)

root # gdisk /dev/sdg
GPT fdisk (gdisk) version 1.0.6

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Command (? for help): r

Recovery/transformation command (? for help): h

WARNING! Hybrid MBRs are flaky and dangerous! If you decide not to use one,
just hit the Enter key at the below prompt and your MBR partition table will
be untouched.

Type from one to three GPT partition numbers, separated by spaces, to be
added to the hybrid MBR, in sequence: 1
Place EFI GPT (0xEE) partition first in MBR (good for GRUB)?
(Y/N): n

Creating entry for GPT partition #1 (MBR partition #1)
Enter an MBR hex code (default 83): 0c
Set the bootable flag? (Y/N): n

Unused partition space(s) found. Use one to protect more partitions?(Y/N): n

Recovery/transformation command (? for help): o
Disk size is 7814037164 sectors (3.6 TiB)
MBR disk identifier: 0x00000000
MBR partitions:
Number  Boot  Start Sector   End Sector   Status      Code
1                  2048       206847   primary     0x0C
2                     1         2047   primary     0xEE

Recovery/transformation command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdg.
The operation has completed successfully.

Bước 3: Xong rồi! rsync /boot /và / vào /dev/sdg1 và /dev/sdg2, sau đó sửa các file cmdline.txt ở sdg1 và fstab ở sdg2

Chú ý

  • Thứ tự các lệnh: r, h, 1, n, 0c, n, n, o, w, y
  • Không cần xóa phân vùng 0xEE, nó chỉ là phân vùng đệm để bảo đảm phân vùng 0x0C không bị xóa.
  • Nếu sau này vì lý do nào đó dùng parted trên ổ đĩa thì partition boot có thể không còn boot được, khi đó phải lập lại bước 2 như trên.
  • Thông thường HDD cần đạt số vòng quay, điện áp… cần thiết mới có thể hoạt động. Chúng ta có thể bảo RPi chờ một lúc trước khi đọc start.elf, bằng cách thêm vào cuối file /boot/config.txt
    boot_delay=6

Comments Off on Boot từ ổ đĩa GPT

Filed under Software

Comments are closed.