How to determine "internal" disk dynamically in kickstart/cheetah snippet

"Parthasarathy, Balaji (BCS, Cupertino, USA)" <[email protected]>
Newsgroups gmane.linux.redhat.kickstart.general
Message-ID <774A286A68497042B74D49490106082E35B74A67@G4W3203.americas.hpqcorp.net>
Hi,
When I install a system using Cobbler using kickstart/snippet, I want to only do the partitioning of
1.            Internal only disk
2.            Only one disk, if multiple exist
3.            Handle RAID/non-RAID scenarios
Is there a good/reliable way in Linux (RHEL and Fedora specifically) to determine #1? Since we are in the installation environment, some commands (like lsscsi) aren't available. Here's what I'm using in my snippet currently.
======== BEGIN SNIPPET ============
# Look for any 'scsi' or 'cciss' device; weed out output with partitions of those
# devices (part) and cd/dvd devices (sr); grab the first line of the remaining output.
# Assumption is first scsi device is "internal" disk. We want to partition only
# the first internal disk.
ls_output=\$(ls -l /dev/disk/by-path/pci* | grep -i -e scsi -e cciss | grep -v -i -e part -e sr | head -n 1)

# If we did not get any proper data for disk devices, just let anaconda do auto partitioning
# and use all/whatever disks anaconda finds, rather than throw an error.
if [[ -z "$ls_output" ]]
then
  ks_partition_cmd=""
else
  # NOTE: we are parsing a output that looks like this:
  #     lrwxrwxrwx. 1 root root 9 Jun 18 13:01 /dev/disk/by-path/pci-0000:0c:00.0-scsi-0:0:0:1 -> ../../sda
  device_symlink=\$(echo \$ls_output | awk '{print \$11}')

  if [[ ! -z \$(echo \$device_symlink | grep -i sd) ]]
  then
    # The first internal disk is a non-RAID disk.
   # Remove the "../../" prefix in "../../sda"
    first_internal_disk_name=\${device_symlink\#\#*/}
  else
    # The first internal disk is a RAID disk.
    # Remove the "../../" prefix in "../../cciss/c0d0"
    first_internal_disk_name=\$(echo \$device_symlink | awk -F'/' '{print \$(NF-1)"/"\$NF}')
  fi

  ks_partition_cmd="ignoredisk --only-use=\$first_internal_disk_name"

fi



# Allow anaconda to partition the system as needed
# using just the first disk

cat <<PART_EOF > /tmp/partition_info

autopart
$ks_partition_cmd

PART_EOF
======== END SNIPPET ============


Thanks
Balaji

_______________________________________________
Kickstart-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/kickstart-list
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.