Offset für Partition aus Festplatte(nimage) lesen

Nachdem ich erfolgreich meine Zahlreichen Server auf XEN migiriert habe, hatte ich für die Sicherungsaufgabe das Problem dass ich ganze Festplattenpartitionen im LVM nicht so ohne weiteres mounten konnte.

Durch einen Tip eines guten Freundes hab ich zumindest mal die richtige Richtung bekommen und bin schlussendlich auf folgendes Script gestossen:

#!/bin/bash 
#----------------------------------------------------------------------
# Author: haveaniceday
# Version: 1, Last updated: 12/2007
#----------------------------------------------------------------------

# fdisk finden
PATH="/sbin:$PATH"
if [ $# -lt 1 ]
then
echo "usage: ${0##*/} <image>"
exit 1
fi

IMAGE=$1
if [ ! -f $IMAGE ]
then
echo "Warnung, $IMAGE ist kein File"
fi

# tr -d '*' => bootflag entfernen
LANG=C fdisk -lu $IMAGE 2>&1 | tr -d '*' | grep "$IMAGE[a-z0-9]" | while read part start end blocks id rest
do
echo
echo "$read $part $start $end $blocks $id $rest"
case $id in
5|f|85) echo "Ignoriere extended partition"
continue
 ;;
82) echo "Ignoriere Swap"
continue
 ;;
*)
 ;;
esac

let offset=$start*512
echo mount -o loop,ro,offset=$offset $IMAGE /mnt
done
exit 0

Dieses macht im wesentlichen nichts andere, als den Offset aller Partitionen eines Festplattenimages bestimmen (Quelle: http://www.linupedia.org/opensuse/Partition_eines_Festplattenimage_mounten ).

mit der Ausgabe:

/dev/daten/tbn-root1 63 18233774 9116856 83 Linux
mount -o loop,ro,offset=32256 /dev/daten/tbn-root /mnt

war es nun kein Problem mehr die Partition gezielt im Sicherungsscript anzusprechen und zu sichern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert