web-dev-qa-db-ja.com

VirtualBoxを使用して起動する前に、どのようにファイルシステムに書き込むことができますか?

TurnKey Linux 14のドキュメントを読んでいますが、アプライアンスの値をpreseedするには、マシンを初めて起動する前にファイルシステムに値を書き込む必要があると記載されています。

私が考えることができるこれを行う最も明白な方法は、VMをLiveCDで起動し、ファイルを書き込むために問題のファイルシステムをマウントすることです。

VirtualBoxにはこれを行う別の方法が含まれていますか?たとえば、ある種のbashユーティリティを使用して、既存のファイルシステムに外部ファイルを書き込みますか?

VSphereを使用してVMWareでこれを実現する方法があったと思います。そのため、私は質問しています。

3
leeand00

libguestfs tools を使用して、仮想マシンイメージ内のファイルシステムにアクセスできます。

mkdir ~/mnt
guestmount -a /path/to/vm-image.vdi -m /dev/sda1 ~/mnt
… edit files …
fusermount -u ~/mnt

LibguestfsはQEMUを使用します。QEMUはKVMを使用する場合があります。 KVMとVirtualBoxを同時に使用することはできません。VirtualBoxを実行している場合は、VirtualBoxを閉じて、kvmカーネルモジュールがロードされていることを確認するか、QEMUの実行を手配してください。 KVMなし。環境でLIBGUESTFS_BACKEND_SETTINGS=force_tcgを設定することにより、QEMUでKVM(低速ですが、ファイルシステムをマウントしていくつかのファイルを編集するだけでは問題ありません)を回避できます。

これを行って、事前にシードされた値で再配布できるカスタマイズされたTurnKey VMを作成できる場合は、おそらく少し複雑でない別のオプションがあります(一部の場合)。

VMを起動し、最初の起動スクリプトを手動で実行し、必要に応じてpre-seedsファイルを作成します。次に、(RUN_FIRSTBOOT内の)/etc/default/inithooksフラグをリセットして、次回の起動(抽出した仮想アプライアンスのfirstboot)でfirstbootスクリプトを再実行するようにします。

1
Jeremy Davis