]> git.proxmox.com Git - pve-installer.git/commitdiff
grub: only set special config for ZFS
authorFabian Grünbichler <f.gruenbichler@proxmox.com>
Mon, 28 Jun 2021 13:10:41 +0000 (15:10 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 28 Jun 2021 16:26:00 +0000 (18:26 +0200)
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.gruenbichler@proxmox.com>
proxinstall

index a6176d22e98aaf7af170f11a48526877abb19278..35a7ad20ceb48b73c042e5fd3c162a16f69b0d56 100755 (executable)
@@ -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");