Fehler beim Kopieren

Jan-Benedict Glaw jbglaw at lug-owl.de
Fre Jul 9 17:30:34 CEST 2004


On Fri, 2004-07-09 17:06:46 +0200, Jan-Benedict Glaw <jbglaw at lug-owl.de>
wrote in message <20040709150646.GR18841 at lug-owl.de>:
> On Fri, 2004-07-09 10:47:04 +0200, Marcel Schmied <schmied at 3points.de>
> wrote in message <20040709104704.vk084sg88s48wccg at webmail2.3points.de>:

> > wunderbar funktioniert, bis so ein Archiv mal genau 2 GB gross geworden ist,
> > und zwar bis aufs letzte Byte. Wenn man dieses Archiv kopiert, kommt ganz zum
> > schluss eine Fehlermeldung, das die Datei zu groß sei.
> > Nun würde ich natürlich gern wissen an wem es liegt, hat da jemand eine idee?
> > Das Dateisystem auf dem Server ist ein NTFS und macht definitiv grössere
> > Dateien.
> 
> Mountest Du den Windows-NTFS-Server, oder benutzt Du smbclient zum
> Kopieren? Wenn Du mountest, welche Kernel-Version hast Du? IIRC sind die
> LFS-Geschichten in smbfs erst in 2.6.x eingeflossen, sodaß Du mit allen
> 2.4.x'er Kerneln wenig Chancen haben wirst...

Ist doch klar: bei diesen 2GB-Begrenzungen geht es darum: Früher wurde
alles (auf 32bit-Architekturen) mit 32bit Integern gemacht; da man
Fehler auch melden können wollte, waren diese Vorzeichenbehaftet. Das
vorzeichen wird in einem Bit gespeichert, also bleiben 31bit zur
"realen" Darstellung von z.B. einer Dateigröße. Wenn Du nun Deine genau
2GB mal in binär aufschreibst, wirst Du merken, daß es

10000000 00000000 00000000 00000000

ist; Du siehst, daß diese Zahl das Vorzeichen-Bit überschreibe. Damit
ist die Zahl negativ, also keine Größe mehr, sondern eine (verdammt
große) Fehlernummer.

Heutzutage geht man dazu über, all diese Zahlen auf 64bit zu bringen
und für smbfs ist das halt erst vor kurzer Zeit (ich will meinen, daß
das in den 2.6.x-Kernel gemacht worden ist) gemacht worden. Somit ist da
die maximal erlaubte Dateigröße 2GB - 1 Byte (also so, daß das
Vorzeichen-Bit gerade nicht benutzt werden muß).

MfG, JBG

-- 
   Jan-Benedict Glaw       jbglaw at lug-owl.de    . +49-172-7608481
   "Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg
    fuer einen Freien Staat voll Freier Bürger" | im Internet! |   im Irak!
   ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: Digital signature
URL         : http://www.tlug.de/pipermail/tlug_allgemein/attachments/20040709/d64d8bbd/attachment.pgp