diff options
Diffstat (limited to 'perl-install/install_any.pm')
-rw-r--r-- | perl-install/install_any.pm | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm index 04f3279a0..8d838a790 100644 --- a/perl-install/install_any.pm +++ b/perl-install/install_any.pm @@ -246,8 +246,8 @@ sub spawnShell { ioctl(STDIN, c::TIOCSCTTY(), 0) or warn "could not set new controlling tty: $!"; - my $busybox = "/usr/bin/busybox"; - exec { -e $busybox ? $busybox : "/bin/sh" } "/bin/sh" or log::l("exec of /bin/sh failed: $!"); + my ($busybox, $bash) = ("/usr/bin/busybox", "/usr/bin/bash"); + exec { -x $busybox ? $busybox : -x $bash ? $bash : "/bin/sh" } "/bin/sh" or log::l("exec of /bin/sh failed: $!"); } sub getAvailableSpace { @@ -379,7 +379,7 @@ sub setDefaultPackages { $o->{compssUsersChoice}{USB} = 1 if modules::get_probeall("usb-interface"); $o->{compssUsersChoice}{PCMCIA} = 1 if detect_devices::hasPCMCIA(); $o->{compssUsersChoice}{HIGH_SECURITY} = 1 if $o->{security} > 3; - $o->{compssUsersChoice}{BIGMEM} = 1 if !$::oem && (availableRamMB() > 800) && (arch() !~ /ia64/); + $o->{compssUsersChoice}{BIGMEM} = 1 if !$::oem && (availableRamMB() > 800) && (arch() !~ /ia64|x86_64/); $o->{compssUsersChoice}{SMP} = 1 if detect_devices::hasSMP(); $o->{compssUsersChoice}{CDCOM} = 1 if grep { $_->{descr} =~ /commercial/i } values %{$o->{packages}{mediums}}; $o->{compssUsersChoice}{'3D'} = 1 if @@ -776,6 +776,7 @@ sub getAndSaveInstallFloppy { cp_af("$postinstall_rpms/auto_install.img", $where); } else { my $image = cat_("/proc/cmdline") =~ /pcmcia/ ? "pcmcia" : + arch() =~ /ia64|ppc/ ? "all" : #- we only use all.img there ${{ disk => 'hd', cdrom => 'cdrom', ftp => 'network', nfs => 'network', http => 'network' }}{$o->{method}}; $image .= arch() =~ /sparc64/ && "64"; #- for sparc64 there are a specific set of image. getAndSaveFile("images/$image.img", $where) or log::l("failed to write Install Floppy ($image.img) to $where"), return; @@ -1041,11 +1042,23 @@ sub getHds { $o->{fstab} = [ fsedit::get_all_fstab($all_hds) ]; fs::merge_info_from_mtab($o->{fstab}); + #- Search for EFI partitions + my @efi = grep { isEfi($_) && isFat({ type => fsedit::typeOfPart($_->{device}) }) } @{$o->{fstab}}; + log::l("efi parts: ", join ",", map { $_->{device} } @efi) if @efi; + if (@efi == 1) { + $efi[0]{mntpoint} = "/boot/efi"; + } else { + my $v = 0; + foreach (@efi) { + $_->{mntpoint} = $_->{unsafeMntpoint} = "/mnt/efi_" . ($v ? $v+1 : ''); + $v = $v + 1; + } + } + my @win = grep { isFat($_) && isFat({ type => fsedit::typeOfPart($_->{device}) }) } @{$o->{fstab}}; log::l("win parts: ", join ",", map { $_->{device} } @win) if @win; if (@win == 1) { - #- Suggest /boot/efi on ia64. - $win[0]{mntpoint} = arch() =~ /ia64/ ? "/boot/efi" : "/mnt/windows"; + $win[0]{mntpoint} = "/mnt/windows"; } else { my %w; foreach (@win) { my $v = $w{$_->{device_windobe}}++; |