[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