diff options
Diffstat (limited to 'perl-install/lvm.pm')
| -rw-r--r-- | perl-install/lvm.pm | 22 |
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; } |
