2010年01月28日
ARMのQEMUにDebianをnetinstallする
以下の操作は全てUbuntu 9.04 (x86_64)で行いました。
netinstall用のイメージとカーネルをダウンロード
$ wget http://ftp.jp.debian.org/debian/dists/stable/main/installer-armel/current/images/versatile/netboot/initrd.gz $ wget http://ftp.jp.debian.org/debian/dists/stable/main/installer-armel/current/images/versatile/netboot/vmlinuz-2.6.26-2-versatile
前回はなぜうまくいかなかったかというと、数年前のページに書いてあったURLからダウンロードしたので、それはetch用のものだったためでした。etchは古いのでそれのネットインストール用のリポジトリはもう閉じられているようです。上記のURLならば、"stable" 用なので、新しいリリースがでたときにはそれに応じて内容が差しかわると思います。
空の仮想ハードディスクを作成
$ qemu-img create -f qcow2 hda.img.qcow2 10G
インストール実行
$ qemu-system-arm -M versatilepb \ -kernel vmlinuz-2.6.26-2-versatile \ -initrd initrd.gz -hda hda.img.qcow2 \ -append "root=/dev/ram"
起動用ファイルを仮想ハードディスクから取り出す
起動のためにinitrdが必要です。ルートファイルシステムをマウントするのに必要なドライバがモジュールになっているためです。
そのファイルは /boot にあるので、以下の手順で取り出します。
また、ルートファイルシステム内にあるカーネルモジュールとカーネルのバージョンに不整合があるとまずいので、カーネルのイメージも一緒に取り出します。
この操作はWindowsではできなくて、Linuxで行う必要があります。
$ sudo qemu-nbd --connect=/dev/nbd0 hda.img.qcow2 $ sudo mount /dev/nbd0p1 /mnt $ cp /mnt/boot/initrd.img-2.6.26-2-versatile . $ cp /mnt/boot/vmlinuz-2.6.26-2-versatile . $ sudo umount /mnt $ sudo qemu-nbd --disconnect /dev/nbd0
起動
$ qemu-system-arm -M versatilepb \ -kernel vmlinuz-2.6.26-2-versatile \ -initrd initrd.img-2.6.26-2-versatile \ -hda hda.img.qcow2 \ -append "root=/dev/sda1"
hda.img.qcow2, vmlinuz-2.6.26-2-versatile, initrd.img-2.6.26-2-versatile をWindowsにコピーすれば、Windows上でビルドしたqemu-system-arm を使ってWindows上で起動することができます。
こちらのページを参考にさせていただきました。
(2010.2.23 追記)
デスクトップのインストール
上記の手順の中でnetinstallの途中のメニューでデスクトップ環境を選択するとOpenOfficeも含んだGNOMEのGUIを動かすことができます。(インストールに2時間くらいかかります。)
ところが、私の環境ではなぜかXサーバの起動に失敗してしまいました。いろいろ調べた結果、以下の一ヶ所の修正でうまくいくようになりました。
--- /etc/X11/xorg.conf.org 2010-02-23 14:36:24.000000000 +0900 +++ /etc/X11/xorg.conf 2010-02-23 14:37:11.000000000 +0900 @@ -29,6 +29,7 @@ Section "Device" Identifier "Configured Video Device" + Driver "fbdev" Option "UseFBDev" "true" EndSection