起動する前に、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
。