--- sbin/probe.copy 2003-03-09 20:21:39.000000000 +0000 +++ sbin/probe 2006-12-30 09:01:19.000000000 +0000 @@ -6,15 +6,36 @@ # Many thanks to Vincent Rivellino for contributing the patches to support # Mylex and Compaq RAID controllers. +# 31-Dec-2005 - mozes@armedslack.org +# - if we detect an 'Acorn' machine then use acorn-fdisk rather than fdisk. +# This is because fdisk -l on my RiscPC finds Linux partitions on a non Linux disk +# and proceeds to list the RISC OS partitions as Linux Native - screwing up the +# installer. There were probably some Linux partitions on there at one stage +# and something's not been overwritten. +# See the .txt file in the patches directory for an fdisk -l output, if you're +# interested. + +if grep Acorn /proc/cpuinfo > /dev/null 2>&1 ; then + FDISK=acorn-fdisk-wrapper + if [ -x /sbin/partprobe ]; then + dialog \ + --title "Reading partition information" \ + --infobox "Please wait up to one minute: re-reading partition tables" 0 0 + partprobe + fi + else + FDISK=fdisk +fi + TMP=/var/log/setup/tmp rm -f $TMP/SeTfdisk # listide major minor hd1 hd2 (2 base devs for major) list_ide() { if [ "$2" = "0" ]; then - fdisk -l /dev/$3 >> $TMP/SeTfdisk + $FDISK -l /dev/$3 >> $TMP/SeTfdisk elif [ "$2" = "64" ]; then - fdisk -l /dev/$4 >> $TMP/SeTfdisk + $FDISK -l /dev/$4 >> $TMP/SeTfdisk fi } @@ -26,37 +47,37 @@ return fi if [ "$DRV" = "0" ]; then - fdisk -l /dev/sda >> $TMP/SeTfdisk + $FDISK -l /dev/sda >> $TMP/SeTfdisk elif [ "$DRV" = "1" ]; then - fdisk -l /dev/sdb >> $TMP/SeTfdisk + $FDISK -l /dev/sdb >> $TMP/SeTfdisk elif [ "$DRV" = "2" ]; then - fdisk -l /dev/sdc >> $TMP/SeTfdisk + $FDISK -l /dev/sdc >> $TMP/SeTfdisk elif [ "$DRV" = "3" ]; then - fdisk -l /dev/sdd >> $TMP/SeTfdisk + $FDISK -l /dev/sdd >> $TMP/SeTfdisk elif [ "$DRV" = "4" ]; then - fdisk -l /dev/sde >> $TMP/SeTfdisk + $FDISK -l /dev/sde >> $TMP/SeTfdisk elif [ "$DRV" = "5" ]; then - fdisk -l /dev/sdf >> $TMP/SeTfdisk + $FDISK -l /dev/sdf >> $TMP/SeTfdisk elif [ "$DRV" = "6" ]; then - fdisk -l /dev/sdg >> $TMP/SeTfdisk + $FDISK -l /dev/sdg >> $TMP/SeTfdisk elif [ "$DRV" = "7" ]; then - fdisk -l /dev/sdh >> $TMP/SeTfdisk + $FDISK -l /dev/sdh >> $TMP/SeTfdisk elif [ "$DRV" = "8" ]; then - fdisk -l /dev/sdi >> $TMP/SeTfdisk + $FDISK -l /dev/sdi >> $TMP/SeTfdisk elif [ "$DRV" = "9" ]; then - fdisk -l /dev/sdj >> $TMP/SeTfdisk + $FDISK -l /dev/sdj >> $TMP/SeTfdisk elif [ "$DRV" = "10" ]; then - fdisk -l /dev/sdk >> $TMP/SeTfdisk + $FDISK -l /dev/sdk >> $TMP/SeTfdisk elif [ "$DRV" = "11" ]; then - fdisk -l /dev/sdl >> $TMP/SeTfdisk + $FDISK -l /dev/sdl >> $TMP/SeTfdisk elif [ "$DRV" = "12" ]; then - fdisk -l /dev/sdm >> $TMP/SeTfdisk + $FDISK -l /dev/sdm >> $TMP/SeTfdisk elif [ "$DRV" = "13" ]; then - fdisk -l /dev/sdn >> $TMP/SeTfdisk + $FDISK -l /dev/sdn >> $TMP/SeTfdisk elif [ "$DRV" = "14" ]; then - fdisk -l /dev/sdo >> $TMP/SeTfdisk + $FDISK -l /dev/sdo >> $TMP/SeTfdisk elif [ "$DRV" = "15" ]; then - fdisk -l /dev/sdp >> $TMP/SeTfdisk + $FDISK -l /dev/sdp >> $TMP/SeTfdisk fi } @@ -68,7 +89,7 @@ if [ ! "$NUM" = "0" ]; then return fi - fdisk -l /dev/rd/c$1d$DRV >> $TMP/SeTfdisk + $FDISK -l /dev/rd/c$1d$DRV >> $TMP/SeTfdisk } # List Cpq SMART/2 RAID device @@ -79,7 +100,7 @@ if [ ! "$NUM" = "0" ]; then return fi - fdisk -l /dev/ida/c$1d$DRV >> $TMP/SeTfdisk + $FDISK -l /dev/ida/c$1d$DRV >> $TMP/SeTfdisk } list_cciss() { @@ -89,7 +110,7 @@ if [ ! "$NUM" = "0" ]; then return fi - fdisk -l /dev/cciss/c$1d$DRV >> $TMP/SeTfdisk + $FDISK -l /dev/cciss/c$1d$DRV >> $TMP/SeTfdisk } list_ataraid() { @@ -97,7 +118,7 @@ DRV=`expr $2 / 16` NUM=`expr $2 % 16` if [ "$NUM" = "0" ]; then - fdisk -l /dev/ataraid/d$DRV >> $TMP/SeTfdisk + $FDISK -l /dev/ataraid/d$DRV >> $TMP/SeTfdisk else return fi @@ -108,7 +129,7 @@ DRV=`expr $2 / 16` NUM=`expr $2 % 16` if [ "$NUM" = "0" ]; then - fdisk -l /dev/amiraid/ar$DRV >> $TMP/SeTfdisk + $FDISK -l /dev/amiraid/ar$DRV >> $TMP/SeTfdisk else return fi @@ -206,7 +227,7 @@ fi done fi - fdisk -l >> $TMP/SeTfdisk + $FDISK -l >> $TMP/SeTfdisk fi cat $TMP/SeTfdisk