3

Dockerコンテナで、完全なPC Linuxイメージをゼロから作成しています(debootstrapおよび他の多くのツールを使用)。

プロセスの最後に、qemu-img convert -f raw -O vdi infile.raw outfile.vdiVirtualBox に適したイメージ ファイルを生成するために使用しています。

これは本質的に機能します-ディスクはVirtualBox内で起動します。

ただし、新しいイメージを作成して置き換える outfile.vdiと(もちろん、VM の電源をオフにして)、VirtualBox は、UUID が VirtualBox メディア レジストリに格納されているものと一致しないため、ディスク イメージに問題があると文句を言います。

VM を再起動できるように、VirtualBox GUI を使用して VM 設定でファイルを削除して再度追加する必要があります。

UUIDファイルに直接保存されている(ランダムな)ものがあると思い.vdiますが、固定UUIDを手動で指定する方法が見つかりませんでしたqemu-img.

どうすればこの問題を解決できますか? おそらく、別の VirtualBox と互換性のあるディスク フォーマットの方がうまく機能するでしょうか?

重要な場合: これはすべて Windows ホストで発生します。

4

1 に答える 1

0

私の場合、ここでの答え:仮想ボックスでUUIDを変更する方法が役立ちました。私はこのようにします:

  1. 問題のVBoxManage internalcommands sethduuid my-drive.vdiドライブで発行します
  2. 出力 UUID 値を使用して、VMs.vboxファイルで置き換えます (私の場合は 2 か所)。

VirtualBoxを再起動して「ライブ」で実行しようとしなかったので、あまり良い方法ではないかもしれませんが、この回答が誰かに役立つことを願っています。

もちろん、スクリプトで自動的に実行することもできます。

また、これは uuid をパラメーターとして に与えることができると言っていますVBoxManage internalcommands sethduuid <UUID> <Yourdrive>が、私のタスクは頻繁なものではないので試していません。そこに与えられたスクリプトでそれを完全に行う方法。

于 2016-04-16T17:06:24.160 に答える