Wie erstelle ich eine Datei mit einer Größe von mehr als 2GB in Linux / Unix?

8

Ich habe diese Heimarbeit, wo ich eine sehr große Datei von einer Quelle zu mehreren Maschinen mit bittorrent Art von Algorithmus übertragen muss. Anfangs schneide ich die Dateien in Chunks und übertrage Chunks auf alle Ziele. Ziele haben die Intelligenz, die Teile, die sie haben, mit anderen Zielen zu teilen. Es funktioniert gut. Ich wollte eine 4GB-Datei übertragen, also habe ich vier 1GB-Dateien geteert. Es gab keinen Fehler, wenn ich die 4GB-TAR-Datei erstellte, aber am anderen Ende, während alle Chunks wieder in die ursprüngliche Datei zusammengefügt wurden, wurde die Dateigröße überschritten. Wie kann ich dieses Problem lösen?

    
Ram 18.02.2009, 08:23
quelle

5 Antworten

11

Ich kann mir zwei mögliche Gründe vorstellen:

  • Sie haben keine Unterstützung für große Dateien in Ihrem Linux-Kernel
  • aktiviert
  • Ihre Anwendung wird nicht mit Unterstützung für große Dateien kompiliert (Sie müssen möglicherweise zusätzliche gcc-Flags übergeben, um 64-Bit-Versionen bestimmter Datei-E / A-Funktionen zu verwenden, z. B. gcc -D_FILE_OFFSET_BITS=64 )
codelogic 18.02.2009, 08:33
quelle
4

Dies hängt vom Dateisystemtyp ab. Wenn ich ext3 benutze, habe ich keine Probleme mit Dateien, die wesentlich größer sind.

Wenn der zugrunde liegende Datenträger FAT, NTFS oder CIFS (SMB) ist, müssen Sie auch sicherstellen, dass Sie die neueste Version des entsprechenden Treibers verwenden. Es gibt einige ältere Treiber, die Dateigrößenbeschränkungen haben, wie sie auftreten.

    
krosenvold 18.02.2009 08:27
quelle
3

Könnte dies mit einer Systembeschränkungskonfiguration ?

%Vor%

Wenn Sie keine Begrenzung möchten, entfernen Sie fsize von /etc/security/limits.conf .

    
VonC 18.02.2009 08:27
quelle
1

Wenn Ihr System dies unterstützt, können Sie Hinweise erhalten mit: man largefile .

    
mouviciel 18.02.2009 08:32
quelle
1

Sie sollten fseeko und ftello verwenden, siehe fseeko (3) Beachten Sie, dass Sie #define _FILE_OFFSET_BITS 64

definieren sollten %Vor%     
Artyom 18.02.2009 08:47
quelle

Tags und Links