[pve-devel] [PATCH container] fix #6392: setup: fedora: skip --prompt-new-user on firstboot
Maximiliano Sandoval
m.sandoval at proxmox.com
Fri Dec 19 16:19:34 CET 2025
As per 'homectl --help':
--prompt-new-user: Query user interactively for user to create
which will wait on stdin to get the credentials for the new user, but at
this point there is no way for the user to enter such input and the
container will not start.
One could alternatively remove the unit file from the
'systemd-firstboot(1)' step, but this incantation has valid use-cases
like recognizing a existing homes on firstboot.
Signed-off-by: Maximiliano Sandoval <m.sandoval at proxmox.com>
---
src/PVE/LXC/Setup/Fedora.pm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/src/PVE/LXC/Setup/Fedora.pm b/src/PVE/LXC/Setup/Fedora.pm
index cf383e3..891884b 100644
--- a/src/PVE/LXC/Setup/Fedora.pm
+++ b/src/PVE/LXC/Setup/Fedora.pm
@@ -43,6 +43,30 @@ sub setup_init {
'systemd-networkd.service' => 1,
});
}
+
+ if ($version >= 42) {
+ $self->skip_homectl_firstboot_prompt();
+ }
+}
+
+sub skip_homectl_firstboot_prompt {
+ my ($self) = @_;
+
+ # Replaces 'homectl firstboot --prompt-new-user' with 'homectl firstboot'.
+ # When the --prompt-new-user flag is enabled the process will wait for user
+ # input resulting in the setup process not ever finishing.
+ my $unit_path = '/usr/lib/systemd/system/systemd-homed-firstboot.service';
+ if ($self->ct_file_exists($unit_path)) {
+ my $unit = <<__EOD__;
+# Generated by Proxmox VE
+[Service]
+ExecStart=
+ExecStart=homectl firstboot
+__EOD__
+
+ $self->ct_make_path("$unit_path.d");
+ $self->ct_file_set_contents("$unit_path.d/50-skip-prompt.conf", $unit);
+ }
}
sub setup_network {
--
2.47.3
More information about the pve-devel
mailing list