RPi 4 dùng SPI-attached EEPROM (4MBits/512KB), chứa code để khởi động thay cho bootcode.bin
ở boot partition trong các thế hệ RPi trước kia. Giờ đây, ngay cả khi bootcode.bin
có trong boot partition thì RPi 4 cũng bỏ qua.
Tuy nhiên cơ chế khởi động cho RPi 4 vẫn chưa hoàn thiện, chúng ta phải đi vòng qua SD card trước khi hệ thống hoàn toàn hoạt động trên HDD/SSD.
- Trước hết chia HDD/SSD thành ít nhất 2 partition. Boot chứa các file trên phân vùng Boot của SD card và Root chứa các file trên phân vùng Root của SD Card. Ngoài ra vì dung lượng SSD/HDD lớn nên có thể tạo thêm phân vùng Data chứa dữ liệu.
- Dùng lệnh blkid để tìm PARTUUID của các phân vùng HDD/SSD, mục đích để OS biết chính xác phân vùng được dùng.
- Soạn thảo file /etc/fstab trên phân vùng Root của HDD/SSD để OS mount các phân vùng Root và Boot trên HDD/SSD.
- Soạn thảo file cmdline.txt trên phân vùng Boot của SD Card để chỉ định phân vùng Root ở HDD/SSD
Trong quá trình boot, file cmdline.txt trên SD Card được đọc, trong đó xác định phân vùng Root ở HDD/SSD. Sau đó fstab ở HDD/SSD được đọc và các phân vùng ở HDD/SSD được mount…
Chúng ta thấy là phân vùng Root trên SD card không được dùng nên có thể dùng SD card dung lượng khoảng 200MB chỉ có phân vùng Boot.
Việc có SD card trên RPi giúp quá trình boot nhanh hơn vì mặc định RPi đọc SD card trước hết.