systemd-nspawn を使用したシステム設定

systemd-nspawn を使用したシステム設定

起動する前に、systemd-nspawn を使用して「chroot」インストール (この場合は debootstrap を使用した Debian) をセットアップできますか? つまり、無人インストールとセットアップです。

キーマップ、ホスト名、場合によってはタイムゾーンとロケールを設定する必要があります。また、hostnamectl、localectl、timedatectl などの systemd ツールを使用したいと思います。

それは可能でしょうか、またその方法はありますか、それとも設定ファイルを使用する必要がありますか? それらは systemd によって認識されますか? たとえば、/etc/hostname にホスト名を設定した場合、それは適切に認識されますか? キーマップも同じように設定できますか?

答え1

出来ますか

はい

私はnspawnでDebianを実行しました。うまくいきました素晴らしい最小限のインストールで。

反対に、デスクトップ インストールでこれを行う場合は、回避すべき小さな問題が 1 つまたは 2 つ発生することを想定する必要があります。

設定ファイルを使用すべきでしょうか? systemd によって認識されるのでしょうか? たとえば、/etc/hostname にホスト名を設定した場合、適切に認識されますか?

/etc/hostname は間違いなく機能し、systemd によってサポートされており、まさにhostnamectl編集するものです。一般的に、ここで何を心配しているのかはわかりません。Debian Jessie はデフォルトで systemd を使用するため、Debian Jessie 用に設定方法に関するドキュメント (インストール ガイドの debootstrap 付録など) はすべて systemd で機能するはずです。(ただし、その付録はスケッチのようなもので、無人で実行する方法を示していません)。


あなたのおっしゃることからすると、 にも興味があるかもしれませんsystemd-firstboot。私はそれを使ってみたことはありませんし、いくつかの点で制限があるという理解ですが、参考になるかもしれません。

systemd-nspawn --bootいずれにしても、systemd-firstboot で使用されるものと同様のサービス ファイルを追加して、を使用する必要があると思います。システムを起動しないと、たとえばhostnamectlは機能しません... スクリプトが何らかの方法で終了したら、システムをシャットダウンする必要もあります。

注目すべき問題の 1 つは、ネットワーク サービス (avahi、cups など) がインストールされている場合、--net-vethホスト ネットワーク サービスとの競合を避けるために、nspawn を または同等の で実行する必要があることです。この時点でネットワーク アクセスを取得するには (たとえば、さらにパッケージをインストールする場合)、インターフェイスに DHCP クライアントを設定しますhost0

関連情報