summaryrefslogtreecommitdiffstats
path: root/perl-install/lvm.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/lvm.pm')
-rw-r--r--perl-install/lvm.pm22
1 files changed, 11 insertions, 11 deletions
diff --git a/perl-install/lvm.pm b/perl-install/lvm.pm
index c660e4d95..8207b80f9 100644
--- a/perl-install/lvm.pm
+++ b/perl-install/lvm.pm
@@ -8,8 +8,8 @@ use strict;
#-######################################################################################
use common;
use modules;
-use fsedit;
use devices;
+use fs::type;
use run_program;
#- for partition_table_xxx emulation
@@ -28,20 +28,21 @@ sub cylinder_size {
$hd->{extent_size};
}
-init();
+init() or log::l("lvm::init failed");
sub init() {
eval { modules::load('dm-mod') };
devices::make('urandom');
my $control = '/dev/mapper/control';
if (! -e $control) {
- my ($major) = cat_('/proc/devices') =~ /(\d+) misc$/m or die "device-mapper error";
- my ($minor) = cat_('/proc/misc') =~ /(\d+) device-mapper$/m or die "device-mapper error";
+ my ($major) = cat_('/proc/devices') =~ /(\d+) misc$/m or return;
+ my ($minor) = cat_('/proc/misc') =~ /(\d+) device-mapper$/m or return;
mkdir_p(dirname($control));
syscall_('mknod', $control, c::S_IFCHR() | 0600, makedev($major, $minor)) or die "mknod $control failed: $!";
}
run_program::run('lvm2', 'vgscan') if !-e '/etc/lvmtab';
run_program::run('lvm2', 'vgchange', '-a', 'y');
+ 1;
}
sub lvm_cmd {
@@ -63,7 +64,7 @@ sub lvm_cmd_or_die {
sub check {
my ($in) = @_;
- $in->do_pkgs->ensure_is_installed('lvm2', '/sbin/lvm2') or return;
+ $in->do_pkgs->ensure_binary_is_installed('lvm2', 'lvm2') or return;
init();
1;
}
@@ -92,10 +93,10 @@ sub get_lvs {
[
map {
my $device = "$lvm->{VG_name}/$_";
- my $pt_type = -e "/dev/$device" && fsedit::typeOfPart($device);
+ my $fs_type = -e "/dev/$device" && fs::type::fs_type_from_magic({ device => $device });
{ device => $device,
- type => $pt_type || 0x83,
+ fs_type => $fs_type || 'ext2',
size => get_lv_size($device) }
} @l
];
@@ -116,9 +117,9 @@ sub vg_destroy {
lvm_cmd('vgchange', '-a', 'n', $lvm->{VG_name});
lvm_cmd_or_die('vgremove', $lvm->{VG_name});
foreach (@{$lvm->{disks}}) {
+ lvm_cmd_or_die('pvremove', devices::make($_->{device}));
delete $_->{lvm};
- $_->{isFormatted} = 0;
- $_->{notFormatted} = 1;
+ set_isFormatted($_, 0);
}
}
@@ -138,8 +139,7 @@ sub lv_create {
$lv->{device} = "$lvm->{VG_name}/$lv->{lv_name}";
lvm_cmd_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;
+ set_isFormatted($lv, 0);
push @$list, $lv;
}