VirtualBoxを起動する前にファイルシステムに書き込む方法は?

VirtualBoxを起動する前にファイルシステムに書き込む方法は?

TurnKey Linux 14のドキュメントを読んでいるがデバイス値をプリセットするには、コンピュータが最初に起動する前にファイルシステムにその値を書き込む必要があることが示されています。

私が考える最も明白な方法は、仮想マシンをLive CDから起動し、関連するファイルシステムをマウントしてファイルを書き込むことです。

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

私はvSphereを使用してVMWareでこれを行う方法があると思います。これがまさに私が尋ねる理由です。

答え1

あなたはそれを使用することができますlibguestfsのツール仮想マシンイメージのファイルシステムにアクセスします。

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

LibguestfsはおそらくKVMを使用するQEMUを使用します。 KVMとVirtualBoxは同時に使用できません。 VirtualBoxを実行している場合は、それを終了してkvmカーネルモジュールがロードされていることを確認するか、KVMなしでQEMUを実行する準備をします。LIBGUESTFS_BACKEND_SETTINGS=force_tcgご使用の環境に KVM を設定することで、QEMU が KVM を回避できるようにすることができます (遅いですが、ファイルシステムをマウントしていくつかのファイルを編集するには重要ではありません).

答え2

事前シードされた値に再割り当てできるカスタムTurnKey VMを作成するためにこれを実行する場合(一部の場合)、あまり複雑ではない別のオプションがあります。

仮想マシンを起動し、最初の起動スクリプトを手動で実行し、必要に応じて事前シードファイルを作成します。次に、最初の起動スクリプトが次の起動(抽出された仮想デバイスの最初の起動)で再度実行されるようにRUN_FIRSTBOOTフラグ(から)をリセットします。/etc/default/inithooks

関連情報