Dateien splitten

Sind die oben genannten Vorschläge nicht praktikabel oder nicht möglich, zerlegen Sie die Datei in kleinere Stücke und setzen sie diese auf dem Zielsystem wieder zusammen. Unter Linux existieren dafür die beiden Werkzeuge split und cat. Split zerlegt die Dateien, Cat fügt die Einzelteile wieder zusammen.

Ohne Angabe weiterer Parameter zerlegt Split die angegebene Datei in Einzelteile mit einer Länge von 1000 Zeilen. Diese Voreinstellung eignet sich primär für Textdateien, aber nicht für ein ISO-Image oder eine virtuelle Maschine. Mit dem Parameter --bytes=Wert (oder -b Wert) teilt Split dagegen aufs Byte genau.

Möchten Sie das ISO-Image des Netinstallers von Debian (191 MByte) in maximal 50 MByte große Häppchen zerteilen, genügt dazu der folgende Aufruf:

$ split --bytes=50M debian-6.0.4-i386-netinst.iso

Split zerlegt das Image dann in die vier Teile xaa bis xad. Dabei fallen xaa, xab und xac exakt 50 MByte groß aus, xad enthält die restlichen Daten mit rund 41 MByte. In der Grundeinstellung benennt das Tool die Ausgabedateien mit dem Präfix x und den beiden nachfolgenden, aufsteigend durchgezählten Buchstaben (Suffix) durch.

Über zusätzliche Parameter im Split-Aufruf passen Sie das Benennen der Ausgabedateien ihren Vorstellungen an. Den Hauptbestandteil für den Dateinamen übermitteln Sie Split, indem Sie obigen Aufruf um ein Präfix ergänzen:

$ split --bytes=50M debian-6.0.4-i386-netinst.iso teil-

Die erzeugten Dateien heißen nun beispielsweise teil-aa bis teil-ad. Über die beiden Parameter -d und -abeeinflussen Sie zudem die Suffixe. Die Option -d erzeugt numerische Endungen, -a Anzahl bestimmt deren Breite (in der Vorgabe 2), die Leerstellen füllt Split mit Nullen auf. Der Aufruf in der ersten Zeile von Listing 4 erzeugt die vier Dateien teil-000 bis teil-003.

Listing 4

$ split --bytes=50M -d -a 3 debian-6.0.4-i386-netinst.iso teil-
$ ls -hal teil*
-rw-r--r-- 1 frank frank 50M 30. Apr 10:33 teil-000
-rw-r--r-- 1 frank frank 50M 30. Apr 10:33 teil-001
-rw-r--r-- 1 frank frank 50M 30. Apr 10:33 teil-002
-rw-r--r-- 1 frank frank 41M 30. Apr 10:33 teil-003

Für das Zusammenfügen der Einzelteile auf dem Zielsystem genügt ein einfaches Kommando in der Bash (Listing 5, Zeile 1): Mit Cat setzen Sie die Teile, die durch das Namensschema in der richtigen Reihenfolge vorliegen, über den Operator >> zu einer Datei zusammen, die im Beispiel neu.iso heißt.

Listing 5

$ cat teil-* >> neu.iso
$ diff debian.iso neu.iso
$ cmp debian.iso neu.iso

Sicherheitshalber überprüfen Sie danach, dass es beim Zerlegen und Zusammenfügen keine Fehler gab und beide ISO-Dateien (Original und Kopie) identisch ausfallen. Ein Byte-für-Byte-Vergleich dauert zu lange und ist zudem fehleranfällig. Hier helfen die nützlichen Werkzeuge Cmp und Diff, mit denen Sie beide Dateien auf mögliche Unterschiede prüfen (Listing 5, zweite und dritte Zeile). Erfolgt keine Ausgabe, sind beide ISO-Dateien identisch.

Einen weiteren, eleganteren und oft genutzten Weg stellt das Erzeugen eines Hash-Wertes dar. Dabei handelt es sich um eine Art Fingerabdruck für eine Datenmenge oder Zeichenkette. In Listing 6 erzeugt das Kommando openssl diesen Wert auf der Basis des MD5-Algorithmus. Bei identischen Prüfsummen stimmen Original und Kopie überein.

Listing 6

$ openssl dgst -md5 debian.iso
MD5(debian.iso)= ff79f60c4d1fee2d47baadcbf081e5b6
$ openssl dgst -md5 neu.iso
MD5(neu.iso)   = ff79f60c4d1fee2d47baadcbf081e5b6

Fazit

Beim Kopieren großer Dateien führen verschiedene Ideen und Vorgehensweisen gleichermaßen zum Erreichen des Ziels, es gibt dabei keinen richtigen und keinen falschen Weg. Wichtig ist nur, dass Sie für das Problem eine passende Lösung finden und sich danach wieder etwas sicherer durch den Linux-Alltag bewegen. 

Glossar

EByte

1 Exabyte = 1018 Byte. 1 EByte entspricht also 1 Million TByte oder 1 Milliarde GByte.

Infos

[1] Packer im Vergleich: Martin Steigerwald, "Zip und Zop", LU 10/2010, S. 68, http://www.linux-community.de/20298

[2] ZFS: http://de.wikipedia.org/wiki/ZFS_(Dateisystem)

[] Der Autor bedankt sich bei Thomas Osterried und Wolfram Eifler für deren kritische Anmerkungen, Kommentare und Ergänzungen im Vorfeld dieses Artikels.

[] Frank Hofmann (http://www.efho.de) hat Informatik an der Technischen Universität Chemnitz studiert. Derzeit arbeitet er in Berlin im Büro 2.0, einem Open-Source Experten-Netzwerk, als Dienstleister mit Spezialisierung auf Druck und Satz. Er ist Mitgründer des Schulungsunternehmens Wizards of FOSS. Seit 2008 koordiniert er das Regionaltreffen der Linux-Usergroups aus der Region Berlin-Brandenburg.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 09/2016: Ciao, Windows!

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Scannen nicht möglich
Werner Hahn, 19.08.2016 22:33, 3 Antworten
Laptop DELL Latitude E6510 mit Ubuntu 16,04, Canon Pixma MG5450. Das Drucken funktioniert, Scann...
Wie kann man das berichtigen
Udo Muelle, 17.07.2016 20:39, 1 Antworten
Fehlschlag beim Holen von http://extra.linuxmint.com/dists/rosa/main/binary-i386/Packages Hash-S...
Installation Genimotion
Horst Müller, 15.07.2016 17:00, 1 Antworten
Hallo, ich kann Genimotion nicht installieren. Folgende Fehlermeldung habe ich beim Aufruf erh...
Probleme beim Hochfahren der Terastaion 5400 mit Unix-Distrib
Sheldon Cooper, 10.07.2016 09:32, 0 Antworten
Hallo ihr lieben, habe seit zwei Tagen das Problem, das das NAS (Raid5) nicht mehr sauber hoch...
Mit Firewire Videos improtieren?
Werner Hahn, 09.06.2016 11:06, 5 Antworten
Ich besitze den Camcorder Panasonic NV-GS330, bei dem die Videos in guter Qualität nur über den 4...