2019年12月18日水曜日

Raspberry Pi4 Ubuntu 19.10 ものぐさUSB HDDブート

この記事でRaspberry Pi4の技適モデルが出たのを知ったので、勢いで買ってみた。

買って気がついた事実。
いわゆるBIOSやUEFI的にブートデバイス選択できなかった。
浅はかな自分で悲しくなる・・・

ここからのリカバリーをしたいので、設定してみた。

インストール


最近はUbuntuユーザーなのでRaspberry Pi4向けのUbuntu Server 19.10 for RP4てきなをSDカードインストール!

とりあえず、起動までは他のページでもあるので省略。

そしてUSB差し込む!
が、そもそもカーネルのバグでラズパイが4GBメモリ場合、USBを認識しない、とのこと。
まじ?

とりあえずインストールしてsshでログイン。
ちゃんとお家のDHCPを管理してれば余裕。

で、調べたらカーネルアップデートすりゃ改善するらしい。
パッケージ直しておいてほしいよねっと。

apt update
apt dist-upgrade

で、再起動

reboot

これでUSB HDD(キーボードとかも)を差し込むと認識してくれる。

コピー先パーテーションの準備


USB HDD上のOSパーテーションを準備しましょう。
とりあえず初期化しとこ。
対象のパーテーションは確認を忘れないように。

mkfs.ext4 /dev/sda1

で、マウントして

mount -t ext4 -o defaults /dev/sda1 /mnt/

rsyncでSDカードの内容を全コピ

rsync -a --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/

exclude忘れると永遠に終わりません。。

この状態まで来ればあとはブートでどこを読み込むか設定を変更するだけ

ブート設定の変更


まず、起動したいパーテーションのPARTUUIDを調べる

blkid

取得できたPARTUUIDで下記の2ファイルがを変更します。

/boot/firmware/btcmd.txt
/boot/firmware/nobtcmd.txt

変更する箇所はroot=LABEL=writableです。

< net.ifnames=0 dwc_otg.lpm_enable=0 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait
---
> net.ifnames=0 dwc_otg.lpm_enable=0 console=tty1 root=PARTUUID=b11b7ad2-84f5-4a48-b13c-3360129e4ac5 rootfstype=ext4 elevator=deadline rootwait

で、両方のファイルを変更して再起動したらUSB HDDを/として読み込んでくれます。

ものぐさなので無料でもらった8GB SDカードをそのまま運用します。
読み込みだけなら簡単には死なないでしょ。多分。