]> git.proxmox.com Git - pve-installer.git/blobdiff - proxinstall
tell udev to ignore being in a chroot
[pve-installer.git] / proxinstall
index 9ac864b9fb78dbf52bb663f4dd1f3f902bfef388..fc6b2061c38ffe1033d184f291036aa3e25daf17 100755 (executable)
@@ -691,6 +691,9 @@ sub get_partition_dev {
 
     if ($dev =~ m|^/dev/sd([a-h]?[a-z]\|i[a-v])$|) {
        return "${dev}$partnum";
+    } elsif ($dev =~ m|^/dev/xvd[a-z]$|) {
+       # Citrix Hypervisor blockdev
+       return "${dev}$partnum";
     } elsif ($dev =~ m|^/dev/[hxev]d[a-z]$|) {
        return "${dev}$partnum";
     } elsif ($dev =~ m|^/dev/[^/]+/c\d+d\d+$|) {
@@ -2023,7 +2026,11 @@ sub create_ipconf_view {
 
     my $device_change_handler = sub {
        my $current = shift;
-       $ipconf->{selected} = $device_active_map->{$current->get_active()};
+
+       my $new = $device_active_map->{$current->get_active()};
+       return if $new eq $ipconf->{selected};
+
+       $ipconf->{selected} = $new;
        my $iface = $ipconf->{ifaces}->{$ipconf->{selected}};
        $config->{mngmt_nic} = $iface->{name};
        $ipconf_entry_addr->set_text($iface->{inet}->{addr} || $iface->{inet6}->{addr})
@@ -2196,9 +2203,9 @@ sub create_ack_view {
     my $html_data = file_get_contents($ack_template);
 
     my %config_values = (
-       __target_hd__ => $target_hd,
+       __target_hd__ => join(' | ', @{$config_options->{target_hds}}),
        __target_fs__ => $config_options->{filesys},
-       __country__ => $country,
+       __country__ => $cmap->{country}->{$country}->{name},
        __timezone__ => $timezone,
        __keymap__ => $keymap,
        __mailto__ => $mailto,
@@ -2555,7 +2562,7 @@ sub create_country_view {
 my $target_hd_combo;
 my $target_hd_label;
 
-my $hdopion_first_setup = 1;
+my $hdoption_first_setup = 1;
 
 my $create_basic_grid = sub {
     my $grid =  Gtk3::Grid->new();
@@ -2611,7 +2618,7 @@ my $create_raid_disk_grid = sub {
            });
        }
 
-       if ($hdopion_first_setup) {
+       if ($hdoption_first_setup) {
            $disk_selector->set_active ($i+1) if $hds->[$i];
        } else {
            my $hdind = 0;
@@ -2834,7 +2841,7 @@ sub create_hdoption_view {
     $grid->attach($options_stack, 0, $row, 2, 1);
     $row++;
 
-    $hdopion_first_setup = 0;
+    $hdoption_first_setup = 0;
 
     my $switch_view = sub {
        my $raid = $config_options->{filesys} =~ m/zfs|btrfs/;
@@ -3031,6 +3038,7 @@ sub get_btrfs_raid_setup {
     return ($devlist, $mode);
 }
 
+my $last_hd_selected = 0;
 sub create_hdsel_view {
 
     $prev_btn->set_sensitive(1); # enable previous button at this point
@@ -3043,7 +3051,7 @@ sub create_hdsel_view {
     $vbox->pack_start($hbox, 0, 0, 10);
 
     my ($disk, $devname, $size, $model) = @{@$hds[0]};
-    $target_hd = $devname;
+    $target_hd = $devname if !defined($target_hd);
 
     $target_hd_label = Gtk3::Label->new("Target Harddisk: ");
     $hbox->pack_start($target_hd_label, 0, 0, 0);
@@ -3055,10 +3063,17 @@ sub create_hdsel_view {
        $target_hd_combo->append_text (get_device_desc($devname, $size, $model));
     }
 
-    $target_hd_combo->set_active(0);
+    my $raid = $config_options->{filesys} =~ m/zfs|btrfs/;
+    if ($raid) {
+       $target_hd_label->set_text("Target: $config_options->{filesys} ");
+       $target_hd_combo->set_visible(0);
+       $target_hd_combo->set_no_show_all(1);
+    }
+    $target_hd_combo->set_active($last_hd_selected);
     $target_hd_combo->signal_connect(changed => sub {
        $a = shift->get_active;
        my ($disk, $devname) = @{@$hds[$a]};
+       $last_hd_selected = $a;
        $target_hd = $devname;
     });
 
@@ -3076,27 +3091,25 @@ sub create_hdsel_view {
     set_next(undef, sub {
 
        if ($config_options->{filesys} =~ m/zfs/) {
-           eval { get_zfs_raid_setup(); };
+           my ($devlist) = eval { get_zfs_raid_setup() };
            if (my $err = $@) {
-               display_message("Warning: $err\n" .
-                               "Please fix ZFS setup first.");
-           } else {
-               $step_number++;
-               create_country_view();
+               display_message("Warning: $err\nPlease fix ZFS setup first.");
+               return;
            }
+           $config_options->{target_hds} = [ map { $_->[1] } @$devlist ];
        } elsif ($config_options->{filesys} =~ m/btrfs/) {
-           eval { get_btrfs_raid_setup(); };
+           my ($devlist) = eval { get_btrfs_raid_setup() };
            if (my $err = $@) {
-               display_message("Warning: $err\n" .
-                               "Please fix BTRFS setup first.");
-           } else {
-               $step_number++;
-               create_country_view();
+               display_message("Warning: $err\nPlease fix BTRFS setup first.");
+               return;
            }
+           $config_options->{target_hds} = [ map { $_->[1] } @$devlist ];
        } else {
-           $step_number++;
-           create_country_view();
+           $config_options->{target_hds} = [ $target_hd ];
        }
+
+       $step_number++;
+       create_country_view();
     });
 }