and handle that one via a snippet instead of touching the main
'/etc/default/grub' config file.

distributor (and disabling os-prober for PVE) are already handled by the
product-specific meta packages via snippets - proxmox-ve was the last to
join this club in 7.0-2.

Signed-off-by: Fabian Grünbichler <f.gruenbich...@proxmox.com>
---
proxmox-ve on the beta ISO is still too old, so fully testing requires
`apt update && apt full-upgrade && update-grub` after installing with
this change - or an ISO rebuilt with current proxmox-ve and this change.

 proxinstall | 52 +++-------------------------------------------------
 1 file changed, 3 insertions(+), 49 deletions(-)

diff --git a/proxinstall b/proxinstall
index a6176d2..35a7ad2 100755
--- a/proxinstall
+++ b/proxinstall
@@ -1251,50 +1251,6 @@ sub prepare_grub_efi_boot_esp {
     die "failed to prepare EFI boot using Grub on '$espdev': $err" if $err;
 }
 
-sub set_grub_default_cfg {
-    my ($targetdir) = @_;
-
-    my $grub_cfg = <<EOF;
-# If you change this file, run 'update-grub' afterwards to update
-# /boot/grub/grub.cfg.
-# For full documentation of the options in this file, see:
-#   info -f grub -n 'Simple configuration'
-
-GRUB_DEFAULT=0
-GRUB_TIMEOUT=5
-GRUB_DISTRIBUTOR="$setup->{fullname}"
-GRUB_CMDLINE_LINUX_DEFAULT="quiet"
-GRUB_CMDLINE_LINUX=""
-
-# Disable os-prober, it might add menu entries for each guest
-GRUB_DISABLE_OS_PROBER=true
-
-# Uncomment to enable BadRAM filtering, modify to suit your needs
-# This works with Linux (no patch required) and with any kernel that obtains
-# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
-#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
-
-# Uncomment to disable graphical terminal (grub-pc only)
-#GRUB_TERMINAL=console
-
-# The resolution used on graphical terminal
-# note that you can use only modes which your graphic card supports via VBE
-# you can see them in real GRUB with the command `vbeinfo'
-#GRUB_GFXMODE=640x480
-
-# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
-#GRUB_DISABLE_LINUX_UUID=true
-
-# Disable generation of recovery mode menu entries
-GRUB_DISABLE_RECOVERY="true"
-
-# Uncomment to get a beep at grub start
-#GRUB_INIT_TUNE="480 440 1"
-EOF
-
-    write_config($grub_cfg, "$targetdir/etc/default/grub")
-}
-
 sub extract_data {
     my ($basefile, $targetdir) = @_;
 
@@ -1829,12 +1785,10 @@ _EOD
 
        update_progress(0.8, 0.95, 1, "make system bootable");
 
-       # NOTE: rewrites /etc/default/grub completely, all iterative changes 
need to be after this
-       set_grub_default_cfg($targetdir);
-
        if ($use_zfs) {
-           syscmd("sed -i -e 
's/^GRUB_CMDLINE_LINUX=.*/GRUB_CMDLINE_LINUX=\"root=ZFS=$zfspoolname\\/ROOT\\/$zfsrootvolname
 boot=zfs\"/' $targetdir/etc/default/grub") == 0 ||
-               die "unable to update /etc/default/grub\n";
+           # add ZFS options while preserving existing kernel cmdline
+           my $zfs_snippet = "GRUB_CMDLINE_LINUX=\"\$GRUB_CMDLINE_LINUX 
root=ZFS=$zfspoolname/ROOT/$zfsrootvolname boot=zfs\"";
+           write_config($zfs_snippet, "$targetdir/etc/default/grub.d/zfs.cfg");
 
            write_config("root=ZFS=$zfspoolname/ROOT/$zfsrootvolname boot=zfs", 
"$targetdir/etc/kernel/cmdline");
 
-- 
2.30.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to