monolithic kernel

blktapの仮想デバイスをDom0にマウント

July 09, 2012

    前の記事ではDomUを作ってblktapの動作を確認しましたが、DomUを作らなくてもDom0にマウントしてしまえばよいようなので試してみました。仮想デバイスをいじるだけであれば、DomUのOS部分には用はないのでDom0だけで完結した方が楽ですね。

    なお、blktapにはblktapとblktap2の2バージョンが存在するようです。正直どちらを使っているのかわからないという酷い状況なのですが、例のMatrixやディレクトリ名を見た感じだとblktap2なんだろうと思います。

    イメージ作成

    今回はとりあえずaioを利用します。aioはLinuxのaioを利用してrawイメージを扱う実装です。

    テスト用に適当なイメージを作成してフォーマットしておきます。

    # dd if=/dev/zero of=/path/to/test.img bs=1 count=1 seek=16M
    # mkfs.ext4 -F -q /path/to/test.img

    マウント

    tap-ctlコマンドでblktapデバイスを作成し、それをmountコマンドでマウントします。

    # mkdir /mnt/test
    # mount -t ext4 $(tap-ctl create -a aio:/path/to/test.img) /mnt/test

    アンマウント

    マウント時とは逆にumountしてblktapデバイスを削除すればOKです。

    # umount /mnt/test
    # tap-ctl list
    # tap-ctl destroy -m 0 -p <tap-ctl listで表示されるpid>