sparse vnd image for NetBSD/XEN3PAE_DOMU

2012/3/6追記: sparseイメージのvndで作ったファイルシステム に大量にファイル書き込みするとハングアップするなあ。でも、sparseなvndを dom_Uで使っている分には順調に使える感じだ。

2012/4/9追記: sys/dev/vnd.c 1.220 で直ったようだ。

Linux on Xen では前からできていたことだが、NetBSDでは sparse(穴開き)ファイルをvndイメージにできなかった。既に5.1_STABLEで sparseファイルが扱えるようになったので、でっかいイメージファイルを 気楽に作りまくり。

dd if=/dev/zero of=domU.img seek=10239 bs=1m count=1

これで10GBのsparse fileができる。sparse fileの見かけ容量は ls で、 実容量は du で確認できる。

ls -lFh domU.img
-rw-r--r--  1 yuuji  wheel   10G Mar  4 22:04 domU.img
du -sh domU.img
1.0M    domU.img

このイメージにNetBSD/XEN3PAE_DOMU 6.0_BETAをインストールすると だいたいこんな感じ。

du -sh domU.img
845M    domU.img

さて、sparseなディスクイメージファイルをsparse なままコピーするにはどうしたらよいか。BSD tar を使うか dd に conv=sparse オプションを指定するかどちらかで。dd の場合はこう。

dd if=domU.img of=clone.img conv=sparse

sparseファイルでファイルシステムを構築すると利用効率いいねぇ。