]> git.proxmox.com Git - pve-installer.git/commitdiff
move getting boot mode into runtime env
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 19 Jun 2023 19:45:19 +0000 (21:45 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 19 Jun 2023 19:49:00 +0000 (21:49 +0200)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Proxmox/Install/RunEnv.pm
proxinstall

index 5dce622288a3a37c78ca6d052cac5e9e83af9866..0548fc5b69d0cb977af6777adb92be898f30178d 100644 (file)
@@ -242,6 +242,7 @@ sub query_installation_environment : prototype() {
     };
 
     $output->{total_memory} = query_total_memory();
+    $output->{boot_type} = -d '/sys/firmware/efi' ? 'efi' : 'bios';
 
     my $err;
     my $country;
index 781efe318d36540270af5975b40860e316016a59..d19f314751a10c3a7cf76edb1bb9246914264139 100755 (executable)
@@ -95,8 +95,6 @@ my $proxmox_libdir = $iso_env->{locations}->{lib};
 my $proxmox_cddir = $iso_env->{locations}->{iso};
 my $proxmox_pkgdir = "${proxmox_cddir}/proxmox/packages/";
 
-my $boot_type = -d '/sys/firmware/efi' ? 'efi' : 'bios';
-
 my $step_number = 0; # Init number for global function list
 
 my @steps = (
@@ -621,7 +619,7 @@ sub prepare_grub_efi_boot_esp {
     eval {
        my $rc = syscmd("chroot $targetdir /usr/sbin/grub-install --target x86_64-efi --no-floppy --bootloader-id='proxmox' $dev");
        if ($rc != 0) {
-           if ($boot_type eq 'efi') {
+           if ($run_env->{boot_type} eq 'efi') {
                die "unable to install the EFI boot loader on '$dev'\n";
            } else {
                warn "unable to install the EFI boot loader on '$dev', ignoring (not booted using UEFI)\n";
@@ -924,7 +922,7 @@ sub extract_data {
            || die "unable to bind-mount packages on $targetdir/tmp/pkg\n";
        syscmd("mount -n -t proc proc $targetdir/proc") == 0 || die "unable to mount proc on $targetdir/proc\n";
        syscmd("mount -n -t sysfs sysfs $targetdir/sys") == 0 || die "unable to mount sysfs on $targetdir/sys\n";
-       if ($boot_type eq 'efi') {
+       if ($run_env->{boot_type} eq 'efi') {
            syscmd("mount -n -t efivarfs efivarfs $targetdir/sys/firmware/efi/efivars") == 0 ||
                die "unable to mount efivarfs on $targetdir/sys/firmware/efi/efivars: $!\n";
        }
@@ -1020,7 +1018,7 @@ sub extract_data {
        # Note: this is required by current grub, but really dangerous, because
        # vfat does not have journaling, so it triggers manual fsck after each crash
        # so we only mount /boot/efi if really required (efi systems).
-       if ($boot_type eq 'efi' && !$use_zfs) {
+       if ($run_env->{boot_type} eq 'efi' && !$use_zfs) {
            if (scalar(@$bootdevinfo)) {
                my $di = @$bootdevinfo[0]; # simply use first disk
 
@@ -2648,7 +2646,7 @@ sub zfs_mirror_size_check {
 sub legacy_bios_4k_check {
     my ($lbs) = @_;
     die "Booting from 4kn drive in legacy BIOS mode is not supported.\n"
-       if $boot_type ne 'efi' && $lbs == 4096;
+       if $run_env->{boot_type} ne 'efi' && $lbs == 4096;
 }
 
 sub get_zfs_raid_setup {