Install Ubuntu Server on a Raspberry Pi 2, 3 or 4 にあるSDカードイメージをUbuntuまたはDebian LinuxをインストールしたインテルPCで実行する話です。qemu-user-static と systemd-nspawn を用います。64-bit版で話を進めます。32-bit版でも同様にできるはずです。Raspberry Piディスプレイ出力のハードウェアエミュレーションは無いです。以下すべてインテルPCのUbuntuまたはDebianのrootプロンプトで実行します。
パッケージインストール
apt-get install qemu-user-static systemd-container
で必要パッケージをインテルPCにインストールします。
Raspberry Pi用Ubuntuイメージのダウンロードと展開
Install Ubuntu Server on a Raspberry Pi 2, 3 or 4 から ubuntu-20.04-preinstalled-server-arm64+raspi.img
をダウンロード・展開して /var/tmp
(など)に置きます。このイメージファイルには2つのパーティションがあり、大きさなどを fdisk
コマンドで確認できます。Ubuntu Raspberry Pi server のルートファイルシステムは2番目のパーティションにあります。
loopデバイスのセットアップ
losetup -P -f /var/tmp/ubuntu-20.04-preinstalled-server-arm64+raspi.img
で2番目のパーティションをインテルPCからデバイスファイルとして見られるようにします。こうすると /dev/loop0p1
が1番目のパーティション、 /dev/loop0p2
が2番目のパーティションになります。
マウント
mount /dev/loop0p2 /mnt
でSDカードイメージのルートパーティションがマウントされます。
Raspberry Server のルートプロンプト
systemd-nspawn -D /mnt -a
でUbuntu Raspberry server のルートプロンプトが出ます。パッケージの削除やインストール、設定などをここから行うことができます。
`