#!/bin/bash # $Id$ source include/hwdetection.sh # use C locale export LC_ALL=C nocdrom() { local i local item="$1" for i in ${ALL_CDROMS} do [[ ${i} = ${item} ]] && return 1 done return 0 } query_partition_disk_setup() { local i local partition local filesystem local mountpoint local command="$1" local given_partition="$2" # #--overwrite for i in ${PARTITION_DISK_SETUP} do partition=$(echo ${i} | cut -d: -f1) filesystem=$(echo ${i} | cut -d: -f2) mountpoint=$(echo ${i} | cut -d: -f3) if [[ ${partition} = ${given_partition} ]] then case ${command} in --filesystem) echo "${filesystem}"; return 0;; --mountpoint) echo "${mountpoint}"; return 0;; --delete) export PARTITION_DISK_SETUP="${PARTITION_DISK_SETUP/${i}/}"; return 0;; esac fi done } # all disks, but exclude all ramdisks ALL_DISKS="$(get_hwinfo disk | sed '/\/dev\/ram[0-9].*/d' )" ALL_CDROMS="$(get_hwinfo cdrom)" for disk in ${ALL_DISKS} do # exclude cdroms nocdrom ${disk} || continue echo "${disk}|${disk}" # while read partition size id boot while read partition blurb do # size size="$(sfdisk -s ${partition})" # fstype fstype="$(mount -f --guess-fstype ${partition})" # bootable flag boot="$(fdisk -l ${disk} | grep ${partition} | grep \* | sed 's/.*\(*\).*/b/')" # # swap # if [[ ${id} = 82 ]] # then # mountpoint="swap" # format="swap" # export PARTITION_DISK_SETUP="${PARTITION_DISK_SETUP} ${disk}:swap:swap" # else # mountpoint, but detect any swap mountpoint="$(query_partition_disk_setup --mountpoint ${partition})" # filesystem to format format="$(query_partition_disk_setup --filesystem ${partition})" # fi # do not print unkown disk with a size of 1 # these disks are containers for secondary partition types if [[ ${fstype} = unknown ]] && [ ${size} -eq 1 ] then continue fi echo -n "|${partition}" echo -n "|${size}" echo -n "|${fstype}" echo -n "|${boot}" echo -n "|${mountpoint}" echo -n "|${format}" echo done << EOF $(get_hwinfo partition | grep ${disk}) EOF done