Jérôme Fenal > Solaris-Disk-VTOC-0.03 > Solaris::Disk::VTOC

Download:
Solaris-Disk-VTOC-0.03.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
Report a bug
Module Version: 0.03   Source  

NAME ^

Solaris::Disk::VTOC - Read Solaris VTOC (aka. slices or partitions) from disks

SYNOPSIS ^

  use Solaris::Disk::VTOC;;

  $vtoc = Solaris::Disk::VTOC->new();
  $vtoc = Solaris::Disk::VTOC->new(
            sourcedir => "/path/containing/c0t0d0.txt/" );
  $vtoc = Solaris::Disk::VTOC->new(
            init => 1);

  # get c0t0d0 slices. All 3 are valid:
  $vtoc->readvtoc( device => "c0t0d0s0" );
  $vtoc->readvtoc( device => "c0t0d0s7" );
  $vtoc->readvtoc( device => "c0t0d0" );

  # from file
  $vtoc->readvtoc( device => "c0t0d0", source => "/tmp/c0t0d0.dump" );

  # read vtoc from file in a directory
  $vtoc->readvtocdir( "/tmp/" );

  $size = $vtoc->size("c0t0d0s1");    # slice 1
  $size = $vtoc->size("c0t0d0s3");    # slice 3
  $size = $vtoc->size("c0t0d0", 1);   # slice 1
  $size = $vtoc->size("c0t0d0s2", 3); # slice 3

  $vtoc->show("c0t0d0", ...);

  # when code is written:
  $vtoc->dump("c0t0d0");
  $vtoc->format("c0t0d0"); # or should it be `partition' or `slice'?
                           # or `label' 

DESCRIPTION ^

Solaris::Disk::VTOC aims to provide methods to read Solaris disks partitions (aka slices).

GLOBALS ^

Two global hashes are defined for completeness. They are not this useful if you are a used Solaris administrator.

METHODS ^

new

The new method returns a Solaris::Disk::VTOC object, which will then be used to read partitions for disks, to access these data, or to dump them in a human or computer readable manner.

readvtoc

  $vtoc->readvtoc( device => 'c0t0d0s0' [, source => 'c0t0d0s0.txt' ] );

readvtoc loads the vtoc and disk parameters (bytespersector, sectorspertrack, sectorspercyl, cylinders and accylinders) in the object referenced by $vtoc.

Only the controler+target+LUN part of the name is keeped, the slice number is dropped (s2 is used internally).

The device parameter is mandatory, even if it could be read from the default source (prtvtoc /dev/rdsk/$device |). This will allow further testing at the expense of a little typing overhead.

The source parameter allows one to specify a different data source such as a file containing a dump from the prtvtoc command for the specified disk.

readvtocdir

readvtocdir allows one to specify a directory containing prtvtoc(1M) dumps, with names in the form c\d+t\d+d\d+[s\d]\.txt

    @disknames = $vtoc->readvtocdir('/path/to/dir/');

readvtocdir return the list of the disk vtocs found in the given directory.

size

The size method, taking one or two parameters, gives the size of a slice.

    $vtoc->size( $diskwithslice )
    $vtoc->size( $disk, $slice )

    $vtoc->size( "c0t0d0s1" )           # get slice 1 size for c0t0d0
    $vtoc->size( "c0t0d0", 1 )          # same 
    $vtoc->size( "c0t0d0s0", 1 )        # same

The size() methods returns the block count in a partition specified as cXtXdXsX

If the disk does not currently exists in the current configuration, it tries to load it from system.

Bug: no named parameters for now.

show

The show method prints on STDOUT the disk details and partitions for the disks asked.

dump

The dump method, when implemented, will dump in a prtvtoc(1M) fashion, the information about the specified disk. Its output should be suitable to feed the fmthard(1M) command.

BUGS ^

Not all methods take named parameters for now.

This module has only been tested on Solaris for Sparc. Please contact the author for feedback about Solaris on Intel and/or AMD.

The dump method is not currently implemented. Maybe a format method should be implemented as well (could be dangerous, don't you think?)

AUTHOR ^

Jérôme Fenal <jfenal@free.fr>

VERSION ^

This is version 0.03 of the Solaris::Disk::VTOC module.

COPYRIGHT ^

Copyright (C) 2004 Jérôme Fenal. All Rights Reserved

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO ^