ARM CPU用Debian QEMUイメージの作成
最新のARM用Debianインストーラー を使ってQEMU用イメージを作成しようとしたら、インストーラーが途中でエラーで止まって続行不可能だった(2020年10月)ので、QEMU用イメージファイルを作成するシェルスクリプトを https://github.com/emojifreak/qemu-arm-image-builder に作りました。使い方を簡単に紹介します。
インテルPC上で作成する場合、Debian標準インストーラーよりも遥かに高速に作成します。その訳は完全なハードウェアエミュレーションではなく qemu-user-static
によるユーザーモードエミュレーションを用いるからです。ホストOSは Ubuntu や Debian など Debian系Linuxを仮定します。Devuan をインストールするスクリプトも同じ場所にあります。
ダウンロードと設定
github にあるシェルスクリプトをウェブブラウザか git clone https://github.com/emojifreak/qemu-arm-image-builder.git
で保存します。その内の
#!/bin/sh
SUITE=buster # or bullseye sid
ARCH=arm64 # or armhf or armel
IMGFILE=/var/tmp/debian-${SUITE}-${ARCH}.img
LOOPDEV=`losetup -f`
GIGABYTES=10 # total size in GB
SWAPGB=1 # swap size in GB
ROOTFS=btrfs # or ext4
MMVARIANT=apt # or required, important, or standard
NETWORK=systemd-networkd # or ifupdown, network-manager, none
YOURHOSTNAME=arm-guest
KERNEL_CMDLINE='net.ifnames=0 consoleblank=0 rw'
GRUB_TIMEOUT=0
MIRROR=http://deb.debian.org/debian
INITUDEVPKG=systemd-sysv,udev # or sysvinit-core,udev
KEYRINGPKG=debian-archive-keyring
apt-get -q -y --no-install-recommends install binfmt-support qemu-user-static qemu-efi-arm qemu-efi-aarch64 mmdebstrap qemu-system-arm
. ./common-part.sh
の中の以下のシェル変数をカスタマイズします。
-
SUITE
はインストールするDebianのリリース名です。buster
の他にbullseye
,sid
が有効です。リリース名がbuster
以外のときにはpython2.7
を削除しようとするのでもしstretch
以前の古いリリースをインストールしたい場合はcommon-part.sh
末尾でpython2.7-minimal
を削除している行をコメントアウトして下さい。 -
ARCH
はARM CPUの種類で64bitならarm64
、32bitならarmhf
を選びます。 -
MMVARIANT
はインストールするパッケージの範囲で apt < required < important < standard の順に範囲が広がります。よくわからなければstandard
を選ぶのが無難です。 -
NETWORK
はネットワーク設定に用いるDebianサービスです。後でデスクトップ環境をインストールするならnetwork-manager
が無難でしょう。
apt-get -q -y --no-install-recommends install binfmt-support qemu-user-static qemu-efi-arm qemu-efi-aarch64 mmdebstrap qemu-system-arm
の行はシェルスクリプトの実行に必要なパッケージをインストールしていますが、一度インストールしたらコメントアウトして問題ありません。
シェルスクリプトの実行
sudo sh build-arm-debian-qemu-image.sh
とするとQEMU用イメージファイルの作成が始まりますが、しばらくすると以下のようにロケールやタイムゾーンの設定が質問されます。
ロケールの設定
以下の画面ではロケールを質問されています。例では ja_JP.UTF-8
を選んでいます。
次ににシステムの標準ロケールに ja_JP.UTF-8
を選んでいます。
時間帯の設定
次に時間帯を聞かれるので Asia → Tokyo と選びます。
キーボードの選択
次にキーボード配列の選択を聞かれます。最初の項目はPC-105を選びます。
次に英語ばかりしか選択肢が出ない以下の画面では Other を選びます。
その後は2回続けて Japanese を選びます。
その後は好きなように選びます。
rootパスワードの設定
次に以下の画面でrootパスワードを聞かれるので好きなように設定します。
一般ユーザーは何も作成されないので、必要ならrootでログインした後にadduser
などで作成します。
起動用コマンドのお知らせ
最後に作成したQEMUイメージを起動するために必要なコマンドの説明が表示されます。下記スクリーンショットのハイライトした部分です。これはホストCPUとゲストCPUの組み合わせで色々変わります。
デスクトップ環境のインストール
もしデスクトップ環境が必要なら起動後にrootでログインして apt-get install tasksel; tasksel
として以下の tasksel
を起動し、好きなデスクトップ環境を選択します。
virt-manager
を用いた起動
スクリプト最後に通知されるコマンドで起動しても構いませんが、よりユーザーフレンドリーな virt-manager
を用いる手順を紹介します。
virt-manager
のインストール
apt-get --install-recommends install virt-manager
でインストールします。
対象ARM CPUの選択
作成したイメージファイルを /var/lib/libvirt/images
に移動したあとにvirt-manager
を起動するとエミュレーションするCPUの選択画面になります。64bit ARMならaarch64
、32bit ARMなら armv7l
を選択します。armv7l
を選ぶ場合 https://github.com/virt-manager/virt-manager/issues/174 にあるパッチを手動であてる必要があるかも知れません。また「既存のディスクイメージをインポート」を選択します。
イメージファイルの選択
次の画面では作成したイメージファイルを選択します。またOSを適切に選択します。そのあとはデフォルト選択肢を選べば普通に起動できます。
Author And Source
この問題について(ARM CPU用Debian QEMUイメージの作成), 我々は、より多くの情報をここで見つけました https://qiita.com/kakinaguru_zo/items/81cee37a432756a9393b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .