Jetson nano 用MicroSD卡當開機碟與主要磁碟,有個缺點就是太慢跟太小,
現在不論是USB隨身碟,或是USB SSD HDD等USB介面的儲存裝置非常普遍,
速度與大小都可能比MicroSD卡還好,也比較不會有接觸不良的問題,
所以這邊把用USB隨身碟當作主要開機碟的做法做個紀錄與說明。
這裡不嘗試說明jetson nano與ubuntu系統的整個開機機制與流程等複雜內容,
只是單純的說明如何做到而已。
開始之前要先安裝必要的工具與程式,當然,已經有前人寫好放在github上,
我們只要取用就行了,先安裝相關的工具:
$ git clone https://github.com/JetsonHacksNano/rootOnUSB
$ cd rootOnUSB
先複製好rootOnUSB相關的工具下來,然後切換到相對的目錄下。
第一步:
$ ./addUSBToInitramfs.sh
第二步:
製作一個EXT4格式的USB碟。
最快的方式就是把隨身碟插入jetson nano,開啟檔案後,點選USB隨身碟,按滑鼠右鍵,
選擇格式化,類型要選EXT4,儲存區名稱隨你喜好,但別太長又太麻煩,後面可能會用到。
格式化點下去就會將USB碟格式化成EXT4的格式了。
第三步:
複製相關檔案到USB隨身碟上,執行指令:
$ ./copyRootToUSB.sh -p /dev/sda1
註:如果你只有插一個USB碟上去,那它的磁碟代碼就是sda1,如果你有多個USB碟插在上面,
那就要對應到正確的開機USB碟才行。
不建議一開始就插一堆USB隨身碟上去,很容易搞死自己。
這個過程需要一些時間,也跟你的USB裝置的速度有關,如果是SSD或是USB3.0高速隨身碟的話,
速度會快很多。
第四步:
修改 /boot/extlinux/extlinux.conf 這個檔案的內容。
用你常用跟喜歡的文字編輯器去修改,我是用mc習慣了繼續用,參考以下範例:
先註掉 INITRD /boot/initrd 這一行,改成:
INITRD /boot/initrd-xusb.img
將開機img改成USB碟。
再註掉 APPEND 那一行,改成:
APPEND ${cbootargs} root=/dev/sda1 rootwait rootfstype=ext4
這裡是指定開機碟的位置,可以用USB碟的UUID,儲存區名稱,或是裝置代號。
我個人直接用 /dev/sda1 ,簡單好記。
改好後存檔離開。
最後就是重開機啦,一切順利的話就會看到USB碟的指示燈閃爍讀取,那就大功告成了。
需要詳細步驟跟修改內容的話,可以參考底下原文說明網頁:
https://www.jetsonhacks.com/2019/09/17/jetson-nano-run-from-usb-drive/
可以從USB碟開機不表示可以移除掉SD卡,拿掉SD卡就會發現開不了機啦,這點很重要,一定要說明一下。