Since the topic here is already closed:
This is bugging all our servers with Intel NICs e.g. X550, X770, I210 etc. One way is to disable UEFI boot, but this is not ideal.
Our solution is to add ‘rootwait’ to the kernel cmdline.
The problem seems to be that in UEFI, grub at handover calls ExitBootServices()which fully resets these NICs, something that doesn’t happen in legacy boot. The reset takes longer than init waits and then just panics. Alternatively you can specify rootdelay= with the desired seconds and then get a timeout panic.
This should have worked out of the box, I would like to ask for Canonical to fix this.