ふるた技工所(てっこうしょ)

2017/01/05(木)14:21

qemu-nbd の vhd ファイル 136Gbyte 制限は最新のソースでは解消されている - インストールせずローカルでビルドしたバイナリを実行で回避可

ソフト開発日誌(882)

qemu-nbd (Network Block Device mount/unmount) にある vhd ファイルが 136Gbyte まで(137Gbyte までとも言われる)の容量に制限される問題は最新の QEMU では解消されていた。ソースを弄らず解決できる。 QEMU のダウンロードページに示されている通りに、QEMU のソースリポジトリを git clone して build する。install するつもりが無い場合は prefix は適当に --prefix=/usr/local で良い。raspberry pi3 上では libfdt-dev が無いので $ sudo apt-get install libfdt-dev をしてから $ ./configure --prefix=/usr/local; make -j 並列数 する。他に無いライブラリが有ったとして $ sudo apt-get install 無いライブラリ-dev でインストールしていけば良い。 raspberry pi3 上では make -j 4 でも 2 ~ 3 時間はかかるだろう。 block/vpc.c:vpc_open() 関数内の次のあたりが、vhd ファイルを CHS 制限付きで開くか、32bit sector (約 2Tbyte 制限)で開くか決めているロジックに見える。 use_chs = (!!strncmp(footer->creator_app, "win ", 4) &&           !!strncmp(footer->creator_app, "qem2", 4) &&           !!strncmp(footer->creator_app, "d2v ", 4) &&           !!strncmp(footer->creator_app, "CTXS", 4) &&           !!memcmp(footer->creator_app, "tap", 4)) || s->force_use_chs; 構築したバイナリはインストールしなくても、そのまま $ sudo ./qemu-nbd -c /dev/nbd0 virtual-pc-hdd0.vhd の様にして実行できる。NBD (Network Block Device) の問題だけ解決したかったのでインストールはしなかった。 ソースは 2 日読んだ。解決はビルド 3 時間だった。

続きを読む

このブログでよく読まれている記事

もっと見る

総合記事ランキング

もっと見る