summaryrefslogtreecommitdiffstats
path: root/perl-install/partition_table/lvm.pm
blob: e82d026e19131d7417a8ffdef486ae01ccd87f51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package partition_table::lvm; # $Id: $

# LVM on full disk

use diagnostics;
use strict;

1;

use common;
use fs::type;
use lvm;

sub _parts {
    my ($hd) = @_;

    my $part = { size => $hd->{totalsectors}, device => $hd->{device} };
    add2hash($part, fs::type::type_name2subpart('Linux Logical Volume Manager'));

    [ $part ];
}

sub read_primary {
    my ($hd) = @_;

    my $wanted = fs::type::type_name2subpart('Linux Logical Volume Manager');
    my $type = fs::type::type_subpart_from_magic($hd);

    $type && $type->{pt_type} == $wanted->{pt_type} or return;

    require partition_table::readonly;
    partition_table::readonly->initialize($hd, _parts($hd));

    1;
}