lib/SI/ptable.pm
changeset 37 a61b92c60367
parent 36 bdc967bf50d2
equal deleted inserted replaced
36:bdc967bf50d2 37:a61b92c60367
    73     foreach my $disk (keys %{$devs->{disk}}) {
    73     foreach my $disk (keys %{$devs->{disk}}) {
    74 	verbose("restoring partition table of $disk\n");
    74 	verbose("restoring partition table of $disk\n");
    75 	die "I won't use the disk ($disk) I'm running on!" 
    75 	die "I won't use the disk ($disk) I'm running on!" 
    76 	    if (stat $0)[0] ~~ [ map { (stat)[6] } map { "/dev/" . basename dirname $_ } glob ("/sys/block/" . basename($disk) . "/*/partition")];
    76 	    if (stat $0)[0] ~~ [ map { (stat)[6] } map { "/dev/" . basename dirname $_ } glob ("/sys/block/" . basename($disk) . "/*/partition")];
    77 
    77 
    78 	    my $sfdisk = new IO::File "|sfdisk $disk >/dev/null"
    78 	    my $sfdisk = new IO::File "|sfdisk --force $disk >/dev/null"
    79 		or die "Can't open |sfdisk $disk: $!\n";
    79 		or die "Can't open |sfdisk $disk: $!\n";
    80 	    print {$sfdisk} @{$devs->{disk}{$disk}{pt}};
    80 	    print {$sfdisk} @{$devs->{disk}{$disk}{pt}};
    81 	    $sfdisk->close or die $? >> 8;
    81 	    $sfdisk->close or die $? >> 8;
    82 	    run("partprobe $disk");
    82 	    run("partprobe $disk");
       
    83 	    run("udevadm settle");
    83     }
    84     }
    84 }
    85 }
    85 
    86 
    86 sub mkfs(\%) {
    87 sub mkfs(\%) {
    87     my $devs = shift;
    88     my $devs = shift;