summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/diskdrake/interactive.pm4
-rw-r--r--perl-install/lvm.pm6
2 files changed, 7 insertions, 3 deletions
diff --git a/perl-install/diskdrake/interactive.pm b/perl-install/diskdrake/interactive.pm
index 425ba1bb4..b279d96d2 100644
--- a/perl-install/diskdrake/interactive.pm
+++ b/perl-install/diskdrake/interactive.pm
@@ -81,6 +81,7 @@ struct part_loopback inherits part {
struct part_lvm inherits part {
# invalid: active, start, device_windobe, CHS
+ string lv_name
}
@@ -464,6 +465,9 @@ sub Create {
if_($::expert && $hd->hasExtended,
{ label => N("Preference: "), val => \$primaryOrExtended, list => [ '', "Extended", "Primary", if_($::expert, "Extended_0x85") ] },
),
+ if_($::expert && isLVM($hd),
+ { label => _("Logical volume name "), val => \$part->{lv_name}, list => [ qw(root swap usr home var), '' ], sort => 0, not_edit => 0 },
+ ),
], changed => sub {
if ($part->{start} + ($mb_size << 11) > $max) {
if ($_[0] == 0) {
diff --git a/perl-install/lvm.pm b/perl-install/lvm.pm
index 12c685e97..9b9ce8d58 100644
--- a/perl-install/lvm.pm
+++ b/perl-install/lvm.pm
@@ -128,9 +128,9 @@ sub lv_delete {
sub lv_create {
my ($lvm, $lv) = @_;
my $list = $lvm->{primary}{normal} ||= [];
- my $nb = 1 + max(map { basename($_->{device}) } @$list);
- $lv->{device} = "$lvm->{VG_name}/$nb";
- run_or_die('lvcreate', '--size', int($lv->{size} / 2) . 'k', '-n', $nb, $lvm->{VG_name});
+ $lv->{lv_name} ||= 1 + max(map { if_($_->{device} =~ /(\d+)$/, $1) } @$list);
+ $lv->{device} = "$lvm->{VG_name}/$lvm->{lv_name}";
+ run_or_die('lvcreate', '--size', int($lv->{size} / 2) . 'k', '-n', $lv->{lv_name}, $lvm->{VG_name});
$lv->{size} = get_lv_size($lv->{device}); #- the created size is smaller than asked size
$lv->{notFormatted} = 1;
$lv->{isFormatted} = 0;