デフォルトでは、Techno Timの指示に従ってUbuntu VM用のテンプレートを作成しようとしています。ここで。私とTimの違いは、手動でインストールせずに仮想マシンのIPを取得できるようにqemu-guest-agentもインストールしたいということです。 .imgコマンドを使用して.imgをインポートする前にこれを実行してくださいvirt-customize -a focal-minimal-cloudimg-amd64.img --install qemu-guest-agent
。しかし、残念ながら、これは私のテンプレートに設定したくないコンピュータIDを設定するのに有利です。これでvirt-customize -a focal-minimal-cloudimg-amd64.img --delete /etc/machine-id
/var/lib/dbus/machine-id でも実行でき、タスクを実行して削除します。ただし、残念ながら、このVMから新しいVMを起動している間にマシンIDが存在せず、何らかの理由で/ etcが読み取り専用でマウントされたため、システムは多くのエラーで起動します。この問題を解決する方法はありますか?
virt-customizeを使用してこの問題を解決し、virt-customizeを使用して削除するのではなく、コンピュータIDを削除して再生成して再起動して適用する最初の起動スクリプトをvirt-customizeを介して配置しました。しかし、これは理想的な方法ではないようです。もっと良い方法がありますか?
ベストアンサー1
削除しないでください/etc/machine-id
。代わりに、同様のコマンドを使用して切り取りますtruncate -s 0 /etc/machine-id /var/lib/dbus/machine-id
。machine-id
ファイルが削除されても生成されませんが、空の場合は新しい値で埋められます。
リンク
実際に/etc/machine-idを再生成するには、少なくとも存在する必要があります(空であってもよい)。その後、systemdは/ runの一時的な場所に新しいIDを生成し、/ etc / machine-idをバインドマウントします。 、systemd-machine-id-commit.serviceは、fsが読み取り/書き込み状態になった後に/ etc / machine-idにそれを書き込みます。