qemu 修行 (3)

導入は昨晩ほったらかしで朝になったら終わってました。ただ、このままでは起動させることはできなくて、/boot に投入されているはずの initrd なイメージとカーネルイメージを取り出す必要があるらしい。
qemu な disk image を mount するために qemu-nbd というコマンドを使うとのこと。man qemu-nbd の出力の一部を以下に引用。

NAME
qemu-nbd - QEMU Disk Network Block Device Server

SYNOPSIS
usage: qemu-nbd [OPTION]... filename

DESCRIPTION
Export Qemu disk image using NBD protocol.

で、ブロックデバイスに、と思ったら以下なエラーが。

$ sudo qemu-nbd --connect=/dev/nbd0 ./hda.img.qcow2 
qemu-nbd: Failed to open /dev/nbd0: No such file or directory
$

modprobe せよ、とか書いてあるドキュメントを確認したのでやってみる。

$ sudo modprobe nbd max_part=8
$ lsmod |grep nbd
nbd           17744 0
$

で、リトライ。

$ sudo qemu-nbd --connect=/dev/nbd0 ./hda.img.qcow2 
qemu-nbd: Failed to bdrv_open './hda.img.qcow2': No such file or directory
$

相対パスじゃ駄目みたい。

$ sudo qemu-nbd --connect=/dev/nbd0 /home/fuga/hda.img.qcow2 
$

成功。デバイスファイルを確認してみるに以下らしい。

$ ls /dev/nbd0*
/dev/nbd0  /dev/nbd0p1  /dev/nbd0p2  /dev/nbd0p5
$

では mount してみます。

$ sudo mount /dev/nbd0p1 /mnt
$ ls /mnt/boot
config-2.6.32-5-versatile  initrd.img  initrd.img-2.6.32-5-versatile  System.map-2.6.32-5-versatile  vmlinuz  vmlinuz-2.6.32-5-versatile
$

カーネルイメージと initrd なナニをコピれば良いのか。

$ cp /mnt/boot/initrd.img-2.6.32-5-versatile .
$ cp /mnt/boot/vmlinuz-2.6.32-5-versatile .

なんか vmlinuz なナニは同名のソレがあったような気もしますがスルーで。あとは /mnt を umount して起動してみれば良いのかな。

$ sudo umount /mnt
$ qemu-system-arm -M versatilepb \
-kernel vmlinuz-2.6.32-5-versatile \
-initrd initrd.img-2.6.32-5-versatile \
-hda hda.img.qcow2 -append "root=/dev/sda1"

それにしても

qemu でデスクトップな debian 動かしてるんですが loadave が 5 程度 (とは言え、ログイン後、徐々に上昇中)。こないだまでの滅茶苦茶に負荷が高くなる挙動は Gnome が原因でしたか (今は Xfce4 使ってます)。
qemu なデスクトップなレスポンス自体は最悪ですが、動作確認ベースだしねぇ。

とりあえず

でびあん導入編はこれで終了ってことにします。元記事だと X サーバが云々という記述がありますがスルーしよ。