On Tue, Jun 1, 2021 at 1:09 PM Mantas Mikulėnas <graw...@gmail.com> wrote:
>
> If it's not writable at that point, systemd will *mount* a temporary writable 
> file on top of it, and will generate an ID that's temporary for that boot.

I've ended up copying /etc/machine-id onto our overlay etc directory
before mounting the actual overlay, this way after mounting /etc the
machine also persists across reboots.
I think systemd still regenerates the machine-id on boot because the
overlay isn't mounted yet, so a more long term solution would be to
use an initramfs to mount the overlay before system starts (unless
there are other ways to do so).

>
> It's possible that your overlay goes on top of that and provides its own 
> empty machine-id file again...
>
>> Make our overlay mount unit depend on whatever service is generating 
>> machine-id and make sure our mount happens before the generation of 
>> machine-id?
>
>
> That might work, and would allow the machine-id and thus the DUID to be 
> persistent.
>
> As an alternative you could tell networkd to use DUID-LLT (?), which doesn't 
> need the machine-id and just uses the MAC address, but there may be other 
> things which use the machine-id anyway...
>
>>
>> Thanks
>>
>> --
>> Alessandro Tagliapietra
>>
>>
>> On Tue, Jun 1, 2021 at 12:13 AM Mantas Mikulėnas <graw...@gmail.com> wrote:
>>>
>>> On Tue, Jun 1, 2021 at 10:07 AM Alessandro Tagliapietra 
>>> <tagliapietra.alessan...@gmail.com> wrote:
>>>>
>>>> Hello everyone,
>>>>
>>>> I'm using yocto to create a custom linux image for a raspberry pi.
>>>> We have an "agent" that writes /etc/systemd/network/20-eth.network when 
>>>> the final user wants to have a static IP address and we remove the file 
>>>> when they switch back to DHCP.
>>>>
>>>> After creating/deleting the file above we run `networkctl reload && 
>>>> networkctl reconfigure eth0`.
>>>> We mount the overlayfs with a custom .mount unit.
>>>>
>>>> We've noticed that DHCP works fine if systemd-networkd starts before we 
>>>> mount the overlayfs but it doesn't if systemd-networkd is 
>>>> restarted/reconfigured after the folder is mounted or started after the 
>>>> overlay .mount unit.
>>>>
>>>> Every interface DHCP fails with:
>>>>
>>>> DHCPv6 CLIENT: Failed to set DUID-EN: No medium found
>>>> eth0: DHCP6 CLIENT: Failed to set DUID: No medium found
>>>
>>>
>>> My guess is that it's related to /etc/machine-id somehow becoming 
>>> inaccessible, since networkd's DUID-EN (DUIDType=vendor) is based on that.
>>>
>>> --
>>> Mantas Mikulėnas
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to