systemd-networkd 経由で静的 IP を設定しようとしましたが、すべてうまくいきました。カスタム ファイルを削除してデバイスを再起動した後、eth0 と wlan0 の両方が起動しません。デバッグ ログを確認して、DHCP からアドレスが再度取得されることを期待していました。
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_33 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=12 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: Got message type=method_return sender=org.freedesktop.DBus destination=:1.10 path=n/a interface=n/a member=n/a cookie=1 reply_cookie=1 signature=s error-name=n/a error-message=n/a
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: Bus bus-api-network: changing state HELLO → RUNNING
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: Got message type=signal sender=org.freedesktop.DBus.Local destination=n/a path=/org/freedesktop/DBus/Local interface=org.freedesktop.DBus.Local member=Connected cookie=4294967295 reply_cookie=0 signature=n/a error-name=n/a error-message=n/a
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: Got message type=signal sender=org.freedesktop.DBus destination=:1.10 path=/org/freedesktop/DBus interface=org.freedesktop.DBus member=NameAcquired cookie=2 reply_cookie=0 signature=s error-name=n/a error-message=n/a
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: Got message type=signal sender=org.freedesktop.DBus destination=:1.10 path=/org/freedesktop/DBus interface=org.freedesktop.DBus member=NameAcquired cookie=3 reply_cookie=0 signature=s error-name=n/a error-message=n/a
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: Got message type=method_return sender=org.freedesktop.DBus destination=:1.10 path=n/a interface=n/a member=n/a cookie=4 reply_cookie=2 signature=u error-name=n/a error-message=n/a
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: Successfully acquired requested service name.
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: Got message type=method_return sender=org.freedesktop.DBus destination=:1.10 path=n/a interface=n/a member=n/a cookie=5 reply_cookie=3 signature=n/a error-name=n/a error-message=n/a
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: Match type='signal',sender='org.freedesktop.login1',path='/org/freedesktop/login1',interface='org.freedesktop.login1.Manager',member='PrepareForSleep' successfully installed.
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: eth0: Link state is up-to-date
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: eth0: found matching network '/lib/systemd/network/80-wired.network'
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: Setting '/proc/sys/net/ipv6/conf/eth0/disable_ipv6' to '0'
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: eth0: IPv6 successfully enabled
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: Setting '/proc/sys/net/ipv6/conf/eth0/proxy_ndp' to '0'
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: Setting '/proc/sys/net/ipv6/conf/eth0/use_tempaddr' to '0'
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: Setting '/proc/sys/net/ipv6/conf/eth0/accept_ra' to '0'
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: DHCPv6 CLIENT: Failed to set DUID-EN: No medium found
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: eth0: DHCP6 CLIENT: Failed to set DUID: No medium found
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: eth0: Failed
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: eth0: State changed: initialized -> failed
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_32 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=13 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
Dec 16 17:27:56 raspberrypi4 systemd-networkd[339]: DHCP CLIENT (0x0): STOPPED
Failed to set DUID: No medium found
しかし、過去にはIPv6アドレスは正常に割り当てられました。エラーに関する参照は見つかりませんでした。
答え1
問題は、/etc で overlayfs を使用していて、/etc/machine-id
systemd によってマウントされた tmpfsが/ets/machine-id
書き換えられていたため、systemd によって生成されたデフォルトの空のファイルを上書きしていたことであることが判明しました。
そのため、DHCP6 クライアントは DUID が/etc/machine-id
空だったため設定できませんでした。/etc/machine-id が存在しない場合はそれをオーバーレイ パーティションにコピーして、再起動後も保持されるようにすることで、この問題を修正しました。