Jetson nano をUSBドライブからブートできるようにする
本稿はJetoack4.4での手順です。
Jetpack4.6のときのメモはJetson nano をUSBドライブからブートできるようにする(Jetpack4.6) にあります。
SDカードからブートすると、かなりディスクアクセスが遅いのと、ディスク容量を結構喰うので、
USBドライブ(HDD/SSD)からブートできるようにする手順。
例によって、先人の知恵を借りるだけだけど(パクりとも言う)…(^^ゞ
めんどくさそうだったけど、ほとんどスクリプト化されているので、意外と簡単。
git clone https://github.com/JetsonHacksNano/rootOnUSB.git
cd rootOnUSB/
./addUSBToInitramfs.sh
./copyRootToUSB.sh -p «コピー先パーティション»
# 例: ./copyRootToUSB.sh -p /dev/sda1
/boot/extlinux/extlinux.confのバックアップをとっておく
sudo mv /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.org
./diskUUID.sh
→ XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXとして得られる。
sample-extlinux.conf の APPENDの行のUUID部分を以下のように変更する
APPEND ${cbootargs} root=UUID=dc21871e-9db4-434c-98b4-713f55f807eb rootwait rootfstype=ext4
↓↓↓↓↓
APPEND ${cbootargs} root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rootwait rootfstype=ext4
sample-extlinux.confを/boot/extlinux/extlinux.confをコピー
sudo cp sample-extlinux.conf /boot/extlinux/extlinux.conf
リブート完了したらUSBドライブがrootにマウントされていることを確認
mountで確認しても良いけど、いっぱい出てきて鬱陶しいのでdfで。
df -h /
こんな感じで行頭にマウント元が表示される。
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 110G 14G 91G 13% /
USBドライブからブートできるようになっても、SDカードは取り外してはいけない。
u-bootからinitrdをロードするのはSDカードなので。
ということは、apt updateでカーネルアップデートされても古いカーネルが使われちゃうなぁ…
それはそのとき考えよう…
そんなに変わるもんでもないだろう。
u-bootの環境変数見ると、そのままUSBブート出来そうな感じだったけど、
実際にusb startしてみたらエラーになる。
どうやらu-bootにはUSBドライバが入ってないらしい…
そんな環境変数残しとくな!!