
Ubuntu マシン内にインストールされている仮想ボックスのインターフェイスを設定したいのですが、手動で作成すると次のように動作します。
vboxmanage hostonlyif create
vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1
ifconfigを確認すると、次のようになります:
これらの変更が再起動後も維持され、システム起動時に自動的に設定されるようにします。そのために私が行ったことは次のとおりです。
sudo mkdir /opt/systemd/
次に
sudo mkdir /opt/systemd/
、
sudo nano /opt/systemd/vboxhostonly
次のコードをファイルにコピーします。
#!/bin/bash
vboxmanage hostonlyif create
vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1
次に、Ctrl + X で終了し、Y で保存し、Enter でファイルを書き込みます。
次にファイルを実行可能にします
cd /opt/systemd/ then sudo chmod a+x vboxhostonly
私はサービスを作り
sudo touch /etc/systemd/system/vboxhostonlynic.service
次に、次のように入力してファイルを編集しますsudo nano /etc/systemd/system/vboxhostonlynic.service
。
Description=Setup VirtualBox Hostonly Adapter
After=vboxdrv.service
[Service]
Type=oneshot
ExecStart=/opt/systemd/vboxhostonly
[Install]
WantedBy=multi-user.target
次に、Ctrl + X で終了し、Y で保存し、Enter でファイルを書き込みます。
ここで、サービスをインストールし、起動時に読み込まれるようにするには、次のように入力します。
systemctl daemon-reload
systemctl enable vboxhostonlynic.service
しかし、マシンを再起動するとインターフェースが表示されません。助けていただけないでしょうか?
答え1
スクリプトbash
は を見つけることができませんvboxmanage
。 はvboxmanage
スクリプトの 内のどのディレクトリにも存在しません。 ( )$PATH
へのフルパスを使用してみてください。ただし、環境のさらに多くの部分をスクリプトに移動する必要があるかもしれません。vboxmanage
type -p vboxmanage
スタートアップ スクリプトを通じて実行されるジョブは、systemd
デスクトップにあるのと同じランタイム環境では実行されません。systemd
スタートアップ スクリプトは として実行されますroot
。PATH
からの変更やその他の環境変数設定は、ジョブ~/.bashrc
に自動的には反映されませんsystemd
。たとえば、 は存在しない$DISPLAY
ため、GUI プログラムは特別な処理 ( を参照) が必要ですman xhost
。その他の必要な環境変数にもヘルプが必要な場合があります。
echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias
それぞれの環境での結果を確認します 。