覚え書き
RaspberryPi4(8GB)にUbuntu Server focal(20.04)を構築。
マイクロSDカードにRaspberryPiOSを、USB接続SSDにUbuntuをRaspberry Pi Imagerで初期設定を変更してから書き込む。
Raspberry Pi Imager でOSを選択すると右下に表示される歯車アイコンをクリック。
hostnameを変更し、Enable SSHにチェックを付ける。
Usernameとパスワードを設定。(ユーザーネームは8文字以上を推奨らしい)
今回の環境はWiFiなのでSSID等をセット。
ロケーションを変更
USB接続SSDに書き込んだUbuntuの場合、それだけでは起動しないので、潔くマイクロSDカードで起動。起動後にUSB接続してUSBブートできるよう手を加える。
まずは現状把握。次のコマンドでブロックデバイスを一覧表示する。
http://manpages.ubuntu.com/manpages/impish/ja/man8/lsblk.8.html
1 |
lsblk |
実行結果は次のとおり。
1 2 3 4 5 6 7 |
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 111.8G 0 disk tqsda1 8:1 0 256M 0 part mqsda2 8:2 0 3G 0 part mmcblk0 179:0 0 14.7G 0 disk tqmmcblk0p1 179:1 0 256M 0 part /boot mqmmcblk0p2 179:2 0 14.5G 0 part / |
sda : プライマリー SCSI または SATA チャネル上の最初のデバイス。
mmc = Multi Media Card
mmcblk = MMC (SD含む) のブロックデバイス
RPiの方にディレクトリを作成
1 2 |
sudo mkdir /mnt/boot sudo mkdir /mnt/writable |
USB接続SSDの各ファイルシステムをマウントする(一時的な紐付け)
/dev は物理ハードウェア。
sda1とsda2をマウントポイント /mnt/boot と /mnt/writable にマウントする。
1 2 3 |
sudo mount /dev/sda1 /mnt/boot sudo mount /dev/sda2 /mnt/writable lsblk |
結果は次の通り
1 2 3 4 5 6 7 |
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 111.8G 0 disk tqsda1 8:1 0 256M 0 part /mnt/boot mqsda2 8:2 0 3G 0 part /mnt/writable mmcblk0 179:0 0 14.7G 0 disk tqmmcblk0p1 179:1 0 256M 0 part /boot mqmmcblk0p2 179:2 0 14.5G 0 part / |
/mnt/boot
と/mnt/writable
の中のファイルを書き換えるスクリプトは次の通り。
1 |
sudo curl https://raw.githubusercontent.com/TheRemote/Ubuntu-Server-raspi4-unofficial/master/BootFix.sh | sudo bash |
https://github.com/TheRemote/Ubuntu-Server-raspi4-unofficial/blob/master/BootFix.sh
1 2 3 4 5 6 7 8 9 10 11 |
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 8650 100 8650 0 0 13536 0 --:--:-- --:--:-- --:--:-- 13557 Found writable partition at /mnt/writable Found boot partition at /mnt/boot Decompressing kernel from vmlinuz to vmlinux... Kernel decompressed Updating config.txt with correct parameters... Creating script to automatically decompress kernel... Creating apt script to automatically decompress kernel... Updating Ubuntu partition was successful! Shut down your Pi, remove the SD card then reconnect the power. |
マウントを解除する
1 2 |
sudo umount /mnt/boot sudo umount /mnt/writable |
1 2 3 4 5 6 7 |
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 111.8G 0 disk tqsda1 8:1 0 256M 0 part mqsda2 8:2 0 3G 0 part mmcblk0 179:0 0 14.7G 0 disk tqmmcblk0p1 179:1 0 256M 0 part /boot mqmmcblk0p2 179:2 0 14.5G 0 part / |
マイクロSDカードを取り出して 再起動する(USBブート)。
起動後に lsblkコマンドを実行した結果は次の通り。
1 2 3 4 5 6 7 |
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 57.5M 1 loop /snap/core20/1332 loop1 7:1 0 60.7M 1 loop /snap/lxd/21843 loop2 7:2 0 37.7M 1 loop /snap/snapd/14982 sda 8:0 0 111.8G 0 disk tqsda1 8:1 0 256M 0 part /boot/firmware mqsda2 8:2 0 111.6G 0 part / |