[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Detecting disk drives from an installation script



On Thu, 14 Jun 2007 17:51:24 -0500
Dallas Clement <dallas.a.clement@gmail.com> wrote:

> Can anyone please recommend the best way to programatically obtain disk
> drive information, partition, and format from an install script?
> 
> I presume I could parse the output of "fdisk -l" to get the drive info.
> Seems like there has got to be a better or less error prone method for
> doing this sort of stuff.  Also, fdisk is interactive.  I'd like to
> emulate something like the Debian installer that lists the various
> drives and partitions, allows the user to setup partitions and format,
> as well as select the partition to install Linux to.
> 
> Any recommendations will be greatly appreciated!
> 
> Regards,
> 
> Dallas Clement
> 
> 
> -- 
> To UNSUBSCRIBE, email to debian-user-REQUEST@lists.debian.org 
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

I have been done this a while ago, it's bad, but it works for me even with the problems that this script have.


#!/bin/sh

# BEGIN

fdisk=$(which fdisk)


case "$1" in
	scsi)

	$fdisk -l | grep dev | gawk -F' *' '{ print $1 }' | gawk -F'/dev/' '{ print $0 }' | grep '/dev/sd' > particiones.txt
	MSG="Se han detectado un total de $(cat particiones.txt | wc -l) particiones a escanear"
	echo $MSG del tipo $1

	for particion in $(cat particiones.txt)
	do
	detecta2=$($fdisk -l | grep $particion | grep + | gawk -F'+' '{ print $2}' | gawk -F' ' '{ print $2 }')
	detecta3=$($fdisk -l | grep $particion | grep + | gawk -F'+' '{ print $2}' | gawk -F' ' '{ print $1 }')
	echo "Detectando tipo de particion $1 para $particion:  $detecta2 con numero magico $detecta3"
	#rm -v particiones.txt 2&>1
	done
	;;
	ide)

	$fdisk -l | grep dev | gawk -F' *' '{ print $1 }' | gawk -F'/dev/' '{ print $0 }' | grep '/dev/hd' > particiones.txt
	MSG="Se han detectado un total de $(cat particiones.txt | wc -l) particiones a escanear"
	echo $MSG del tipo $1
	for particion in $(cat particiones.txt)
	do
	detecta2=$($fdisk -l | grep $particion | grep + | gawk -F'+' '{ print $2}' | gawk -F' ' '{ print $2 }')
	detecta3=$($fdisk -l | grep $particion | grep + | gawk -F'+' '{ print $2}' | gawk -F' ' '{ print $1 }')
	
	echo "Detectando tipo de particion $1 para $particion:  $detecta2 con numero magico $detecta3"
	#rm -v particiones.txt 2&>1
	done
	;;
	*)
	echo "Uso: $0 ide | scsi "
	exit 0
esac
# END




Greetings,
Orestes



Reply to: