Rock 5 提供 micro SD Card、eMMC、SSD 開機三種選項,如何將系統 image 寫入對應的儲存裝置,對於初學者是一個極為困擾的問題。在這篇文章中,整理常用的兩種寫入系統 image 方法,以及各種儲存裝置的寫入策略,希望對大家有幫助!

寫入 Image 的兩大方法

使用 balenaEtcher

balenaEtcher 是一個跨平台的映像寫入軟體,全套 UI 化操作,不懂指令的小白也能輕易上手!

過程只有三步:

  1. 選擇 image 檔案
  2. 選擇想要寫入的裝置(需先插入電腦,並選擇正確的裝置,因為裝置上的資料都會刪光光!)
  3. 按下 Flash! 即刻寫入

就這樣完成了!因為實在太過平易近人,這邊就不特別多作截圖介紹

Rock 5 安裝系統的各種方法 - 叩頂窩客 | SSD、eMMC、micro SD Card

適用情境

  • 儲存媒體能插入電腦寫入

因為 balenaEtcher 只有 x86 的 Windows、macOS、Linux 版本,除非你手上有 x86 的 SBC,否則一般大多是 arm 系列,因此 balenaEtcher 常用情境是將儲存媒體插入電腦中進行寫入

使用 dd 指令

dd 是一個預設安裝在 linux 和 macOS 的映像寫入指令,除此之外還能從來源裝置建立映像,是一個很方便的映像檔相關工具。

使用方式分為兩步:

  • 透過 lsblk (linux) 或 diskutil list (macOS) 列出所有儲存裝置,確認目標裝置代號
  • 透過 dd 指令,將 img 檔寫入目標裝置
# linux
$ sudo lsblk
$ sudo dd if=xxxxx.img of=/dev/sda bs=1M

# macOS
$ diskutil list
$ sudo dd if=xxxxx.img of=/dev/rdisk3 bs=1M

適用情境

  • 儲存媒體能插入電腦寫入
  • 儲存媒體不能插入電腦,因此在 rock 5 上對儲存媒體寫入

能插入電腦的情境與 balenaEtcher 類似,不再贅述。

而當儲存媒體不能插入電腦時,我們選擇將其插入 Rock 5 上,開機進入 linux 後使用 dd 指令將 image 寫入目標儲存裝置。因此透過此法的先決條件是,需要讓 Rock 5 能夠開機!要寫入系統映像卻需要先進入系統?你可能覺得怎麼有點雞生蛋蛋生雞的感覺,後續會詳細說明。

系統想安裝在 micro SD Card

這應該是最簡單的 case,插入 micro SD Card 後依照上述使用 balenaEtcher 或 dd 指令皆可。

使用 dd 指令之前,需確認目標裝置的代號。micro SD Card 在 Linux 中通常會以 sdasdb 等代號呈現,至於 macOS 則是 disk3disk4 等流水號,你可以透過空間大小和名稱來判斷哪一個是 micro SD card。

系統想安裝在 eMMC

透過 eMMC 轉接卡

如果你有買 radxa 官方的 eMMC to micro SD adapter (1.95 美,可以考慮買一下,人生會比較容易),將 eMMC 接上去插入 micro SD Card 讀卡機,一切與 micro SD Card 操作方式相同。

Rock 5 安裝系統的各種方法 - 叩頂窩客 | SSD、eMMC、micro SD Card

寫入完成後,再拔下 eMMC 改接 Rock5 主版,上電開機即可。

Rock5 透過 Micro SD Card 開機進入 Linux 後跑 dd

