#!/bin/sh
#============================================================================#
#                Backup critical information about system                    #
#============================================================================#
#  (C) Denis Smirnov <ds@seiros.ru>                             22 Aug 2008  #
#============================================================================#
. /usr/share/syskeeper/functions

D=$dir/diskdata

rm -rf $dir/diskdata
mkdir -p $D
pushd $dir/diskdata > /dev/null

> $D/blkid.tmp

ls -1 /sys/block \
		| grep -v ^ram \
		| grep -v ^zram \
		| grep -v ^dm \
		| grep -v ^loop \
		| grep -v ^md \
		| grep -v ^fd \
		| while read dev; do
	realdev=`echo $dev | sed 's%!%/%g'`
	if [ "x`cat /sys/block/$dev/removable`" == "x0" ]; then
		mkdir -p $D/$dev
		fdisk -l /dev/$realdev > $D/$dev/fdisk
		fdisk -lu /dev/$realdev > $D/$dev/fdisk.sectors
		sfdisk -d /dev/$realdev > $D/$dev/sfdisk.dump
		dd if=/dev/$realdev of=$D/$dev/1st_block bs=4k count=1 > /dev/null 2> /dev/null
	fi
done

## blkid
ls -1 /sys/class/block \
		| grep -v ^ram \
		| grep -v ^zram \
		| grep -v ^loop \
		| grep -v ^fd \
		| while read dev; do
	realdev=`echo $dev | sed 's%!%/%g'`
	if [ -f /sys/class/block/$realdev/dm/name ]; then
	    realdev=/dev/mapper/`cat /sys/class/block/$realdev/dm/name`
	else
	    realdev=/dev/$realdev
	fi
#	if [ "x`cat /sys/block/$dev/removable`" == "x0" ]; then
    	    blkid "$realdev" >> $D/blkid.tmp
#	fi
done

sort < $D/blkid.tmp > $D/blkid
rm -f $D/blkid.tmp

pvdisplay > $D/pvdisplay 2> /dev/null
vgdisplay > $D/vgdisplay 2> /dev/null
lvdisplay > $D/lvdisplay 2> /dev/null
cat /etc/fstab > $D/fstab

popd > /dev/null

