home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- # (C) Klaus Knopper Nov 2002
- # Reads /proc/partitions, returns table of the form
- # basename(devicefile) mountpoint filesystemtype
- # Useful for automatic generation of /etc/fstab entries (you
- # still may have to add noauto 0 0).
-
- # Modified by maestromae for KateOS
-
- T_PX=/mnt
-
- [ ! -e /proc/partitions ] && { echo "$0: /proc not mounted, exiting" >&2; exit 1; }
-
- ###
-
- list_cdrom_devices()
- {
- if [ -r /proc/sys/dev/cdrom/info ] ; then
- for CDDEVICE in `cat /proc/sys/dev/cdrom/info | head -n 3 | tail -n 1 | cut -d ":" -f 2`; do
- echo "/dev/$CDDEVICE"
- done
- fi
- }
-
-
- if [ -z "$1" ]; then
- partitions=""
- disks=""
- disksize=0
- blocksum=0
- pold="none"
- while read major minor blocks partition relax; do
- partition="${partition#/dev/}"
- [ -z "$partition" -o ! -e "/dev/$partition" ] && continue
- [ "$blocks" -lt 2 ] 2>/dev/null && continue
- case "$partition" in
- ?d?|ub?|ataraid/d?|rd/c?d?) disks="$disks $partition"; disksize="$blocks"; blocksum=0;;
- ram*|cloop*|loop*) ;; # Kernel 2.6 bug?
- *) blocksum="$(($blocksum + $blocks))"; [ "$blocksum" -gt "$disksize" ] >/dev/null 2>&1 || partitions="$partitions /dev/$partition";;
- esac
- done <<EOT
- $(awk 'BEGIN{old="__start"}{if($0==old){exit}else{old=$0;if($4&&$4!="name"){print $0}}}' /proc/partitions)
- EOT
-
- # Add disks without partition table (probably ZIP drives)
- for d in $disks; do
- case "$partitions" in */dev/$d*) continue;; esac
- partitions="$partitions /dev/$d"
- done
- else
- partitions="$*"
- fi
-
- for p in $partitions; do
- fs="auto"
- # fstype is an external script
- scanfs="$(fstype $p)"
- [ -n "$scanfs" ] && fs="$scanfs"
- mountpoint="/mnt/${p##*/}"
- if [ "$fs" = "swap" ] ; then
- true
- else
- echo "${p}" "${mountpoint}" "${fs}"
- fi
- done
-
-
- #list_cdrom_devices | while read DEVICE; do
- # MOUNTDIR="/mnt/`basename $DEVICE`_cdrom"
- # echo "$DEVICE $MOUNTDIR iso9660 noauto,owner,ro 0 0"
- #done
-
-
- exit 0
-