bootc-image-builder icon indicating copy to clipboard operation
bootc-image-builder copied to clipboard

Unattended ISO should not auto-reboot

Open cgwalters opened this issue 1 year ago • 3 comments

https://github.com/osbuild/images/blob/32bd652a96b5cc3ebb0066c29a2086fd6ce48913/pkg/manifest/anaconda_installer_iso_tree.go#L452 will create a boot loop when used with an ISO dd'd to a USB stick (this is really the default, I doubt anyone uses physical ISOs in real CD-ROM drives anymore) because we can't "eject" the USB key.

This is also part of a general problem that the kickstart has zero configurability.

cgwalters avatar Mar 04 '24 13:03 cgwalters

@cgwalters ran into this issue earlier where after doing an unattended download it would forever reboot and my server would do a loud BEEP and reboot again..

Thought it had finished installing, but nope.

Would like to have this feature in as it'll help with installs on monitor-less servers!

cdrage avatar May 22 '24 19:05 cdrage

Thanks for this bugreport. I was looking into this morning and two questions came up:

  1. It changes the existing behavior so users who rely on the auto-reboot (like our tests) will fail, I was looking into detecting a finished install via qmp:DEVICE_TRAY_MOVED events but that does not work as the eject happens only during shutdown and after the user pressed a key. I guess an alternative would be to switch to "shutdown" (which is also not ideal) or we add something like an artificial RTC_CHANGE(offset:-1) in the osbuild.ks to signal that the install is done for the tests (but other ideas welcome of course!)
  2. It is unclear to me if that is the behavior we want, instead we could keep the automatic reboot but instead refuse to auto-install on a disk that already has partitions. The existing behavior of just unconditionally wiping the disk seems risky. But of course that is also a behavioral change.

mvo5 avatar May 27 '24 10:05 mvo5

For virtualized testing I think anaconda should default to sending success/failure over a virtio serial/vsock. Writing success can easily be done in a %post.

For the bare metal case maybe anaconda could learn to special case things so that only trying to reinstall the exact same OS version errors out by default?

cgwalters avatar May 27 '24 11:05 cgwalters