Changeset 2149 in MondoRescue for devel/mindi/sbin


Ignore:
Timestamp:
Feb 16, 2009, 5:50:07 PM (15 years ago)
Author:
Bruno Cornec
Message:

Begining f devl branch coding nd preliminary organisation

Location:
devel/mindi/sbin
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • devel/mindi/sbin/mindi

    r2003 r2149  
    1818use File::Copy;
    1919use File::stat;
    20 use File::Temp qw(tempdir);
    21 use POSIX qw(strftime);
    2220use Digest::MD5 qw(md5_hex);
    2321use lib qw (lib);
     22use POSIX qw(strftime);
    2423use ProjectBuilder::Base;
    2524use ProjectBuilder::Conf;
    2625use ProjectBuilder::Distribution;
     26use ProjectBuilder::Display;
     27use MondoRescue::Mindi::LVM;
     28use MondoRescue::Base;
    2729
    2830# Global variables
     
    161163#
    162164my $MINDI_VERSION = "PBVER-rPBREV";
    163 my $MINDI_PREFIX = "PBPREFIX";
    164 my $MINDI_CONF = "PBCONF";
    165 my $MINDI_LIB = "PBLIB";
     165my $MINDI_PREFIX = "XXX";
     166my $MINDI_CONF = "YYY";
     167my $MINDI_LIB = "LLL";
    166168my $MINDI_SBIN = "$MINDI_PREFIX/sbin";
    167169my $MINDI_FDISK = "$MINDI_SBIN/parted2fdik";
     
    246248# LVM setup
    247249#
    248 my $LVM = "none";
    249 my $LVMCMD = "";
    250 if (-d "/proc/lvm") {
    251     # Version 1
    252     $LVM = "v1";
    253 } elsif (-d "/dev/mapper") {
    254     # Version 2
    255     $LVM = "v2";
    256     $LVMCMD = "lvm";
    257 }   
    258 pb_log(0,"LVM set to $LVM");
    259 pb_log(0,"-------------------------------------");
     250my ($lvmver,$lvmcmd) = mr_lvm_check();
     251
     252pb_log(0,"LVM $lvmver command set to $lvmcmd");
     253pb_log(0,"-------------------------------------");
     254mr_exit(0);
  • devel/mindi/sbin/mranalyze-lvm

    r2119 r2149  
    1515use Data::Dumper;
    1616use English;
    17 use File::Basename;
    18 use File::Copy;
    19 use File::stat;
    20 use File::Temp qw(tempdir);
    21 use POSIX qw(strftime);
    2217use lib qw (lib);
    2318use ProjectBuilder::Base;
    2419use ProjectBuilder::Distribution;
     20use MondoRescue::Base;
     21use MondoRescue::Mindi::LVM;
    2522
    2623=pod
     
    137134
    138135# -------------------------------- main -----------------------------------
    139 my ($lvmver,$lvmcmd) = mr_lvm_check();
    140 
    141136# Where to send the output
    142137my $OUTPUT = \*STDOUT;
     
    146141}
    147142
    148 print $OUTPUT "LVM:$lvmver";
     143my $ret = mr_lvm_analyze($OUTPUT);
    149144
    150 # Analyze the existing physical volumes
    151 open(LVM,"$lvmcmd pvdisplay -c |") || mr_exit(-1,"Unable to execute $lvmcmd pvdisplay -c");
    152 while (<LVM>) {
    153         print $OUTPUT "PV:$_";
     145if ($ret == 0) {
     146    pb_log(1,"No LVM handling")
     147} else {
     148    pb_log(1,"LVM v$lvmver Structure Analyzed")
    154149}
    155 close(LVM);
    156 
    157 # Analyze the existing volume groups
    158 open(LVM,"$lvmcmd vgdisplay -c |") || mr_exit(-1,"Unable to execute $lvmcmd vgdisplay -c");
    159 while (<LVM>) {
    160         print $OUTPUT "VG:$_";
    161 }
    162 close(LVM);
    163 
    164 # Analyze the existing logical volumes
    165 open(LVM,"$lvmcmd lvdisplay -c |") || mr_exit(-1,"Unable to execute $lvmcmd lvdisplay -c");
    166 while (<LVM>) {
    167         print $OUTPUT "LV:$_";
    168 }
    169 close(LVM);
    170 
     150close($OUTPUT);
    171151mr_exit(0,undef);
    172 
    173 sub mr_exit {
    174 
    175 my $code = shift;
    176 my $msg = shift;
    177 
    178 close(OUTPUT);
    179 print $msg."\n" if ((defined $msg) and ($pbdebug >= 0));
    180 die "ERROR returned\n" if ($code < 0);
    181 print "No LVM handling\n" if (($code > 0) and ($pbdebug >= 0));
    182 exit($code);
    183 }
  • devel/mindi/sbin/mrprepare-lvm

    r2135 r2149  
    1515use Data::Dumper;
    1616use English;
    17 use File::Basename;
    18 use File::Copy;
    19 use File::stat;
    20 use File::Temp qw(tempdir);
    21 use POSIX qw(strftime);
    2217use lib qw (lib);
    2318use ProjectBuilder::Base;
    2419use ProjectBuilder::Distribution;
     20use MondoRescue::Base;
     21use MondoRescue::Mindi::LVM;
    2522
    2623=pod
     
    149146
    150147# -------------------------------- main -----------------------------------
    151 my ($lvmver,$lvmcmd) = mr_lvm_check();
    152 
    153148# Where to send the output
    154149my $OUTPUT = \*STDOUT;
     
    165160}
    166161
     162mr_lvm_prepare($INPUT,$OUTPUT,$mrmult);
    167163
    168 # Generate the startup scrit needed to restore LVM conf
    169 # from what is given on input
    170 # Multiply by the multiplier given in input or 1 of none
    171 print $OUTPUT "# Desactivate Volume Groups\n";
    172 print $OUTPUT "$lvmcmd vgchange -an\n";
    173 print $OUTPUT "\n";
    174 
    175 my $firsttime = 0;
    176 while (<INPUT>) {
    177     if (/^PV:/) {
    178         my ($tag,$pvname,$vgname,$pvsize,$ipvn,$pvstat,$pvna,$lvnum,$pesize,$petot,$pefree,$pelloc) = split(/:/);
    179         print $OUTPUT "# Creating Physical Volumes $pvname\n";
    180         print $OUTPUT "$lvmcmd pvcreate -ff -y -s ".$pesize*$mrmult." $pvname\n";
    181         print $OUTPUT "\n";
    182     } elsif (/^VG:/) {
    183         my ($tag,$vgname,$vgaccess,$vgstat,$vgnum,$lvmaxnum,$lvnum,$ocalvinvg,$lvmaxsize,$pvmaxnum,$cnumpv,$anumpv,$vgsize,$pesize,$penum,$pealloc,$pefree,$uuid) = split(/:/);
    184         if ($lvmver < 2) {
    185             print $OUTPUT "# Removing device first as LVM v1 doesn't do it\n";
    186             print $OUTPUT "rm -Rf /dev/$vgname\n";
    187         }
    188         $lvmaxnum = 255 if ($lvmaxnum > 256);
    189         $pvmaxnum = 255 if ($pvmaxnum > 256);
    190         print $OUTPUT "# Create Volume Group $vgname\n";
    191         # Pb sur pesize unite ?
    192         print $OUTPUT "$lvmcmd vgcreate $vgname -p $pvmaxnum -s $pesize -l $lvmaxnum\n";
    193         print $OUTPUT "\n";
    194     } elsif (/^LV:/) {
    195         if ($firsttime eq 0) {
    196             print $OUTPUT "\n";
    197             print $OUTPUT "# Activate All Volume Groups\n";
    198             print $OUTPUT "$lvmcmd vgchange -ay\n";
    199             print $OUTPUT "\n";
    200             $firsttime = 1;
    201         }
    202         my ($tag,$lvname,$vgname,$lvaccess,$lvstat,$lvnum,$oclv,$lvsize,$leinlv,$lealloc,$allocpol,$readahead,$major,$minor) = split(/:/);
    203         print $OUTPUT "# Create Logical Volume $lvname\n";
    204         print $OUTPUT "$lvmcmd lvcreate -n $lvname -L ".$lvsize*$mrmult." -r $readahead $vgname\n";
    205         #[ "$stripes" ]    && output="$output -i $stripes"
    206         #[ "$stripesize" ] && output="$output -I $stripesize"
    207     }
    208 }
    209 print $OUTPUT "\n";
    210 print $OUTPUT "# Scanning again Volume Groups\n";
    211 print $OUTPUT "$lvmcmd vgscan\n";
    212 print $OUTPUT "\n";
    213 
    214 
     164close($INPUT);
     165close($OUTPUT);
    215166#WriteShutdownScript
    216167mr_exit(0,"End of mrprepare-lvm");
    217 
    218 sub mr_exit {
    219 
    220 my $code = shift;
    221 my $msg = shift || "";
    222 
    223 close(OUTPUT);
    224 print $msg."\n";
    225 die "ERROR returned\n" if ($code < 0);
    226 print "No LVM handling\n" if ($code > 0);
    227 exit(0);
    228 }
Note: See TracChangeset for help on using the changeset viewer.