Skript zum Sichern der Partitionen der Speicherkarte per ADB-Interface

  • 3 Antworten
  • Letztes Antwortdatum
M

MSG

Neues Mitglied
2
Hallo,

da mir jetzt schon zwei SD Karten abgeraucht sind, hat es mich etwas genervt das alles wieder händisch herzustellen.

Insbesondere die zweite Partition für Link2SD ist ja unter Windows kaum zu sichern (ok, zu Hause unter Linux würde es funktionieren :blushing: )

Tante google lieferte nicht wirklich eine funktionierende Lösung. Die gibt es jetzt exklusiv hier - trara: Die erste Version.

Getestet mit Simvalley SPX-5 (Android 2.3.5) und Windows XP.

Verbesserungsvorschläge bitte gerne (ich glaube es fehlen noch ein paar Fehlerübrprüfungen...)

Folgenden Code in eine Datei android_backup_0.1.bat kopieren und die Batchdatei dann durchlesen, verstehen und anpassen!

Code:
@echo off
REM Purpose:
REM ========
REM     Create a full backup of the sd card of your android phone.
REM     Not only the first partition, also the second, third, 2nd, 3rd,... 
REM     partition can be backed up.
REM
REM Author:
REM =======
REM     Mathias Gloss  mgloss@gmail.com
REM
REM Customizing
REM ===========
REM     lookout for the two lines in the code below starting with
REM     REM CUSTOMIZE (n):
REM 
REM Prerequisites:
REM ==============
REM     1) Install the mini-sdk which you can find here:
REM        http://androidforums.com/faqs/443072-adb-guide-updated-12-05-2011-a.html
REM     2) Check/activate USB debugging for your android phone
REM     3) check if adb.exe is working:  (adb.exe help   will give you all commands)
REM        a) start the server:   adb.exe start-server
REM        b) wait for the phone: adb.exe wait-for-device
REM        c) list found device:  adb.exe devices   - this should list one device
REM        d) read the interesting mounts. The "first" partition of the sdcard is 
REM           usually mounted as FAT32 (=vfat), the 2nd partition for link2sd can
REM           be either FAT32 (=vfat) or ext2. You have choosen this when you partitioned
REM           your sd card for link2sd.
REM           so either: adb shell mount | find "vfat"
REM           or       : adb shell mount | find "ext2"
REM           look out for entries like this:
REM               /dev/block/vold/179:2 /data/sdext2 vfat ....
REM               /dev/block/vold/179:1 /mnt/sdcard vfat ....
REM           The interesting are the mountpoints of the partitions of the sdcard
REM           (sdcard=/dev/block/vold/nnn)
REM        d) stop the server:    adb.exe kill-server
REM
REM     To restore, use adb push for example:
REM     adb push d:\andro_backup\mnt_sdcard\2013-04-10___15~21  /mnt/sdcard
REM     adb push d:\andro_backup\data_sdext2\2013-04-10___15~21 /data/sdext2
REM
REM Version:
REM ========
REM     0.1 - 2013-04-10 - initial release
REM
REM

REM CUSTOMIZE (1): Check/Fix the path where you've installed the mini-sdk.
REM                adb.exe (and the included .dlls) must be in this path.
set PATH=%PATH%;D:\adb\sdk-tools\

REM CUSTOMIZE (2): the sources to backup in which targets. 
REM                Target with a trailing backslash \  !
set SOURCE1=/mnt/sdcard
set TARGET1=d:\andro_backup\mnt_sdcard\
set SOURCE2=/data/sdext2
set TARGET2=d:\andro_backup\data_sdext2\

REM create a string with date / time in the name - only tested for german systems yet :)
for /F "tokens=1-3 delims=/.- " %%A in ('date /T') do (set TT=%%A&set MM=%%B&set JJJJ=%%C)
for /F "tokens=1-4 delims=:, " %%A in ('time /T') do (set hh=%%A& set mm=%%B& set ss=%%C& set ms=%%D)
set DATESTRING=%JJJJ%-%MM%-%TT%___%hh%~%mm%
set LONG_TARGET1=%TARGET1%%DATESTRING%
set LONG_TARGET2=%TARGET2%%DATESTRING%

REM create the backup directories:
md %LONG_TARGET1%
md %LONG_TARGET2%

REM start adb server:
adb start-server

REM wait for device
adb wait-for-device

REM start the backup of the two partitions
adb pull %SOURCE1% %LONG_TARGET1%
adb pull %SOURCE2% %LONG_TARGET2%

REM kill adb server:
adb kill-server

echo Fertig :-)
pause
 
Zur Nützlichkeit eines Backups feht noch der Restore-Vorgang, denn ohne den ist alles eine Trockenübung.

Das Skript baut darauf, dass adb pull eines Mountpoints dessen Daten auf den (Linux-, Windows-, MAC-)PC überträgt. Mehr ist nicht daran und ich habe gelinde Zweifel, ob die Verbreitung eines solches Rezeptes dazu führt, dass der Anwender überhaupt versteht, was er macht. Dabei ist es nicht schwierig und ein paar erklärenswerte Worte über das hinaus, das in den REMs steht, wäre sehr wünschenswert gewesen. Daraus würde dann automatisch hervorgegangen, wie man diesen Vorgang umkehrt, nämlich mit adb push, welche Vorbereitungen dafür notwendig sind, und welche Ziele adb push zu haben hat. Das hat aber alles nicht stattgefunden.

Der Weg zu einem nutzlosen Backup wurde hier beschrieben. Dass der Rückweg Kenntnisse benötigt, wurde leider vergessen und ein narrensicheres Skript dafür existiert nicht. Wer den Rückweg kennt aund sich auskennt, braucht auch das narrensichere Sicherungsskript nicht, denn er kriegt beides problemlos ohne Windows-Batch hin. Für den Rest leider: Finger weg.

Sorry. Man kann komplizierte Teile eines Betriebssystem vereinfachen, aber nicht so.
 
Zuletzt bearbeitet:
mizch schrieb:
Zur Nützlichkeit eines Backups feht noch der Restore-Vorgang, denn ohne den ist alles eine Trockenübung.

Wie man zurücksichert steht doch drin?

Code:
REM     To restore, use adb push for example: 
REM     adb push d:\andro_backup\mnt_sdcard\2013-04-10___15~21  /mnt/sdcard 
REM     adb push d:\andro_backup\data_sdext2\2013-04-10___15~21 /data/sdext2

Für konstruktive Kritik bin ich gerne aufgeschlossen. Immerhin wars nicht einfach, überhaupt rauszufinden wie man unter Windows die zweite Partition der Karte lesen kann....
 
Sorry, das habe ich übersehen.
 

Ähnliche Themen

S
Antworten
1
Aufrufe
407
NitramAkloh
N
holms
Antworten
2
Aufrufe
169
holms
holms
M
Antworten
15
Aufrufe
843
maikfr
M
Zurück
Oben Unten