NetBSD on KVMでホストとゲストでファイルのやりとり - Qemuで複数ディスクイメージを扱う

ホストOS(Linux)とゲストOS(NetBSD)でファイルのやり取りを行いたい。でも、現状ネットワークが一切使えない*1
ということで、最初はNetBSDのディスクイメージをホストOSでmountしてやればいーじゃん、と思ったのですが、UFS関係はReadOnlyでしかmountできないファックな状態。
ということで、LinuxでもNetBSDでも扱えるFAT(msdosfs,vfat)でフォーマットしたディスクイメージを利用することにしました。
環境は以下の通りです。

ホストでディスクイメージ作ってゲストでマウントするよ

ホストOSで実行

とりあえず、512Mbyteの大きさのディスクイメージを作りますよ。

$ sudo mkfs.vfat -C send.img 524288

これで、send.imgっていうディスクイメージができます。
さて、できたのはいいけど、まず荷物を詰め込んでやらないとダメですね。ってことで、mountしましょう。

# mount -t vfat -o loop send.img /mnt

んで、必要なファイルを書き込んだらアンマウント。

# umount /mnt
kvmに見せる

kvmに見せには、次のようになります。
以下の例では、-hdaにブート用ディスクイメージを、-hdbに先ほど作ったFATなディスクイメージを指定しています。

# qemu-system-x86_64 -hda netbsd.raw -hdb send.img -m 1024

これでブートすれば、ブート画面にデバイスが見えるようになっているはずです。

ゲストOSから見る

以上の作業により、ゲストOSであるNetBSDから/dev以下にデバイスが見えるようになっているはずですので、mountしてやります。

# mount -t msdos /dev/wd1a /mnt

以上の作業により、多少手間ではありますがゲストOSとホストOSとでファイルのやり取りが可能となります。

最後に

ホストとゲストで同時にmountしないようにしましょう。多分、悲しいことになります。
thanks id:kidmin !

*1:QemuPCIエミュレーションがだめっぽい