Virtualbox VMをヘッドレスで実行するためのサービスをインストールしようとすると問題が発生する

Virtualbox VMをヘッドレスで実行するためのサービスをインストールしようとすると問題が発生する

私の目標は、ホスト マシン (Ubuntu 10.04) を起動および停止するときに、Ubuntu がヘッドレス VirtualBox VM を正常に起動および停止できるようにすることです。

私は脚本によって提供されたQuadir Kareemullah のページ

これはスクリプトの LSB コメント ヘッダーです (依存関係を減らすために、「Required-Start」から vboxnet を削除しました)。

### BEGIN INIT INFO
# Provides:          vboxsvc
# Required-Start:    $local_fs $remote_fs vboxdrv 
# Required-Stop:     $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      S 0 1 6
# Short-Description: VirtualBox Service
# Description:       VirtualBox Service to startup and shutdown Virtual Machines
### END INIT INFO

Quadir の説明に従って、/etc/init.d/ で 'vboxsvc' を見つけて実行しました:

$sudo update-rc.d vboxsvc

これにより、ランレベルのリンクが作成されました。たとえば、ランレベル 2 の場合:

$ls -l /etc/rc2.d/
...
lrwxrwxrwx 1 root root  17 2010-11-03 20:02 S20vboxdrv -> ../init.d/vboxdrv
lrwxrwxrwx 1 root root  25 2010-11-03 20:03 S20vboxweb-service -> ../init.d/vboxweb-service
lrwxrwxrwx 1 root root  17 2010-11-11 21:43 S21vboxsvc -> ../init.d/vboxsvc
...

サービスを手動で開始|停止する場合:

$sudo /etc/init.d/vboxsvx start

期待通りに動作します。

「service --status-all」を実行するとサービスはリストに表示されませんが、sysv-rc-conf --list を使用すると表示されます。

コンピュータを起動しても自動的には開始されません。一方、再起動またはシャットダウンすると、サービスは自動的に停止します。何らかの理由で、システムの起動時にリンク /etc/rc2.d/S21vboxnet が実行されていないか、何か他のことが起きています。

Ubuntu では現在 Upstart が主流であることは知っていますが、SysV init もまだサポートされていますよね?

編集:問題の解決に近づいていると思います。解決策は、ホーム ファイル システムを暗号化することと関係があると思います。init プロセスが対応する起動スクリプトを実行し、「sudo -H -u myuser VBoxManage myVirtualMachine -type vrdp > /dev/null」を実行しようとすると、myuser としてまだログインしていないため、ホーム ファイル システムがマウントされていないため、myVirtualMachine のデータ (暗号化されたファイル システムにある) にアクセスできません。

答え1

思った通り、この問題はホーム パーティションが暗号化されていることが原因でした。

私は結局これに従いました質問暗号化を解除します。

私のアドバイスとしては、何をしているのかよく分かっていない限り、Ubuntu のインストール時にホーム パーティションを暗号化しないことです。暗号化する場合は、ログインしていない限り、ホーム ディレクトリの下にあるすべてのものが他のユーザー (ルートを含む) に対してロックされることに注意してください。

答え2

ホーム フォルダーの暗号化を解除するよりも、VirtualBox を実行するための新しいシステム ユーザーを作成する方がよいのではないでしょうか。

そうすれば、保護が維持され、VM を問題なく起動できるようになります。

関連情報