summaryrefslogtreecommitdiffstats
path: root/source/installer/sources/initrd/sbin/probe
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2018-06-06 22:19:01 +0000
committer Eric Hameleers <alien@slackware.com>2018-06-07 08:58:09 +0200
commit6e00c56127b4fa2328e596ac18647fb7f27b674d (patch)
treed9cb5f96f79880fb29e1875aa169336346d94989 /source/installer/sources/initrd/sbin/probe
parentec4fd2d70a99a651f8498ce4c1ca8b38b9583c39 (diff)
downloadcurrent-6e00c56127b4fa2328e596ac18647fb7f27b674d.tar.gz
current-6e00c56127b4fa2328e596ac18647fb7f27b674d.tar.xz
Wed Jun 6 22:19:01 UTC 201820180606221901
a/bash-4.4.023-x86_64-1.txz: Upgraded. a/kernel-firmware-20180604_1fa9ce3-noarch-1.txz: Upgraded. a/kernel-generic-4.14.48-x86_64-1.txz: Upgraded. a/kernel-huge-4.14.48-x86_64-1.txz: Upgraded. a/kernel-modules-4.14.48-x86_64-1.txz: Upgraded. ap/cups-2.2.8-x86_64-1.txz: Upgraded. ap/ghostscript-fonts-std-8.11-noarch-3.txz: Rebuilt. Rebuilt this and many other font packages or packages with build scripts that call mkfontdir or mkfontscale to suppress any error messages caused by collisions if another package installation is writing files to the same font directories when those utilities are run. In that case, the other package will also be running mkfontdir/mkfontscale after the files are installed, so any issues will be cleaned up then. Last one out turn off the lights, so to speak. ap/sqlite-3.24.0-x86_64-1.txz: Upgraded. ap/terminus-font-4.40-noarch-3.txz: Rebuilt. d/kernel-headers-4.14.48-x86-1.txz: Upgraded. d/rust-1.26.2-x86_64-1.txz: Upgraded. k/kernel-source-4.14.48-noarch-1.txz: Upgraded. l/elfutils-0.171-x86_64-1.txz: Upgraded. l/harfbuzz-1.7.7-x86_64-1.txz: Upgraded. l/mozilla-nss-3.37.3-x86_64-1.txz: Upgraded. l/readline-7.0.005-x86_64-1.txz: Upgraded. x/dejavu-fonts-ttf-2.37-noarch-4.txz: Rebuilt. x/font-adobe-100dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-adobe-75dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-adobe-utopia-100dpi-1.0.4-noarch-3.txz: Rebuilt. x/font-adobe-utopia-75dpi-1.0.4-noarch-3.txz: Rebuilt. x/font-adobe-utopia-type1-1.0.4-noarch-3.txz: Rebuilt. x/font-arabic-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-bh-100dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-bh-75dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-bh-lucidatypewriter-100dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-bh-lucidatypewriter-75dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-bh-ttf-1.0.3-noarch-3.txz: Rebuilt. x/font-bh-type1-1.0.3-noarch-3.txz: Rebuilt. x/font-bitstream-100dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-bitstream-75dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-bitstream-speedo-1.0.2-noarch-3.txz: Rebuilt. x/font-bitstream-type1-1.0.3-noarch-3.txz: Rebuilt. x/font-cronyx-cyrillic-1.0.3-noarch-3.txz: Rebuilt. x/font-cursor-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-daewoo-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-dec-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-ibm-type1-1.0.3-noarch-3.txz: Rebuilt. x/font-isas-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-jis-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-micro-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-misc-cyrillic-1.0.3-noarch-3.txz: Rebuilt. x/font-misc-ethiopic-1.0.3-noarch-3.txz: Rebuilt. x/font-misc-meltho-1.0.3-noarch-3.txz: Rebuilt. x/font-misc-misc-1.1.2-noarch-3.txz: Rebuilt. x/font-mutt-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-schumacher-misc-1.1.2-noarch-3.txz: Rebuilt. x/font-screen-cyrillic-1.0.4-noarch-3.txz: Rebuilt. x/font-sony-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-sun-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-winitzki-cyrillic-1.0.3-noarch-3.txz: Rebuilt. x/font-xfree86-type1-1.0.4-noarch-3.txz: Rebuilt. x/liberation-fonts-ttf-2.00.1-noarch-3.txz: Rebuilt. x/libinput-1.11.0-x86_64-1.txz: Upgraded. x/sazanami-fonts-ttf-20040629-noarch-3.txz: Rebuilt. x/sinhala_lklug-font-ttf-20060929-noarch-3.txz: Rebuilt. x/tibmachuni-font-ttf-1.901b-noarch-3.txz: Rebuilt. x/ttf-indic-fonts-0.5.14-noarch-3.txz: Rebuilt. x/ttf-tlwg-0.6.4-noarch-3.txz: Rebuilt. x/urw-core35-fonts-otf-20170801_91edd6e_git-noarch-2.txz: Rebuilt. x/wqy-zenhei-font-ttf-0.8.38_1-noarch-6.txz: Rebuilt. xap/mozilla-firefox-60.0.2-x86_64-1.txz: Upgraded. This release contains security fixes and improvements. For more information, see: https://www.mozilla.org/security/known-vulnerabilities/firefox.html (* Security fix *) xap/x3270-3.3.12ga7-x86_64-5.txz: Rebuilt. isolinux/initrd.img: Rebuilt. kernels/*: Upgraded. usb-and-pxe-installers/usbboot.img: Rebuilt.
Diffstat (limited to 'source/installer/sources/initrd/sbin/probe')
-rwxr-xr-xsource/installer/sources/initrd/sbin/probe438
1 files changed, 438 insertions, 0 deletions
diff --git a/source/installer/sources/initrd/sbin/probe b/source/installer/sources/initrd/sbin/probe
new file mode 100755
index 000000000..eca6db9dd
--- /dev/null
+++ b/source/installer/sources/initrd/sbin/probe
@@ -0,0 +1,438 @@
+#!/bin/sh
+# This is 'probe', a wrapper for using fdisk to gather drive info for
+# the Slackware setup scripts. I hate to bounce this much garbage through
+# a tmpdir, but it looks like large variables can make ash crash...
+
+# Many thanks to Vincent Rivellino for contributing the patches to support
+# Mylex and Compaq RAID controllers.
+
+# Regularize output that will be parsed:
+unset LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY \
+ LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT \
+ LC_IDENTIFICATION LC_ALL
+LANG=C
+export LANG
+
+TMP=/var/log/setup/tmp
+
+# Use cached results if they exist and /proc/partitions has not changed:
+if [ -r $TMP/SeTpartition.md5 -a -r $TMP/SeTfdisk ]; then
+ if [ "$(cat $TMP/SeTpartition.md5)" = "$(md5sum /proc/partitions)" ]; then
+ cat $TMP/SeTfdisk
+ exit 0
+ fi
+fi
+
+# First run, or /proc/partitions has changed.
+# Make a checksum for later comparison:
+md5sum /proc/partitions > $TMP/SeTpartition.md5
+
+# Wipe any previously existing results:
+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
+ elif [ "$2" = "64" ]; then
+ fdisk -l /dev/$4 >> $TMP/SeTfdisk
+ fi
+}
+
+list_scsi() {
+ # find drive # 0 - 15
+ DRV=`expr $1 / 16`
+ NUM=`expr $1 % 16`
+ if [ ! "$NUM" = "0" ]; then
+ return
+ fi
+ if [ "$DRV" = "0" ]; then
+ fdisk -l /dev/sda >> $TMP/SeTfdisk
+ elif [ "$DRV" = "1" ]; then
+ fdisk -l /dev/sdb >> $TMP/SeTfdisk
+ elif [ "$DRV" = "2" ]; then
+ fdisk -l /dev/sdc >> $TMP/SeTfdisk
+ elif [ "$DRV" = "3" ]; then
+ fdisk -l /dev/sdd >> $TMP/SeTfdisk
+ elif [ "$DRV" = "4" ]; then
+ fdisk -l /dev/sde >> $TMP/SeTfdisk
+ elif [ "$DRV" = "5" ]; then
+ fdisk -l /dev/sdf >> $TMP/SeTfdisk
+ elif [ "$DRV" = "6" ]; then
+ fdisk -l /dev/sdg >> $TMP/SeTfdisk
+ elif [ "$DRV" = "7" ]; then
+ fdisk -l /dev/sdh >> $TMP/SeTfdisk
+ elif [ "$DRV" = "8" ]; then
+ fdisk -l /dev/sdi >> $TMP/SeTfdisk
+ elif [ "$DRV" = "9" ]; then
+ fdisk -l /dev/sdj >> $TMP/SeTfdisk
+ elif [ "$DRV" = "10" ]; then
+ fdisk -l /dev/sdk >> $TMP/SeTfdisk
+ elif [ "$DRV" = "11" ]; then
+ fdisk -l /dev/sdl >> $TMP/SeTfdisk
+ elif [ "$DRV" = "12" ]; then
+ fdisk -l /dev/sdm >> $TMP/SeTfdisk
+ elif [ "$DRV" = "13" ]; then
+ fdisk -l /dev/sdn >> $TMP/SeTfdisk
+ elif [ "$DRV" = "14" ]; then
+ fdisk -l /dev/sdo >> $TMP/SeTfdisk
+ elif [ "$DRV" = "15" ]; then
+ fdisk -l /dev/sdp >> $TMP/SeTfdisk
+ fi
+}
+
+# List Mylex RAID device
+list_rd() {
+ # find drive
+ DRV=`expr $2 / 8`
+ NUM=`expr $2 % 8`
+ if [ ! "$NUM" = "0" ]; then
+ return
+ fi
+ fdisk -l /dev/rd/c$1d$DRV >> $TMP/SeTfdisk
+ #output_gpt_partitions /dev/rd/c$1d$DRV >> $TMP/SeTfdisk
+}
+
+# List Cpq SMART/2 RAID device
+list_ida() {
+ # find drive
+ DRV=`expr $2 / 16`
+ NUM=`expr $2 % 16`
+ if [ ! "$NUM" = "0" ]; then
+ return
+ fi
+ fdisk -l /dev/ida/c$1d$DRV >> $TMP/SeTfdisk
+ #output_gpt_partitions /dev/ida/c$1d$DRV >> $TMP/SeTfdisk
+}
+
+list_cciss() {
+ # find drive
+ DRV=`expr $2 / 16`
+ NUM=`expr $2 % 16`
+ if [ ! "$NUM" = "0" ]; then
+ return
+ fi
+ fdisk -l /dev/cciss/c$1d$DRV >> $TMP/SeTfdisk
+ #output_gpt_partitions /dev/cciss/c$1d$DRV >> $TMP/SeTfdisk
+}
+
+list_ataraid() {
+ # find drive
+ DRV=`expr $2 / 16`
+ NUM=`expr $2 % 16`
+ if [ "$NUM" = "0" ]; then
+ fdisk -l /dev/ataraid/d$DRV >> $TMP/SeTfdisk
+ #output_gpt_partitions /dev/ataraid/d$DRV >> $TMP/SeTfdisk
+ else
+ return
+ fi
+}
+
+list_amiraid() {
+ # find drive
+ DRV=`expr $2 / 16`
+ NUM=`expr $2 % 16`
+ if [ "$NUM" = "0" ]; then
+ fdisk -l /dev/amiraid/ar$DRV >> $TMP/SeTfdisk
+ #output_gpt_partitions /dev/amiraid/ar$DRV >> $TMP/SeTfdisk
+ else
+ return
+ fi
+}
+
+list_mmc() {
+ # find drive
+ DRV=`expr $2 / 8`
+ NUM=`expr $2 % 8`
+ if [ "$NUM" = "0" ]; then
+ fdisk -l /dev/mmcblk$DRV >> $TMP/SeTfdisk
+ #output_gpt_partitions /dev/mmcblk$DRV >> $TMP/SeTfdisk
+ else
+ return
+ fi
+}
+
+list_nvme() {
+ fdisk -l | grep $1 >> $TMP/SeTfdisk 2> /dev/null
+}
+
+is_swap() {
+ HEADER=$(dd if="$1" bs=1 skip=4086 count=10 2>/dev/null | strings)
+ if [ "$HEADER" = "SWAPSPACE2" -o "$HEADER" = "SWAP_SPACE" ]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+list_md() {
+ if ( is_swap "/dev/$2" ); then TYPE="Linux swap"; else TYPE="Linux"; fi
+ echo "/dev/$2 1 2 $1 kk $TYPE" >> $TMP/SeTfdisk
+}
+
+list_lvm() {
+ lvscan 2>/dev/null | grep "ACTIVE" | while read line ; do
+ SMASHED_LINE=$line
+ if [ "$SMASHED_LINE" = "" ]; then
+ break;
+ fi
+ DEV=`echo $SMASHED_LINE | cut -f2 -d"'"`
+ SIZE=`lvdisplay $DEV -C --units k --noheadings --separator : | cut -f4 -d':' | sed -e 's/^\([0-9]*\)[^0-9].*/\1/'`
+ TYPE="Linux"
+ if ( is_swap "$DEV" ); then TYPE="Linux swap"; fi
+ echo "$DEV 0 0 $SIZE lv $TYPE" >> $TMP/SeTfdisk
+ done
+}
+
+# List any volumes created by cryptsetup
+list_crypt() {
+ for i in $(ls /dev/mapper/); do
+ if cryptsetup status $i 2>/dev/null | grep "is active" 1>/dev/null ; then
+ DEV=$(cryptsetup status $i 2>/dev/null | grep "is active" | cut -f1 -d' ')
+ SIZE=$(fdisk -s $(cryptsetup status $i 2>/dev/null | grep "device:" | cut -f2 -d: | tr -d ' '))
+ echo "$DEV 0 0 $SIZE lc Linux" >> $TMP/SeTfdisk
+ fi
+ done
+}
+
+# List virtual partitions
+list_virt() {
+ fdisk -l /dev/$1 >> $TMP/SeTfdisk
+ #output_gpt_partitions /dev/$1 >> $TMP/SeTfdisk
+}
+
+output_gpt_partitions() {
+# First, make sure the device is GPT:
+if fdisk -l $1 2> /dev/null | grep -wq -e "GPT" -e "Disklabel type: gpt" ; then
+ unset output
+ # In the case of some RAID device like Mylex we will need to delimit the
+ # partition number. We will set a partition delimiter variable P set
+ # either to an empty string (default) or the needed delimiter.
+ TESTRAID="$(echo $1 | cut -f 2 -d /)"
+ case "$TESTRAID" in
+ 'amiraid' )
+ P="p"
+ ;;
+ 'ataraid' )
+ P="p"
+ ;;
+ 'cciss' )
+ P="p"
+ ;;
+ 'ida' )
+ P="p"
+ ;;
+ 'rd' )
+ P="p"
+ ;;
+ *)
+ P=""
+ ;;
+ esac
+ gdisk -l $1 | tr -d '*' | while read parse ; do
+ if [ ! -z $output ]; then
+ line=$parse
+ if [ ! "$(echo $line | cut -b1)" = "" ]; then
+ gptpartition=${1}${P}$(echo $line | cut -f 1 -d ' ')
+ gpttype="$(echo $line | cut -f 6 -d ' ')"
+ if [ "$gpttype" = "8200" ]; then
+ fdisktype="Linux swap"
+ elif [ "$gpttype" = "0700" ]; then
+ if dd if=$gptpartition bs=1K count=1 2> /dev/null | grep -wq NTFS ; then
+ fdisktype="HPFS/NTFS"
+ elif dd if=$gptpartition bs=1K count=1 2> /dev/null | grep -wq EXFAT ; then
+ fdisktype="exFAT"
+ else
+ fdisktype="W95 FAT32"
+ fi
+ elif [ "$gpttype" = "AF00" ]; then
+ fdisktype="HFS+"
+ elif [ "$gpttype" = "EF00" ]; then
+ fdisktype="EFI System Partition"
+ elif [ "$gpttype" = "8300" ]; then
+ fdisktype=Linux
+ else
+ fdisktype="Unknown hex code $gpttype"
+ fi
+ sectorsize="$(gdisk -l $1 | tr -d '*' | grep "Logical sector size" | cut -f 2 -d : | cut -f 2 -d ' ')"
+ gptstart="$(expr $(echo $line | cut -f 2 -d ' ') \* $sectorsize / 1024)"
+ gptend="$(expr $(echo $line | cut -f 3 -d ' ') \* $sectorsize / 1024)"
+ gptsize="$(expr $gptend - $gptstart)"
+ echo $gptpartition $gptstart $gptend $gptsize $gpttype $fdisktype
+ fi
+ fi
+ if echo $parse | grep -q "^Number" ; then
+ output=true
+ fi
+ done
+fi
+}
+
+list_scsi_gpt() {
+ # find drive # 0 - 15
+ DRV=`expr $1 / 16`
+ NUM=`expr $1 % 16`
+ if [ ! "$NUM" = "0" ]; then
+ return
+ fi
+ if [ "$DRV" = "0" ]; then
+ output_gpt_partitions /dev/sda
+ elif [ "$DRV" = "1" ]; then
+ output_gpt_partitions /dev/sdb
+ elif [ "$DRV" = "2" ]; then
+ output_gpt_partitions /dev/sdc
+ elif [ "$DRV" = "3" ]; then
+ output_gpt_partitions /dev/sdd
+ elif [ "$DRV" = "4" ]; then
+ output_gpt_partitions /dev/sde
+ elif [ "$DRV" = "5" ]; then
+ output_gpt_partitions /dev/sdf
+ elif [ "$DRV" = "6" ]; then
+ output_gpt_partitions /dev/sdg
+ elif [ "$DRV" = "7" ]; then
+ output_gpt_partitions /dev/sdh
+ elif [ "$DRV" = "8" ]; then
+ output_gpt_partitions /dev/sdi
+ elif [ "$DRV" = "9" ]; then
+ output_gpt_partitions /dev/sdj
+ elif [ "$DRV" = "10" ]; then
+ output_gpt_partitions /dev/sdk
+ elif [ "$DRV" = "11" ]; then
+ output_gpt_partitions /dev/sdl
+ elif [ "$DRV" = "12" ]; then
+ output_gpt_partitions /dev/sdm
+ elif [ "$DRV" = "13" ]; then
+ output_gpt_partitions /dev/sdn
+ elif [ "$DRV" = "14" ]; then
+ output_gpt_partitions /dev/sdo
+ elif [ "$DRV" = "15" ]; then
+ output_gpt_partitions /dev/sdp
+ fi
+}
+
+# List the LVM volumes:
+list_lvm
+
+# List CRYPT volumes:
+list_crypt
+
+## This is obsolete, since fdisk handles GPT now.
+## List GPT partitions:
+#cat /proc/partitions | while read line ; do
+# SMASHED_LINE=$line
+# MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
+# MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '`
+# if [ "$MAJOR" = "8" ]; then
+# list_scsi_gpt $MINOR
+# fi
+#done
+
+# Other partitions:
+if cat /proc/partitions | grep -E '/|[0-9]' 1>/dev/null 2>/dev/null ; then # new
+ cat /proc/partitions | grep -E '/|[0-9]' | while read line ; do
+ SMASHED_LINE=$line
+ MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
+ MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '`
+ DEVNAME=`echo $SMASHED_LINE | cut -f 4 -d ' '`
+ if [ "$MAJOR" = "3" ]; then
+ list_ide $MAJOR $MINOR hda hdb
+ elif [ "$MAJOR" = "8" ]; then
+ list_scsi $MINOR
+ elif [ "$MAJOR" = "9" ]; then
+ list_md `echo $SMASHED_LINE | cut -f 3 -d ' ' | tr -d '/'` \
+ `echo $SMASHED_LINE | cut -f 4 -d ' '`
+ elif [ "$MAJOR" = "22" ]; then
+ list_ide $MAJOR $MINOR hdc hdd
+ elif [ "$MAJOR" = "33" ]; then
+ list_ide $MAJOR $MINOR hde hdf
+ elif [ "$MAJOR" = "34" ]; then
+ list_ide $MAJOR $MINOR hdg hdh
+ elif [ "$MAJOR" = "48" ]; then
+ list_rd 0 $MINOR
+ elif [ "$MAJOR" = "49" ]; then
+ list_rd 1 $MINOR
+ elif [ "$MAJOR" = "50" ]; then
+ list_rd 2 $MINOR
+ elif [ "$MAJOR" = "51" ]; then
+ list_rd 3 $MINOR
+ elif [ "$MAJOR" = "52" ]; then
+ list_rd 4 $MINOR
+ elif [ "$MAJOR" = "53" ]; then
+ list_rd 5 $MINOR
+ elif [ "$MAJOR" = "54" ]; then
+ list_rd 6 $MINOR
+ elif [ "$MAJOR" = "55" ]; then
+ list_rd 7 $MINOR
+ elif [ "$MAJOR" = "56" ]; then
+ list_ide $MAJOR $MINOR hdi hdj
+ elif [ "$MAJOR" = "57" ]; then
+ list_ide $MAJOR $MINOR hdk hdl
+ elif [ "$MAJOR" = "72" ]; then
+ list_ida 0 $MINOR
+ elif [ "$MAJOR" = "73" ]; then
+ list_ida 1 $MINOR
+ elif [ "$MAJOR" = "74" ]; then
+ list_ida 2 $MINOR
+ elif [ "$MAJOR" = "75" ]; then
+ list_ida 3 $MINOR
+ elif [ "$MAJOR" = "76" ]; then
+ list_ida 4 $MINOR
+ elif [ "$MAJOR" = "77" ]; then
+ list_ida 5 $MINOR
+ elif [ "$MAJOR" = "78" ]; then
+ list_ida 6 $MINOR
+ elif [ "$MAJOR" = "79" ]; then
+ list_ida 7 $MINOR
+ elif [ "$MAJOR" = "80" ]; then
+ list_ide $MAJOR $MINOR hdm hdn
+ elif [ "$MAJOR" = "89" ]; then
+ list_ide $MAJOR $MINOR hdo hdp
+ elif [ "$MAJOR" = "90" ]; then
+ list_ide $MAJOR $MINOR hdq hdr
+ elif [ "$MAJOR" = "91" ]; then
+ list_ide $MAJOR $MINOR hds hdt
+ elif [ "$MAJOR" = "101" ]; then
+ list_amiraid $MAJOR $MINOR
+ elif [ "$MAJOR" = "104" \
+ -o "$MAJOR" = "105" \
+ -o "$MAJOR" = "106" \
+ -o "$MAJOR" = "107" \
+ -o "$MAJOR" = "108" \
+ -o "$MAJOR" = "109" \
+ -o "$MAJOR" = "110" \
+ -o "$MAJOR" = "111" ]; then
+ list_cciss $(( $MAJOR - 104 )) $MINOR
+ elif [ "$MAJOR" = "114" ]; then
+ list_ataraid $MAJOR $MINOR
+ elif [ "$MAJOR" = "179" ]; then
+ list_mmc $MAJOR $MINOR
+ elif [ "$MAJOR" = "259" ]; then
+ if echo $line | grep -q p; then
+ list_nvme $DEVNAME
+ fi
+ elif [ $(expr $DEVNAME : 'x\?vd[^0-9]*$') -ne 0 ]; then
+ # The virtio devices have no set major dev number, so we have to search
+ # by name. Matches full drive names for KVM/lguest (vda) and Xen (xvda).
+ list_virt $DEVNAME
+ fi
+ done
+else # old format and no RAID:
+ if cat /proc/partitions | grep md 1> /dev/null 2> /dev/null ; then
+ cat /proc/partitions | grep md | while read line ; do
+ SMASHED_LINE=$line
+ MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
+ if [ "$MAJOR" = "9" ]; then
+ list_md `echo $SMASHED_LINE | cut -f 3 -d ' ' | tr -d '/'` \
+ `echo $SMASHED_LINE | cut -f 4 -d ' '`
+ fi
+ done
+ fi
+ fdisk -l 2> /dev/null >> $TMP/SeTfdisk
+fi
+
+# Change the names to be the same as what the old fdisk used:
+sed -i -e "s/Linux filesystem/Linux/g" $TMP/SeTfdisk
+sed -i -e "s/EFI System/EFI System Partition/g" $TMP/SeTfdisk
+sed -i -e "s,EFI (FAT-12/16/32),EFI System Partition,g" $TMP/SeTfdisk
+
+cat $TMP/SeTfdisk