how do I detect the HDD's on the system?

Daniel Segall dan at half-asleep.com
Thu Feb 28 20:34:35 UTC 2008


The way I detect whether it's scsi/sas or ide is as follows. This assumes
that if the disks are scsi or sas, then they have a hardware RAID (which
has already been configured). If IDE create the software RAID. As far as
number of drives/multiple formats, you'll have to do some additional logic
based on what it finds. Hope it helps some.

%pre
if [ "`cat /proc/ide/hda/media`" = "disk" ]
then
echo "clearpart --all --initlabel" >/tmp/part-include
echo "part raid.10 --size=100 --ondisk=hda --asprimary" >>/tmp/part-include
echo "part raid.11 --size=100 --ondisk=hdb --asprimary" >>/tmp/part-include
echo "part raid.20 --size 5120 --ondisk=hda --asprimary"
>>/tmp/part-include
echo "part raid.21 --size 5120 --ondisk=hdb --asprimary"
>>/tmp/part-include
echo "part raid.30 --size 5120 --ondisk=hda --asprimary"
>>/tmp/part-include
echo "part raid.31 --size 5120 --ondisk=hdb --asprimary"
>>/tmp/part-include
echo "part raid.40 --size 2048 --ondisk=hda" >>/tmp/part-include
echo "part raid.41 --size 2048 --ondisk=hdb" >>/tmp/part-include
echo "part raid.50 --size 10240 --ondisk=hda" >>/tmp/part-include
echo "part raid.51 --size 10240 --ondisk=hdb" >>/tmp/part-include
echo "raid / --fstype ext3 --device=md0 --level=RAID1 raid.20 raid.21"
>>/tmp/part-include
echo "raid /boot --fstype ext3 --device=md1 --level=RAID1 raid.10 raid.11"
>>/tmp/part-include
echo "raid /home --fstype ext3 --device=md2 --level=RAID1 raid.30 raid.31"
>>/tmp/part-include
echo "raid swap --fstype swap --device=md4 --level=RAID1 raid.40 raid.41"
>>/tmp/part-include
echo "raid /var --fstype ext3 --device=md3 --level=RAID1 raid.50 raid.51"
>>/tmp/part-include
else
echo "clearpart --all --initlabel" >/tmp/part-include
echo "part /boot --size 100 --fstype ext3 --asprimary" >>/tmp/part-include
echo "part swap --size 2048 --fstype swap" >>/tmp/part-include
echo "part / --size 5120 --fstype ext3 --asprimary" >>/tmp/part-include
echo "part /home --size 5120 --fstype ext3 --asprimary" >>/tmp/part-include
echo "part /var --size 10240 --fstype ext3" >>/tmp/part-include
fi

-Dan


On Thu, 28 Feb 2008 22:26:06 +0200, Rudi Ahlers <Rudi at SoftDux.com> wrote:
> Hi
> 
> I want to setup different software RAID levels, according to the number
> & type of drives in the actual system. My problem is, I often have
> systems with mixed IDE & SATA drives.
> 
> I found the following website,
>
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/s1-kickstart2-preinstallconfig.html
> which has some neat tricks on detecting the IDE drives, but the same
> techniques doesn't apply for SATA drives ( I don't even know how SAS /
> SCSI drives operate on Linux, since I haven't worked with them yet)
> 
> The basis of the script is as follows:
> 
> 
> for file in /proc/ide/h*
> do
>   mymedia=`cat $file/media`
>   if [ $mymedia == "disk" ] ; then
>       hds="$hds `basename $file`"
>   fi
> done
> 
> set $hds
> numhd=`echo $#`
> 
> drive1=`echo $hds | cut -d' ' -f1`
> drive2=`echo $hds | cut -d' ' -f2`
> 
> It doesn't indicate which drive is first in the list, which could be a
> problem is the cdrom is on HDA for example (mine is, due to the 2U case
> layout and how the IDE cable runs)
> 
> With SATA (which uses scsi emulation), the process is different. There's
> no /media folder in /proc/scsi/ - only a scsi file, which lists all the
> devices:
> 
>  cat /proc/scsi/scsi
> Attached devices:
> Host: scsi0 Channel: 00 Id: 00 Lun: 00
>   Vendor: ATA      Model: ST3250410AS      Rev: 3.AA
>   Type:   Direct-Access                    ANSI SCSI revision: 05
> Host: scsi1 Channel: 00 Id: 00 Lun: 00
>   Vendor: ATA      Model: ST3250410AS      Rev: 3.AA
>   Type:   Direct-Access                    ANSI SCSI revision: 05
> 
> 
> dmesg | grep sd
> SCSI device sda: 488395055 512-byte hdwr sectors (250058 MB)
> SCSI device sda: drive cache: write back
> SCSI device sda: 488395055 512-byte hdwr sectors (250058 MB)
> SCSI device sda: drive cache: write back
>  sda: sda1 sda2
> Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
> SCSI device sdb: 488397168 512-byte hdwr sectors (250059 MB)
> SCSI device sdb: drive cache: write back
> SCSI device sdb: 488397168 512-byte hdwr sectors (250059 MB)
> SCSI device sdb: drive cache: write back
>  sdb: sdb1 sdb2
> 
> 
> 
> So, how does the system know that scsi0 = sata1 ?
> 
> I'd like to find this out, cause it will make the RAID setup much easier
> for mixed systems
> 
> --
> 
> Kind Regards
> Rudi Ahlers
> CEO, SoftDux
> 
> Web:   http://www.SoftDux.com
> Check out my technical blog, http://blog.softdux.com for Linux or other
> technical stuff, or visit http://www.WebHostingTalk.co.za for Web Hosting
> stugg
> 
> _______________________________________________
> Kickstart-list mailing list
> Kickstart-list at redhat.com
> https://www.redhat.com/mailman/listinfo/kickstart-list
-- 




More information about the Kickstart-list mailing list