OpenVZ コンテナの起動スクリプト/ファイルはどこにありますか?

OpenVZ コンテナの起動スクリプト/ファイルはどこにありますか?

コンテナを起動すると、いくつかエラーが発生します。

[xxx@centosbuilder1 etc]$ sudo vzctl start 1011
Starting container...
Container is mounted
Adding IP address(es): 10.0.64.23
cp: cannot stat '/etc/conf.d/netcfg': No such file or directory
/bin/bash: line 593: /etc/conf.d/netcfg: No such file or directory
/bin/bash: line 594: /etc/conf.d/netcfg: No such file or directory
A unit file for profile 'venet0' already exists
Setting CPU units: 1000

ディレクトリを作成し、netcfg (ゲスト内) を変更すると、エラーは解消されます。

実際の問題を修正したいです。どのファイルが実行されていますか? 593 行目を見つけて調査したいと思います。

答え1

ドキュメントによると、vzctl startいくつかのアクションスクリプト実行する。しかし、実際のコードより複雑なようです。私が読んだところによると、

  1. コンテナ内で実行されているディストリビューションを、それが作成されたテンプレートの名前から判別します。
  2. コンテナのファイルシステムをマウントし、premount および mount アクション スクリプトをトリガーします。
  3. 仮想環境を作成し、そのリソース(ネットワークとリソース制限)を設定します。そのためには、いくつかのスクリプトを実行するコンテナー内で実行されているディストリビューションに固有のもの — を参照してください/etc/vz/dists/*.conf
  4. 事前起動スクリプトと起動スクリプトを実行します。
  5. initを実行するコンテナー内 ( /sbin/init、、/etc/initまたは のいずれか/bin/init)。

エラーは手順 3 で発生したと思います。実際に実行されるスクリプトの詳細については、 を試してくださいvzctl --verbose --verbose start 1011。それでも情報が不十分な場合は、 を試してくださいstrace -f -e file vzctl start 1011

関連情報