Home / LinuxUser / 2012 / 11 / Große Dateien transferieren

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

„Klickbunt auf dem Server? Warum nicht, wenn's hilft!"
(208 Punkte bei 7 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Übergröße

Große Dateien transferieren

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.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 139 Punkte (3 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

title_2013_06

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Emacs als Psychologe
Emacs als Psychologe
Tim Schürmann, 21.05.2013 11:49, 0 Kommentare

Wer beim Schreiben in Emacs nicht mehr weiter weiß oder schier an einer Programmieraufgabe verzweifelt, der kann den eingebauten Psychologen um Rat fragen.

1966 entwickelte der Infor...

Aktuelle Fragen

Kontakt via QR code hinzufügen
Herman Sproesser, 17.05.2013 17:46, 3 Antworten
Hi hab in der aktuellen ausgabe 06.2013 den artikel über QR Codes gelesen. Ich hab nartürlich...
Dateimanager Dolphin, wo legt er die Datei Kommentare ab?
Uwe Heine, 16.05.2013 15:19, 1 Antworten
Suse Linux 12.1 - KDE 4.7.2 / Dolphin 1.7. Ich habe bei vielen Dateien über Dolphin Kommentare...
wie baut man Kernel Module so, dass sie mit jedem Kernel laden?
GoaSkin , 22.04.2013 10:22, 1 Antworten
Hallo, baut man anhand eines Kernel-Sources Module, nutzt Linux im Normalfall eine strikte V...
Problem beim Installieren von SuSe 12.3
Georg Prokert, 14.04.2013 00:04, 16 Antworten
Hallo, auf meinem neuem Laptop (Acer Aspire V3-771, Intel Core i5-3230 M, Intel HD Graphics 4...
lvm wieder loswerden
Peter Dibbern, 11.04.2013 16:28, 4 Antworten
Ich habe sämtliche alten Kisten ausgeschlachtet und aus der Teilen einen Rechner zusammengeschrau...