私はアルファベット順に後続のファイルの構成をオーバーライドするnetplanの機能を利用しようとしていますが、そのファイルが別のマウントポイントから来ると、すべてが失敗します。
/etc/netplan/01-primary.yaml
いくつかのインターフェイスを含む仮想マシンを作成し、/etc/netplan/02-local.yaml
(デフォルトでは「dhcpを使用」)などのファイルを使用して合理的なデフォルトを設定しました。その部分は素晴らしい作品です。しかし、私が達成したいことは任意に選択できるドライブマウント。
そのために、/etc/fstab
次の内容を含むマウントポイントを追加しました。
/dev/vdb /mnt/config ext4 defaults,nofail,x-systemd.device-timeout=10,x-systemd.before=systemd-networkd.service 0 0
次に、/etc/netplan
そのポイントを指すシンボリックリンクを新しい設定ファイルに追加しますln -s /mnt/config/netplan/11-primary.yaml /etc/netplan/11-primary.yaml
。
最初の問題は、ドライブが存在せずマウントされていない場合、起動時にNetplanビルド全体が失敗し、インターフェイスがないことです。エラーレポートnetplanへの不足しているシンボリックリンクについて)。私は単に/mnt/config
。実行しnetplan generate
てnetplan apply
起動すると、すべてのインターフェイスが正しく設定されます。
私はさまざまなx-systemd.before
目標を試してみましたが、そのうちの何も動作しませんでした。正しく機能させる方法はありますか?マウントを構成せずに仮想マシンを起動できるように、マウント構成はオプションでなければなりません。
答え1
私は今日この問題に苦しんでおり、これまでに2つの主な解決策を決定しました。
- cronを使用して実行します
netplan apply
が、@reboot
方法があるようです。警告が多すぎます。それに付いています。 - インストール後に実行するsystemdデバイスを作成します
netplan apply
。
私はシステム単位のファイルであるオプション2を選択しました。
[Unit]
Description=Execute netplan apply after mount
After=multi-user.target mnt.mount
[Service]
Type=oneshot
ExecStart=/bin/sh -c "netplan apply"
[Install]
WantedBy=multi-user.target
以下に保存し/etc/systemd/system/network-after-mount.service
て続行してくださいsystemctl enable network-after-mount
。テストのために再起動してください。
/mnt/
私たちの場合、追加のnetplan設定ファイルを含む内部USBスティックが以下にインストールされています。ドライブが別のパスにマウントされると、結果のシステムインストールデバイスの名前が異なるように指定されます。インストール単位を一覧表示できます。
systemctl list-units --type=mount
そしてどちらが正しい目標かを決定します。