2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-05-05 16:49:08 +00:00

fix: move kernel quiet flag from hardcoded to osimage default

The quiet kernel parameter was hardcoded in anaconda.pm and sles.pm,
making it impossible for admins to get verbose boot output without
editing plugin source code. The existing addkcmdline mechanism
(bootparams and linuximage tables) only appends to the kernel command
line, so there was no way to remove quiet.

Move quiet out of the plugin kcmdline construction and into the
linuximage.addkcmdline default set during copycds osimage creation.
Admins who want verbose boot for debugging can now remove it per
osimage:

    chdef -t osimage <image> addkcmdline=""

New osimages get addkcmdline="quiet" by default. Existing osimages
with a custom addkcmdline are not overwritten on re-run of copycds.

Genesis/discovery boot (mknb.pm) is unchanged as it does not use
osimage definitions.

Addresses #6916
This commit is contained in:
Vinícius Ferrão
2026-05-04 19:52:41 -03:00
parent d5831828d6
commit 03a16dd081
4 changed files with 24 additions and 11 deletions

View File

@@ -909,6 +909,11 @@ sub update_tables_with_templates
pkglist => $pkglistfile,
otherpkglist => $otherpkgsfile,
otherpkgdir => "$installroot/post/otherpkgs/$osver/$arch");
my ($existing) = $linuximagetab->getAttribs({ imagename => $imagename }, 'pkgdir');
unless ($existing) {
$tb_cols{addkcmdline} = "quiet";
}
$linuximagetab->setAttribs(\%key_col, \%tb_cols);
} else {
@@ -1096,6 +1101,10 @@ sub update_tables_with_mgt_image
pkglist => $pkglistfile,
otherpkglist => $otherpkgsfile,
otherpkgdir => "$installroot/post/otherpkgs/$osver/$arch");
my ($existing) = $linuximagetab->getAttribs({ imagename => $imagename }, 'pkgdir');
unless ($existing) {
$tb_cols{addkcmdline} = "quiet";
}
$linuximagetab->setAttribs(\%key_col, \%tb_cols);
} else {
@@ -1325,6 +1334,10 @@ sub update_tables_with_diskless_image
exlist => $exlistfile,
postinstall => $postfile,
rootimgdir => "$installroot/netboot/$osver/$arch/$profile");
my ($existing) = $linuximagetab->getAttribs({ imagename => $imagename }, 'pkgdir');
unless ($existing) {
$tb_cols{addkcmdline} = "quiet";
}
$linuximagetab->setAttribs(\%key_col, \%tb_cols);
} else {

View File

@@ -1331,12 +1331,12 @@ sub mkinstall
$kcmdline = "ksdevice=bootif kssendmac text selinux=0 rd.dm=0 rd.md=0 repo=$httpmethod://$instserver:$httpport$httpprefix/packages/ kvmp.inst.auto=$httpmethod://$instserver:$httpport/install/autoinst/$node root=live:$httpmethod://$instserver:$httpport$httpprefix/LiveOS/squashfs.img";
} else {
if (xCAT::Utils->version_cmp($kversion, "7.0") < 0) {
$kcmdline = "quiet repo=$httpmethod://$instserver:$httpport$httpprefix ks=$httpmethod://"
$kcmdline = "repo=$httpmethod://$instserver:$httpport$httpprefix ks=$httpmethod://"
. $instserver . ":" . $httpport
. "/install/autoinst/"
. $node;
} else {
$kcmdline = "quiet inst.repo=$httpmethod://$instserver:$httpport$httpprefix inst.ks="
$kcmdline = "inst.repo=$httpmethod://$instserver:$httpport$httpprefix inst.ks="
. "$httpmethod://"
. $instserver . ":" . $httpport
. "/install/autoinst/"

View File

@@ -342,10 +342,10 @@ sub process_request {
open($cfg, ">", "$tftpdir/xcat/xnba/nets/$net");
print $cfg "#!gpxe\n";
if ($invisibletouch) {
print $cfg 'imgfetch -n kernel http://${next-server}:'.$httpport.'/tftpboot/xcat/genesis.kernel.' . "$arch quiet xcatd=" . $normnets->{$_} . ":$xcatdport $consolecmdline BOOTIF=01-" . '${netX/machyp}' . "\n";
print $cfg 'imgfetch -n kernel http://${next-server}:'.$httpport.'/tftpboot/xcat/genesis.kernel.' . "$arch xcatd=" . $normnets->{$_} . ":$xcatdport $consolecmdline BOOTIF=01-" . '${netX/machyp}' . "\n";
print $cfg 'imgfetch -n nbfs http://${next-server}:'.$httpport . "$initrd_file\n";
} else {
print $cfg 'imgfetch -n kernel http://${next-server}:'.$httpport.'/tftpboot/xcat/nbk.' . "$arch quiet xcatd=" . $normnets->{$_} . ":$xcatdport $consolecmdline\n";
print $cfg 'imgfetch -n kernel http://${next-server}:'.$httpport.'/tftpboot/xcat/nbk.' . "$arch xcatd=" . $normnets->{$_} . ":$xcatdport $consolecmdline\n";
print $cfg 'imgfetch -n nbfs http://${next-server}:'.$httpport . "$initrd_file\n";
}
print $cfg "imgload kernel\n";
@@ -358,12 +358,12 @@ sub process_request {
print $cfg ' image=/tftpboot/xcat/genesis.kernel.' . "$arch\n";
print $cfg " label=\"xCAT Genesis (" . $normnets->{$_} . ")\"\n";
print $cfg " initrd=$initrd_file\n";
print $cfg " append=\"quiet xcatd=" . $normnets->{$_} . ":$xcatdport destiny=discover $consolecmdline BOOTIF=%B\"\n";
print $cfg " append=\"xcatd=" . $normnets->{$_} . ":$xcatdport destiny=discover $consolecmdline BOOTIF=%B\"\n";
close($cfg);
open($cfg, ">", "$tftpdir/xcat/xnba/nets/$net.uefi");
print $cfg "#!gpxe\n";
print $cfg 'imgfetch -n kernel http://${next-server}:'.$httpport.'/tftpboot/xcat/genesis.kernel.' . "$arch\nimgload kernel\n";
print $cfg "imgargs kernel quiet xcatd=" . $normnets->{$_} . ":$xcatdport $consolecmdline BOOTIF=01-" . '${netX/mac:hexhyp}' . " destiny=discover initrd=initrd\n";
print $cfg "imgargs kernel xcatd=" . $normnets->{$_} . ":$xcatdport $consolecmdline BOOTIF=01-" . '${netX/mac:hexhyp}' . " destiny=discover initrd=initrd\n";
print $cfg 'imgfetch -n initrd http://${next-server}:'.$httpport . "$initrd_file\nimgexec kernel\n";
close($cfg);
}
@@ -374,7 +374,7 @@ sub process_request {
print $cfgfile " label \"xCAT Genesis (" . $normnets->{$_} . ")\"\n";
print $cfgfile " kernel http://" . $normnets->{$_} . ":$httpport/$tftpdir/xcat/genesis.kernel.$arch\n";
print $cfgfile " initrd http://" . $normnets->{$_} . ":$httpport/$initrd_file\n";
print $cfgfile ' append "quiet xcatd=' . $normnets->{$_} . ":$xcatdport $consolecmdline\"\n";
print $cfgfile ' append "xcatd=' . $normnets->{$_} . ":$xcatdport $consolecmdline\"\n";
close($cfgfile);
}
}
@@ -404,7 +404,7 @@ sub process_request {
print $cfgfile "DEFAULT xCAT\n";
print $cfgfile " LABEL xCAT\n";
print $cfgfile " KERNEL xcat/nbk.$arch\n";
print $cfgfile " APPEND initrd=$tftp_initrd quiet xcatd=" . $hexnets->{$_} . ":$xcatdport $consolecmdline\n";
print $cfgfile " APPEND initrd=$tftp_initrd xcatd=" . $hexnets->{$_} . ":$xcatdport $consolecmdline\n";
close($cfgfile);
} elsif ($arch =~ /ppc/) {
open($cfgfile, ">", "$tftpdir/etc/" . lc($_));
@@ -413,7 +413,7 @@ sub process_request {
print $cfgfile " label \"xCAT Genesis (" . $normnets->{$_} . ")\"\n";
print $cfgfile " kernel http://" . $hexnets->{$_} . ":$httpport/$tftpdir/xcat/genesis.kernel.$arch\n";
print $cfgfile " initrd http://" . $hexnets->{$_} . ":$httpport/$initrd_file\n";
print $cfgfile ' append "quiet xcatd=' . $hexnets->{$_} . ":$xcatdport $consolecmdline\"\n";
print $cfgfile ' append "xcatd=' . $hexnets->{$_} . ":$xcatdport $consolecmdline\"\n";
close($cfgfile);
}
}

View File

@@ -514,7 +514,7 @@ sub mknetboot
$kcmdline =
"imgurl=$httpmethod://$imgsrv:$httpport/$rootimgdir/$compressedrootimg ";
}
$kcmdline .= "XCAT=$xcatmaster:$xcatdport quiet ";
$kcmdline .= "XCAT=$xcatmaster:$xcatdport ";
$kcmdline .= " XCATHTTPPORT=$httpport ";
#if site.nodestatus="n", append "nonodestatus" to kcmdline
@@ -1098,7 +1098,7 @@ sub mkinstall
$httpprefix =~ s/^$installroot/\/install/;
}
my $kcmdline =
"quiet autoyast=$httpmethod://"
"autoyast=$httpmethod://"
. $netserver . ":" . $httpport
. "/install/autoinst/"
. $node