[Eisfair] btrfs - wie kann ich das mounten?
Stefan Puschek
stefan.puschek at t-online.de
Mi Mai 25 17:46:09 CEST 2016
Hallo Ansgar,
...
> ich hatte die Frage unten schon mal am 02.01.2016 17:00
> im Thread "[Bacula] Backup System der Wahl?" gestellt,
> aber von dir leider keine Antwort erhalten.
muss ich wohl übersehen haben - Knick in der Optik...
> Am 25.05.2016 um 11:45 schrieb Stefan Puschek:
>> Hallo Tom und Marcus,
>
> [...]
>
>> Ich betreibe hier mittlerweile 3 Himbeeren (RaspberryPi); Massenspeicher
>> ist jeweils eine (Micro-)SD-Karte, die natürlich gesichert werden soll;
>> Backup der Karte mache ich mit dd; Die Backups werden gezipt; Damit das
>> zippen besser geht, müssten die in den Dateisystemen ungenutzten Blöcke
>> mit Nullen gefüllt sein.
>>
>> Dafür habe ich ein Skript, das alle im dd-Image enthaltenen Partitionen
>> mit Dateisystemen der Reihe nach mountet, nun wird darin eine GROSSE
>> Datei die nur Nullbytes enthält erstellt bis die Partition voll ist und
>> die Datei wird wieder gelöscht. Jetzt lässt sich das Image optimal
>> zippen.
>
> mit welchem Tool machst du das "Ausnullen" der ungenutzten Blöcke?
Bitteschön - aber die Mimik zum Mounten ist NICHT von mir - irgendwo im
Netz gefunden...
#!/bin/bash
# fdisk finden
PATH="/sbin:$PATH"
IMAGE=./raspi.dd
if [ ! -f $IMAGE ]
then
echo "Warnung, $IMAGE ist kein File"
fi
umount /mnt > /dev/null > /dev/null 2>&1
# tr -d '*' => bootflag entfernen
LANG=C fdisk -lu $IMAGE 2>&1 | tr -d '*' | grep "$IMAGE[a-z0-9]" |
while read part start end blocks size id rest
do
echo "------------------------------"
echo Partition "$part" - ID $id - Grösse $size
case $id in
5|f|85) echo "Ignoriere extended partition"
continue
;;
82) echo "Ignoriere Swap"
continue
;;
*)
;;
esac
let offset=$start*512
mount -o loop,rw,offset=$offset $IMAGE /mnt
rm -f /mnt/bigfile
rm -f /mnt/._*
rm -rf /mnt/.Spot* # Müll vom Mac
rm -rf /mnt/.Trash*
rm -rf /mnt/.fsevent*
rm -f /mnt/var/swap # wird neu angelegt
rm -rf /mnt/var/log/* # denn ich logge ins RAM
ERGEBNIS="0"
/bin/echo -n "Warten auf Fertigstellung der Partition "
COUNTER="0"
while [ "$ERGEBNIS" = "0" ]
do
dd if=/dev/zero of=/mnt/bigfile$COUNTER bs=64M count=1 >
/dev/null 2>&1
ERGEBNIS=$?
/bin/echo -n "."
let COUNTER=$COUNTER+1
sync
done
sync
rm -f /mnt/bigfile*
sync
sleep 1
umount /mnt
echo
done
echo "------------------------------"
echo "Fertig"
exit 0
Groetjes
Stefan
Mehr Informationen über die Mailingliste Eisfair