I’m not having a good time trying to migrate a working Ubuntu 24.04.4 Incus host over to IncusOS, and I would like some guidance as to whether this is user stupidity or an actual bug.
After a lot of revising of YAML eventually the IncusOS installation worked, but now incus-osd.service continuously crashes and restarts (with Ninja-like reflexes I captured) :
INFO System is starting up machine-id=...
INFO Bringing up the network
ERROR interface 0 has no MAC address
And that’s all she wrote. I’ve tried using hwaddr and this doesn’t help.
I know via the emergency screen from previous failed installs the IncusOS installer sees the i219-LM (and RTL-8127) controller perfectly fine on the PCIe bus.
I’ve seen some posts online about the e1000e driver having race conditions with the Intel Management Engine (AMT) or aggressive PCIe ASPM polling causing driver probe timeouts on Lenovo hardware. I’ve tried turning off the Intel ME/AMT but no improvement, and I’m not willing to turn off ASPM given UK power prices plus I want to retain the physical separation of management and instance networks. And it’s not like the i219-LM is unknown hardware, it should work.
So I have questions :
Is this failure to read the i219-LM MAC address a known issue with IncusOS?
Anything I can try to fix this?
I’ve done the wipe-and-reinstall dance seven or eight times trying to troubleshoot this and other problems, so I’m pretty invested in the sunk cost fallacy at this point.
Some feedback so far (I know a few of these are being worked on) :
Some sort of syntax/linting check of the preseed files would be terrific. Especially given the points below.
Having to rebuild the install USB every time you run it is painful, especially if you are working through errors in the preseed or hardware compatability. If the partition the preseed goes on was writeable by a Windows machine, or could be added via the IncusOS image downloader, people would have more flexibility in the editing workflow.
In the same vein, the preseed files are tiny, is there really no scope to add them dynamically to the image downloader (after linting)?
Having to wipe the system disk from a Linux live USB each time you reinstall IncusOS is soul destroying after a while, especially when it could be as small a mistake as not intercepting the UEFI BIOS boot in time to change the Secure Boot status, or the sort of hardware recognition issue I ran into here.
Imagine - and this is a totally just a fictitious example - you had a user whose main PC is upstairs and their headless test server is downstairs. Imagine having to physically swap the IncusOS install USB between another spare server and the test server and back again every time you needed to rewrite the USB, and every time you need to eject it to complete booting the OS, going downstairs and then upstairs each time you do. Imagine making a total of seven boot USBs.
Some small indication the Incus boot is progressing after the “IncusOS is installing …” would be welcome.
I probably missed it but I didn’t see in the documentation that you can use wildcards for the disk target - I read it in a comment here. That would have saved time vs having to boot a Linux Live USB.
A few more examples of the preseed files would have been helpful for me, particularly for the network.yaml since the syntax is quite different from both Incus itself and Netplan, plus the basic concepts are quite different.
When trying to install over a previous IncusOS install the error message from the installer is unhelpful - it says it couldn’t find the specified disk, I wasted quite a few hours pointlessly trying to fix that problem at a hardware level.
I have a lot more pain points, but I accept a number of those were self inflicted.
Any guidance or ideas would be really appreciated because I’m at the end of my rope here.
They are unpacked within the relevant structs, so bad typing will trigger an error, but then knowing exactly what setting is required vs not and what values are valid for each isn’t something we really want to have to put in the image customizer.
The has no MAC address sounds like an empty hwaddr value in the seed, but then I’d have expected it to fail at a different spot. It shouldn’t have made it to the state file.
You need a hwaddr key on both those interfaces. You can either put the current MAC address for the NIC in there or you can put the NIC name and IncusOS will substitute it for the MAC on first boot.
The name property you can set to anything you want, it’s not used to detect the NIC, just to name the resulting bridge we’ll be creating.
Yes, I saw you can use another stick. Writing the sda2 partition with a new seed isn’t the main issue though since that’s very fast; the issue for me was that when you boot the install USB it seems it gets written to with new partitions and I found it can’t be re-used. So I have to write the whole install CD again from the .img every time.