#!/usr/bin/perl my @hdisks; if ( open(SCSI,"/proc/scsi/scsi") ) { my ($s, $c, $i, $l); while ( ) { if ( /^Host:\s+scsi(\d+)\s+Channel:\s+(\d+)\s+Id:\s+(\d+)\s+Lun:\s+(\d+)/ ) { ($s, $c, $i, $l) = ($1, $2, $3, $4); $s = ( $s =~ /^0+(\d+)$/ ) ? $1 : $s ; $c = ( $c =~ /^0+(\d+)$/ ) ? $1 : $c ; $i = ( $i =~ /^0+(\d+)$/ ) ? $1 : $i ; $l = ( $l =~ /^0+(\d+)$/ ) ? $1 : $l ; } elsif ( /^\s+Type:\s+Direct-Access/ ) { if ( opendir(SD,"/sys/bus/scsi/drivers/sd/$s:$c:$i:$l") ) { foreach ( readdir(SD) ) { if ( /^block:(\w+)$/ ) { push(@hdisks,$1); } } close SD; } else { print "# No scsi disk device found for $s:$c:$i:$l\n"; } } } close SCSI; } else { print "# Could not open scsi\n"; } if ( opendir(IDE,"/proc/ide") ) { foreach my $dev ( readdir(IDE) ) { if ( $dev =~ /^hd\w+$/ ) { if ( open(MDA,"/proc/ide/$dev/media") ) { my $media = ; close MDA; if ( $media =~ /^disk$/ ) { push(@hdisks, $dev); } } else { print "# Could not open media for $dev\n"; } } } closedir IDE; } else { print "# Could not open ide\n"; } if ( $#hdisks >= 0 ) { print "# Found disks: @hdisks\n"; print "\n"; print "clearpart --all\n"; print "\n"; print "part /boot --fstype ext3 --size=100 --ondisk=$hdisks[0]\n"; print "part pv.11 --size=1 --grow --ondisk=$hdisks[0]\n"; print "part pv.21 --size=1 --grow --ondisk=$hdisks[1]\n" if ( $#hdisks >= 1 ); print "\n"; print "volgroup vga pv.11\n"; print "volgroup vgb pv.21\n" if ( $#hdisks >= 1 ); print "\n"; print "logvol swap --fstype swap --name=swapVol01 --vgname=vga --size=4096\n"; print "logvol swap --fstype swap --name=swapVol02 --vgname=vgb --size=4096\n" if ( $#hdisks >= 1 ); print "\n"; print "logvol / --fstype ext3 --name=rootVol --vgname=vga --size=1 --grow\n"; print "logvol /usr/local --fstype ext3 --name=localVol --vgname=vgb --size=1 --grow\n" if ( $#hdisks >= 1 ); print "\n"; } else { print "# No disks found!\n"; }