From aede79bdc0e16cc433c41a2a9f54bffe49a124f6 Mon Sep 17 00:00:00 2001 From: Stefan Schubert Date: Fri, 3 May 2024 13:47:50 +0200 Subject: [PATCH] writing /etc/kernel/cmdline before calling sdbootutil --- src/lib/bootloader/systemdboot.rb | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/lib/bootloader/systemdboot.rb b/src/lib/bootloader/systemdboot.rb index 7bbe53fd0..3c047cde7 100644 --- a/src/lib/bootloader/systemdboot.rb +++ b/src/lib/bootloader/systemdboot.rb @@ -114,13 +114,11 @@ def write(etc_only: false) log.info("Writing settings...") if Yast::Stage.initial # while new installation only (currently) install_bootloader - create_menue_entries end + + create_menue_entries write_menue_timeout - File.open(File.join(Yast::Installation.destdir, CMDLINE), "w+") do |fw| - fw.puts(kernel_params.serialize) - end true end @@ -205,17 +203,11 @@ def write_sysconfig(prewrite: false) SDBOOTUTIL = "/usr/bin/sdbootutil" def create_menue_entries - cmdline_file = File.join(Yast::Installation.destdir, CMDLINE) - if Yast::Stage.initial - # sdbootutil script needs the "root=" entry in kernel parameters. - # This will be written to CMDLINE which will be used in an - # installed system by the administrator only. So we can use it because - # the system will be installed new. This file will be deleted after - # calling sdbootutil. - File.open(cmdline_file, "w+") do |fw| - fw.puts("root=#{Yast::BootStorage.root_partitions.first.name}") - end + # writing kernel parameter to /etc/kernel/cmdline + File.open(File.join(Yast::Installation.destdir, CMDLINE), "w+") do |fw| + fw.puts("root=#{Yast::BootStorage.root_partitions.first.name} #{kernel_params.serialize}") end + begin Yast::Execute.on_target!(SDBOOTUTIL, "--verbose", "add-all-kernels") rescue Cheetah::ExecutionFailed => e @@ -227,7 +219,6 @@ def create_menue_entries ), command: e.commands.inspect, stderr: e.stderr) ) end - File.delete(cmdline_file) if Yast::Stage.initial # see above end def read_menue_timeout