as described in the bug-entry it is still not possible to have a swapfile on general btrfs setups (only on single disk (single data profile - documented in [0,1], and my quick tests confirmed it).
Users who still need/want swap can now set a hdsize smaller than their disk-size to keep a part unpartitioned for adding a swap-partition after installation (like with ZFS). I quickly considered sticking with a single 'advanced raid' tab and adapting the visibility of the individual lines, but did not see an elegant way (as far as this is possible with GUI code) of doing that. Signed-off-by: Stoiko Ivanov <s.iva...@proxmox.com> --- proxinstall | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/proxinstall b/proxinstall index 5360b08..93f2443 100755 --- a/proxinstall +++ b/proxinstall @@ -1341,7 +1341,7 @@ sub extract_data { my $logical_bsize = @$hd[4]; my ($size, $osdev, $efidev) = - partition_bootable_disk($devname, undef, '8300'); + partition_bootable_disk($devname, $config_options->{hdsize}, '8300'); $rootdev = $osdev if !defined($rootdev); # simply point to first disk my $by_id = find_stable_path("/dev/disk/by-id", $devname); push @$bootdevinfo, { @@ -2983,7 +2983,7 @@ my $get_hdsize_spinbtn = sub { }; my $create_raid_disk_grid = sub { - my ($hdsize_btn) = @_; + my ($hdsize_buttons) = @_; my $hd_count = scalar(@$hds); my $disk_labeled_widgets = []; for (my $i = 0; $i < $hd_count; $i++) { @@ -3001,7 +3001,9 @@ my $create_raid_disk_grid = sub { my $a = $w->get_active - 1; $config_options->{"disksel${diskid}"} = ($a >= 0) ? $hds->[$a] : undef; my $hdsize_adj = $get_hdsize_adjustment->(); - $hdsize_btn->set_adjustment($hdsize_adj); + for my $btn (@$hdsize_buttons) { + $btn->set_adjustment($hdsize_adj); + } }); } @@ -3115,6 +3117,13 @@ my $create_raid_advanced_grid = sub { return $create_label_widget_grid->($labeled_widgets);; }; +my $create_btrfs_raid_advanced_grid = sub { + my ($hdsize_btn) = @_; + my $labeled_widgets = []; + push @$labeled_widgets, "hdsize", $hdsize_btn; + return $create_label_widget_grid->($labeled_widgets);; +}; + sub create_hdoption_view { my $dialog = Gtk3::Dialog->new(); @@ -3223,13 +3232,16 @@ sub create_hdoption_view { } my $spinbutton_hdsize_zfs = $get_hdsize_spinbtn->($hdsize); + my $spinbutton_hdsize_btrfs = $get_hdsize_spinbtn->($hdsize); + my $hdsize_buttons = [ $spinbutton_hdsize_zfs, $spinbutton_hdsize_btrfs ]; my $options_stack = Gtk3::Stack->new(); $options_stack->set_visible(1); $options_stack->set_hexpand(1); $options_stack->set_vexpand(1); - $options_stack->add_titled(&$create_raid_disk_grid($spinbutton_hdsize_zfs), "raiddisk", "Disk Setup"); + $options_stack->add_titled(&$create_raid_disk_grid($hdsize_buttons), "raiddisk", "Disk Setup"); $options_stack->add_titled(&$create_label_widget_grid($hdsize_labeled_widgets), "hdsize", "Size Options"); $options_stack->add_titled(&$create_raid_advanced_grid($spinbutton_hdsize_zfs), "raidzfsadvanced", "Advanced Options"); + $options_stack->add_titled(&$create_btrfs_raid_advanced_grid($spinbutton_hdsize_btrfs), "raidbtrfsadvanced", "Advanced Options"); $options_stack->set_visible_child_name("raiddisk"); my $options_stack_switcher = Gtk3::StackSwitcher->new(); $options_stack_switcher->set_halign('center'); @@ -3257,8 +3269,9 @@ sub create_hdoption_view { $hw_raid_note->set_markup($msg); } $hw_raid_note->set_visible($raid); - $options_stack_switcher->set_visible($is_zfs); + $options_stack_switcher->set_visible($raid); $options_stack->get_child_by_name("raidzfsadvanced")->set_visible($is_zfs); + $options_stack->get_child_by_name("raidbtrfsadvanced")->set_visible(!$is_zfs); if ($raid) { $target_hd_label->set_text("Target: $config_options->{filesys} "); $options_stack->set_visible_child_name("raiddisk"); @@ -3267,7 +3280,7 @@ sub create_hdoption_view { } if ($raid) { - $spinbutton_hdsize = $spinbutton_hdsize_zfs; + $spinbutton_hdsize = $is_zfs ? $spinbutton_hdsize_zfs : $spinbutton_hdsize_btrfs; } else { $spinbutton_hdsize = $spinbutton_hdsize_nonraid; } -- 2.30.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel