ich arbeite an einem kleinen Bash Skript, welches mit alle Platten und jede Partition des Systems ausgibt - soweit kein Problem.
Bei den Partitionen möchte ich aber noch den Partitionstypen bzw. das verwendete Dateisystem stehen haben.
Hier der Output des ganzen Skripts, damit ihr euch das besser vorstellen könnt:
Code: Alles auswählen
# sh partitionenAuflisten
Du hast 2 Platten im System, das sind:
/dev/sda
/dev/sdb
Du hast 7 Partitionen im System, das sind:
/dev/sda1 ext3
/dev/sda2 xfs
/dev/sda3 linux-swap
/dev/sda4 erweitert oder unbekannt
/dev/sda5 ext3
/dev/sdb1 fat16
/dev/sdb2 ext3
Code: Alles auswählen
1 PARTITIONS=( $(for i in /dev/disk/by-id/* ; do readlink -e $i; done | sort -u| grep -e '[0-9]$') )
2 echo -e "Du hast ${#PARTITIONS[@]} Partitionen im System, das sind:"
3 for element in $(seq 0 $((${#PARTITIONS[@]} - 1)))
4 do
5 echo -ne "\t${PARTITIONS[$element]} "
6 ID=$( parted -s ${PARTITIONS[$element]} print 2> /dev/null | awk '/^ 1/ {print $NF}')
7 [ "$ID" == '' ] && ID="erweitert oder unbekannt"
8 echo $ID
9 done
Was ich ausprobiert habe:
file -F ' --' -s /dev/sda2 funktioniert auch, aber der Output erschlägt einen, den kann ich nicht für alle Partitionstypen sinnvoll parsen.
fdisk -l funktioniert nicht für einzelne Partitionen
Gehts einfacher?
EDIT:
kreativere Suchanfragen bei apt-cache &Co. haben mich zum Paket disktype geführt:
Code: Alles auswählen
ID=$(disktype ${PARTITIONS[$element]} | awk '/file/ {print $1} /swap/ {print "swap"} /0x83/ { print "erweiterte Partition"} ')
-close-