Große Dateien von DVD lesen?

  • Gibt es unter Linux irgendeine Möglichkeit Dateien >2GB von einer DVD zu lesen ohne von Hand im Kernel Source rumzuhacken?


    Ich habe DVDs, auf denen Dateien sind, die größer als 2GB sind. Diese sind ganz normal mit iso9660 Dateisystem unter Windows erstellt worden. Sobald ich diese aber mounte zeigt mir Linux nur Dateien mit <16MB an.


    Ich konnte das ganze auf einen Fehler im Kernel in inode.c zurückführen, dort wird gecheckt ob ein File größer als 2GB ist, wenn ja dann wird bei allen Dateigrößen daß höherwertige Byte ausmaskiert, und so die Dateigröße von allen Dateien auf 16MB beschränkt.
    Das Problem tritt im Kernel2.6 leider immer noch auf.


    Gibt es unter Linux irgendein anderes Tool um ISOs zu extrahieren, oder muß ich tatsächlich im Kernel Source rumpfuschen ?

  • liegt das Problem eventuell bei deinem fs (aktuelle fs haben ja diese 2GB Grenze nicht mehr ...)


    /Edit
    Neeeinn (kann nicht mehr lesen ...)


    - 2Gb ist eine Begrenzung des ISO9660 Standards - kein Linux Problem - Linux kann schon länger mit Files > 2GB umgehen


    /Edig

    Gruß


    sdu

    *******************************************************************
    gen2vdr 2.0
    TT1.3, Skystar 2.6c, activy300, STBs AVBoard
    *******************************************************************

    Einmal editiert, zuletzt von sdu ()

  • Nicht ganz, im ISO9660 Standard ist ist das Feld für die Dateigröße 32 Bit, es ist aber nicht explizit von "signed" die Rede. Deshalb ist die maximale Dateigröße 4GB.


    In der Linux Implementation gibt es eine "cruft" Option, die das höherwertige Byte der Größe ausmaskiert. Diese Option wurde "benötigt" da es früher anscheinend CDs gab wo das höherwertige Byte für anderweitige Sachen missbraucht wurde.


    Dazu ein Kommentar aus inode.c:

    Code
    1198     	/*
    1199     	 * Some dipshit decided to store some other bit of information
    1200     	 * in the high byte of the file length.  Catch this and holler.
    1201     	 * WARNING: this will make it impossible for a file to be > 16MB
    1202     	 * on the CDROM.
    1203     	 */
  • Ich habe es jetzt geschafft. Allerdings mußte ich dafür von Hand im Kernel Änderungen vornehmen:
    In isofs/inode.c wird gecheckt ob das 31ste Bit in der Size gesetzt ist, und dann wird die "cruft" option aktiviert. Diese Stelle muß auskommentiert werden.
    Außerdem muß der Rückgabewert der Funktionen (isonum_733 etc.), die die Size bestimmen von "int" auf "unsigned int" geändert werden (in iso_fs.h).


    Das bestätigt mal wieder die Aussage: "Linux ist ein Betriebssystem für Programmierer."

  • Zitat

    Original von CHP
    Das bestätigt mal wieder die Aussage: "Linux ist ein Betriebssystem für Programmierer."


    Oder für die , die gewisse Restriktionen in Kauf nehmen , um gewisse Andere zu vermeiden ;D


    HJS

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!