如果沒有買轉卡的話,步驟略為麻煩,詳細如下:

  1. 先將系統透過前述方法安裝在 micro SD Card
  2. 將 eMMC 和 micro SD Card 都插入 Rock5
  3. micro SD Card boot 進入 linux,輸入 lsblk 確定 eMMC 所在路徑 (通常為 mmcblk1
  4. 使用 dd 指令,將 linux 系統映像檔寫入 eMMC 中
  5. 關機斷電,拔掉 micro SD Card,再次上電,即可使用 eMMC開機

其中需要考量,linux 系統來源映像檔要怎麼放入 Rock 5 中?有兩個方法:

  1. rock5 開機入 linux 後連網下載到 micro SD Card
  2. 事先將系統映像檔放入 USB 隨身碟中,插入 rock5 再 mount 上去使用

如果使用法二,也就是透過 USB 隨身碟作載體的話,當映像檔超過 4GB,隨身碟需格式化為 exFAT,並在 Rock 5 中安裝 exFAT 工具才能順利讀取。

# 在 rock5 的 linux 中安裝 exFAT 工具
$ sudo apt install exfat-fuse exfat-utils

# 用 lsblk 確認一下隨身碟裝置代號,假設是 /dev/sda1
# 掛載隨身碟到資料夾
$ sudo mkdir /media/usb
$ sudo mount.exfat-fuse /dev/sda1 /media/usb

# dd 到 eMMC
$ sudo dd if=/media/usb/rock5.img of=/dev/mmcblk1 bs=1M

系統想安裝在 SSD

透過 m2 SSD 轉接器、外接盒

如果你有買 m2 SSD 轉接器或外接盒,步驟也和 micro SD Card 一切相同。

Rock 5 安裝系統的各種方法 - 叩頂窩客 | SSD、eMMC、micro SD Card

但,Rock 5 預設不能直接從 SSD 開機,必須先將 bootloader 寫入 Rock 5 上的 SPI 才可以!因此直接插入寫好系統映像的 SSD 還是不能開機!(幹嘛不出廠前就幫大家弄好!)

所以…..參考官網的各種麻煩步驟,建議同時也準備一張 micro SD Card,先用他 boot Rock 5 進 linux 下指令寫入 bootloader,之後再插入 SSD 就能成功開機!

# 下載官方 bootloader image
$ wget https://dl.radxa.com/rock5/sw/images/loader/rock-5b/release/rock-5b-spi-image-g49da44e116d.img

# 下載空白 image zero.img,在正式寫入 bootloader 前清空 SPI 使用
$ wget https://dl.radxa.com/rock5/sw/images/others/zero.img.gz

# dd 清空 SPI,約需等三分鐘
$ sudo dd if=zero.img of=/dev/mtdblock0

# dd 正式寫入 bootloader,也需等三分鐘
$ sudo dd if=rock-5b-spi-image-g49da44e116d.img of=/dev/mtdblock0

# sync 一下,強制所有資料都正確寫入,沒有 cache 在記憶體中
$ sync

詳細說明請參考 Rock 5B SSD 效能實測與資料搬移 – 寫入 bootloader

Rock 5 透過 micro SD Card / eMMC 開機進入 Linux 後跑 dd

方法如同前面 Rock 5 透過 micro SD Card 開機進入 Linux 跑 dd image 到 eMMC,詳細如下:

  1. 透過前述方法將系統寫入 micro SD Card
  2. 將 SSD 和 micro SD Card 都插入 Rock 5
  3. micro SD Card boot 進入 linux,輸入 lsblk 確定 SSD 所在路徑 (通常為 nvme0n1
  4. 使用 dd 指令,將 linux 系統映像檔寫入 SSD 中
  5. 將 bootloader 寫入 SPI(若還沒寫入過)
  6. 關機斷電,拔掉 micro SD Card,再次上電,即可使用 SSD 開機

一樣也需考慮兩個問題

  • linux 系統來源映像檔要怎麼放入 Rock 5 中
  • 需將 bootloader 寫入 SPI

系統映像檔放入的方法如同前述,透過 USB 隨身碟或在 Rock 5 上直接下載。
bootloader 寫入可以在第四步將系統映像 dd 入 SSD 後,透過前述指令將 bootloader dd 入 SPI 即可。

總結

以上兩大寫入系統映像方法與五種情境分享給大家。無論哪一種情境,手上有張 micro SD Card 都能萬無一失。希望能幫助到大家!

延伸閱讀

Rock 5B SSD 效能實測與資料搬移
Rock 5B RK3588 開箱測試!
如何將 Debian 從 Buster 升級至 Bullseye?
ock 5B RK3588 終於開放預購!$79 美金起!

Written by J
雖然大學唸的是生物,但持著興趣與熱情自學,畢業後轉戰硬體工程師,與宅宅工程師們一起過著沒日沒夜的生活,做著台灣最薄的 intel 筆電,要與 macbook air 比拼。 離開後,憑著一股傻勁與朋友創業,再度轉戰軟體工程師,一手扛起前後端、雙平台 app 開發,過程中雖跌跌撞撞,卻也累計不少經驗。 可惜不是那 1% 的成功人士,於是加入其他成功人士的新創公司,專職開發後端。沒想到卻在採前人坑的過程中,拓寬了眼界,得到了深層的領悟。