Eine große Datei in viele kleine Dateien zerlegen

Ich hatte gerade eine sehr große Datei (3.3GB), die ich über eine langsame Internetverbindung auf einen Server verschieben wollte. Der Vorgang würde mehrere Stunden dauern. Die Wahrscheinlichkeit, dass der Upload unterbrochen würde, wäre relativ groß. In dem Falle müßte ich nochmal von vorne beginnen. Daher habe ich die Dateien in einzelne Dateien zerlegt. In diesem Artikel erkläre ich, wie man eine große Datei aufteilt und im Anschluss wieder zusammenfügt.

Ich habe eine Datei ergebnisse.zip, die ich in 10 MB große Stücke zerteilen möchte.

  1. Um den Erfolg überprüfen zu können, ermittle ich zunächst eine Prüfsumme (Hier: MD5-String) der Ausgangsdatei:
    md5sum ergebnisse.zip > ergebnisse.zip.md5
  2. Mit Hilfe des Programms split teile ich die Datei in 10MB große Stücke:
    split -b 10M ergebnisse.zip ergebnisse_split.zip.

    Dadurch werden viele Dateien erzeugt, die folgenden Aufbau haben:

    ergebnisse_split.zip.aa
    ergebnisse_split.zip.ab
    ergebnisse_split.zip.ac
    ergebnisse_split.zip.ad
    ...
    ergebnisse_split.zip.zy
    ergebnisse_split.zip.zz
    
  3. Nun kann man diese Dateien z.B. per SSH auf einem Server laden:
    scp ergebnisse_split.zip.* user@server.domain:~/zielordner

    Sollte nun der Vorgang unterbrochen werden, kann man im Anschluss einfach bei der Datei beginnen, bei der der Upload unterbrochen wurde.

  4. Nach erfolgtem Upload fügt man die Dateien mit Hilfe von cat einfach wieder zusammen:
    cat ergebnisse_split.zip.* > ergebnisse_cat.zip
  5. Nun muss nur noch geprüft werden, ob die zusammengefügte Datei den gleichen Inhalt wie die Ausgangsdatei hat. Dazu berechnet man erstmal die MD5-Summe:
    md5sum ergebnisse_cat.zip > ergebnisse_cat.zip.md5

    Wenn alles geklappt hat, stehen in ergebnisse.zip.md5 und ergebnisse_cat.zip.md5 die gleichen MD5-Summen.

  6. Weitere Möglichkeiten findest Du im Wiki von UbuntuUsers.

Ubuntu ISO-Dateien nach dem Download überprüfen

Nach dem Download von Ubuntu (oder anderer Dateien aus dem Internet) überprüfe ich immer, ob die Datei(en) korrekt heruntergeladen wurde(n). Eine Möglichkeit ist, die MD5-Summe der ISO-Dateien zu berechnen.

Unter Linux steht dazu der Befehl md5sum zur Verfügung

1
2
3
4
# MD5-Summen aller *.iso-Dateien berechnen und in md5sums.txt schreiben:
md5sum *.iso > md5sums.txt
# Inhalt der Datei anzeigen:
cat md5sums.txt

Als Ausgabe bekommt man z.B.:

8d72e2db7e72e13813731eab37a14d26  ubuntu-13.04-desktop-amd64.iso
5d5d1a7da2a0659b163d4f8bd70fbe6f  ubuntu-13.04-desktop-i386.iso
21ec41563ff34da27d4a0b56f2680c4f  ubuntu-13.10-desktop-amd64.iso
d0508f909c2c71d96aeac5efb0329b33  ubuntu-13.10-desktop-i386.iso

Unter MacOSX steht dazu der Befehl md5 zur Verfügung

1
2
3
4
# MD5-Summen aller *.iso-Dateien berechnen und in md5sums.txt schreiben:
md5 *.iso > md5sums.txt
# Inhalt der Datei anzeigen:
cat md5sums.txt

Als Ausgabe bekommt man z.B.:

MD5 (ubuntu-13.04-desktop-amd64.iso) = 8d72e2db7e72e13813731eab37a14d26
MD5 (ubuntu-13.04-desktop-i386.iso) = 5d5d1a7da2a0659b163d4f8bd70fbe6f
MD5 (ubuntu-13.10-desktop-amd64.iso) = 21ec41563ff34da27d4a0b56f2680c4f
MD5 (ubuntu-13.10-desktop-i386.iso) = d0508f909c2c71d96aeac5efb0329b33

Nun muss man nur noch die ermittelten Summen mit den erwarteten Summen vergleichen. Leider werden auf der Downloadseite von Ubuntu nicht mehr standardmäßig die MD5-Testsummen bereitgestellt. Allerdings gibt es eine Seite mit allen bisherigen Testsummen für Ubuntu.