Warning!

Notice: the grml team is migrating from Mercurial to Git.
Please visit git.grml.org instead!

* fstype: vol_id is broken for swap, workaround it therefore.
authorMichael Prokop <mika@grml.org>
Sun Nov 26 16:24:05 2006 +0100 (2 years ago)
changeset 10feddb226252c
manifestfeddb226252c
parent 9ec8f4a25b06c
child 11fbc76d2adbca
tag0.3-11
* fstype: vol_id is broken for swap, workaround it therefore.
debian/changelog
fstype
--- a/debian/changelog Tue Nov 14 12:51:56 2006 +0100
+++ b/debian/changelog Sun Nov 26 16:24:05 2006 +0100
@@ -1,3 +1,9 @@ grml-scanpartitions (0.3-10) unstable; u
+grml-scanpartitions (0.3-11) unstable; urgency=low
+
+ * fstype: vol_id is broken for swap, workaround it therefore.
+
+ -- Michael Prokop <mika@grml.org> Sun, 26 Nov 2006 16:23:01 +0100
+
grml-scanpartitions (0.3-10) unstable; urgency=low
* NTFS does not support mount by label, add check for it therefor.
--- a/fstype Tue Nov 14 12:51:56 2006 +0100
+++ b/fstype Sun Nov 26 16:24:05 2006 +0100
@@ -4,7 +4,7 @@
# Authors: (c) Klaus Knopper (until April 2004), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2.
-# Latest change: Don Sep 28 18:10:40 CEST 2006 [mika]
+# Latest change: Son Nov 26 16:23:47 CET 2006 [mika]
################################################################################
if [ -n "$1" ]; then
@@ -24,16 +24,23 @@ EOT
# Check if a device/medium is present at all
dd if="$1" count=1 bs=1k >/dev/null 2>&1 || exit 2
-# Check fs-type via vol_id
- if [ -x /lib/udev/vol_id ] ; then
- FSTYPE=$(LANG=C LC_ALL=C LC_MESSAGES=C /lib/udev/vol_id $1 | grep ID_FS_TYPE)
- fi
+# check fs-type
+FSTYPE="$(LANG=C LC_ALL=C LC_MESSAGES=C file -Lkbs "$1")"
+[ "$?" = "0" ] || exit 3
+
+case "$FSTYPE" in
+ *[Ss][Ww][Aa][Pp]*)
+ # vol_id is broken for swap detection :-/
+ ;;
+ *)
+ if [ -x /lib/udev/vol_id ] ; then
+ FSTYPE=$(LANG=C LC_ALL=C LC_MESSAGES=C /lib/udev/vol_id $1 | grep ID_FS_TYPE)
+ fi
+ # fallback if vol_id fails...
+ [ -n "$FSTYPE" ] || FSTYPE="$(LANG=C LC_ALL=C LC_MESSAGES=C file -Lkbs "$1")"
+esac
# Check via file(1) it vol_id couldn't find anything
- if [ -z "$FSTYPE" ] ; then
- FSTYPE="$(LANG=C LC_ALL=C LC_MESSAGES=C file -Lkbs "$1")"
- [ "$?" = "0" ] || exit 3
- fi
case "$FSTYPE" in
*ISO\ 9660*) echo "iso9660";;
@@ -46,12 +53,12 @@ EOT
if [ "$ANYSWAP" = "yes" ] || LANG=C LC_ALL=C LC_MESSAGES=C fdisk -l $basedsk 2>/dev/null | grep "^$1 "| grep -iqs 'linux swap'; then
echo swap
else
- if [ "$basedsk" = /dev/md ] ; then
+ if [ "$basedsk" = /dev/md ] ; then
FSTYPE=$(LANG=C LC_ALL=C LC_MESSAGES=C /lib/udev/vol_id $1 | grep ID_FS_TYPE)
[ -n "$FSTYPE" ] && echo ${FSTYPE#*=} || echo "auto"
else
echo 1>&2 " * Ignoring swap signature on ${1}, use bootoption 'anyswap' to enable"
- fi
+ fi
fi
;;
*[Nn][Tt][Ff][Ss]*) echo "ntfs";;
@@ -60,8 +67,8 @@ EOT
if [ -x /lib/udev/vol_id ] ; then
FSTYPE=$(LANG=C LC_ALL=C LC_MESSAGES=C /lib/udev/vol_id $1 | grep ID_FS_TYPE)
[ -n "$FSTYPE" ] && echo ${FSTYPE#*=} || echo "auto"
- else
- echo auto
+ else
+ echo auto
fi
;;
esac