public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Q: large files in iso9660 ?
@ 2004-02-01 22:24 P. Christeas
  2004-02-03 13:35 ` Erik Mouw
  0 siblings, 1 reply; 5+ messages in thread
From: P. Christeas @ 2004-02-01 22:24 UTC (permalink / raw)
  To: lkml; +Cc: viro

Hi, 
I've tried to create a disk (DVD) which contains a single 3.8GB file. The 
creation (mkisofs) worked and the disk's TOC reads 3.8GB. However, the 
filesystem reads as if one ~9MB file only exists. 
I guess large files in isofs may be out of spec. 

Q: What's the file size limit in iso9660?
Q: Is there any chance the negative number (although out of spec) may be 
correctly interpreted (mount option) ?

Thanks.

FYI:
isoinfo -d -i /dev/cdrom
CD-ROM is in ISO 9660 format
System id: LINUX
Volume id: CDROM
Volume set id:
Publisher id:
Data preparer id:
Application id: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD 
CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING
Copyright File id:
Abstract File id:
Bibliographic File id:
Volume set size is: 1
Volume set seqence number is: 1
Logical block size is: 2048
Volume size is: 1987287
Joliet with UCS level 3 found
Rock Ridge signatures version 1 found

isoinfo -l -i /dev/cdrom

Directory listing of /
d---------   0    0    0            2048 Jan 31 2004 [     28]  .
d---------   0    0    0            2048 Jan 31 2004 [     28]  ..
----------   0    0    0      -225376141 Jan 31 2004 [     31]  WIN_C.TGZ;1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Q: large files in iso9660 ?
  2004-02-01 22:24 Q: large files in iso9660 ? P. Christeas
@ 2004-02-03 13:35 ` Erik Mouw
  2004-02-03 21:10   ` P. Christeas
  2004-02-04  8:51   ` Eduard Bloch
  0 siblings, 2 replies; 5+ messages in thread
From: Erik Mouw @ 2004-02-03 13:35 UTC (permalink / raw)
  To: P. Christeas; +Cc: lkml, viro

On Mon, Feb 02, 2004 at 12:24:31AM +0200, P. Christeas wrote:
> I've tried to create a disk (DVD) which contains a single 3.8GB file. The 
> creation (mkisofs) worked and the disk's TOC reads 3.8GB.

No, it didn't. Last time I tried mkisofs warned about files being
larger than 2GB. Feel free to ignore the warnings, though.

> However, the 
> filesystem reads as if one ~9MB file only exists. 
> I guess large files in isofs may be out of spec. 
> 
> Q: What's the file size limit in iso9660?

About 2GB.

> Q: Is there any chance the negative number (although out of spec) may be 
> correctly interpreted (mount option) ?

The kernel (2.6 and 2.4) has the following code in isofs_read_inode():

        /*
         * The ISO-9660 filesystem only stores 32 bits for file size.
         * mkisofs handles files up to 2GB-2 = 2147483646 = 0x7FFFFFFE bytes
         * in size. This is according to the large file summit paper from 1996.
         * WARNING: ISO-9660 filesystems > 1 GB and even > 2 GB are fully
         *          legal. Do not prevent to use DVD's schilling@fokus.gmd.de
         */
        if ((inode->i_size < 0 || inode->i_size > 0x7FFFFFFE) &&
            sbi->s_cruft == 'n') {
                printk(KERN_WARNING "Warning: defective CD-ROM.  "
                       "Enabling \"cruft\" mount option.\n");
                sbi->s_cruft = 'y';
        }

IOW: your kernel should have warned you about the defective CDROM and
truncated filesizes to 16MB (which is what the "cruft" mount option
does).


Erik

-- 
+-- Erik Mouw -- www.harddisk-recovery.com -- +31 70 370 12 90 --
| Lab address: Delftechpark 26, 2628 XH, Delft, The Netherlands

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Q: large files in iso9660 ?
  2004-02-03 13:35 ` Erik Mouw
@ 2004-02-03 21:10   ` P. Christeas
  2004-02-04  7:43     ` Vladimir Saveliev
  2004-02-04  8:51   ` Eduard Bloch
  1 sibling, 1 reply; 5+ messages in thread
From: P. Christeas @ 2004-02-03 21:10 UTC (permalink / raw)
  To: Erik Mouw; +Cc: lkml

>
> The kernel (2.6 and 2.4) has the following code in isofs_read_inode():
>
>         /*
>          * The ISO-9660 filesystem only stores 32 bits for file size.
>          * mkisofs handles files up to 2GB-2 = 2147483646 = 0x7FFFFFFE
> bytes * in size. This is according to the large file summit paper from
> 1996. * WARNING: ISO-9660 filesystems > 1 GB and even > 2 GB are fully *   
>       legal. Do not prevent to use DVD's schilling@fokus.gmd.de */
>         if ((inode->i_size < 0 || inode->i_size > 0x7FFFFFFE) &&
>             sbi->s_cruft == 'n') {
>                 printk(KERN_WARNING "Warning: defective CD-ROM.  "
>                        "Enabling \"cruft\" mount option.\n");
>                 sbi->s_cruft = 'y';
>         }
>
> IOW: your kernel should have warned you about the defective CDROM and
> truncated filesizes to 16MB (which is what the "cruft" mount option
> does).
>
>
> Erik

Makes perfect sense.
However, this *does* enforce the limit on DVD files. If I try to disable this 
code and make inode sizes uint32, can there be any other negative 
implication? Of course, I am still limited to 3GB..

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Q: large files in iso9660 ?
  2004-02-03 21:10   ` P. Christeas
@ 2004-02-04  7:43     ` Vladimir Saveliev
  0 siblings, 0 replies; 5+ messages in thread
From: Vladimir Saveliev @ 2004-02-04  7:43 UTC (permalink / raw)
  To: P. Christeas; +Cc: Erik Mouw, lkml

Hello

On Wed, 2004-02-04 at 00:10, P. Christeas wrote:
> >
> > The kernel (2.6 and 2.4) has the following code in isofs_read_inode():
> >
> >         /*
> >          * The ISO-9660 filesystem only stores 32 bits for file size.
> >          * mkisofs handles files up to 2GB-2 = 2147483646 = 0x7FFFFFFE
> > bytes * in size. This is according to the large file summit paper from
> > 1996. * WARNING: ISO-9660 filesystems > 1 GB and even > 2 GB are fully *   
> >       legal. Do not prevent to use DVD's schilling@fokus.gmd.de */
> >         if ((inode->i_size < 0 || inode->i_size > 0x7FFFFFFE) &&
> >             sbi->s_cruft == 'n') {
> >                 printk(KERN_WARNING "Warning: defective CD-ROM.  "
> >                        "Enabling \"cruft\" mount option.\n");
> >                 sbi->s_cruft = 'y';
> >         }
> >
> > IOW: your kernel should have warned you about the defective CDROM and
> > truncated filesizes to 16MB (which is what the "cruft" mount option
> > does).
> >
> >
> > Erik
> 
> Makes perfect sense.
> However, this *does* enforce the limit on DVD files. If I try to disable this 
> code and make inode sizes uint32, can there be any other negative 
> implication? Of course, I am still limited to 3GB..

IIRC, mkisofs can create HFS. There should be no problem with that long
files


> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Q: large files in iso9660 ?
  2004-02-03 13:35 ` Erik Mouw
  2004-02-03 21:10   ` P. Christeas
@ 2004-02-04  8:51   ` Eduard Bloch
  1 sibling, 0 replies; 5+ messages in thread
From: Eduard Bloch @ 2004-02-04  8:51 UTC (permalink / raw)
  To: Erik Mouw; +Cc: P. Christeas, lkml, viro

#include <hallo.h>
* Erik Mouw [Tue, Feb 03 2004, 02:35:51PM]:
> On Mon, Feb 02, 2004 at 12:24:31AM +0200, P. Christeas wrote:
> > I've tried to create a disk (DVD) which contains a single 3.8GB file. The 
> > creation (mkisofs) worked and the disk's TOC reads 3.8GB.
> 
> No, it didn't. Last time I tried mkisofs warned about files being
> larger than 2GB. Feel free to ignore the warnings, though.

No, normal mkisofs does not warn, are you sure that your distributor did
not patch it?

> > However, the 
> > filesystem reads as if one ~9MB file only exists. 
> > I guess large files in isofs may be out of spec. 
> > 
> > Q: What's the file size limit in iso9660?
> 
> About 2GB.

Really? Quoting Joerg Schilling:

| >#include <hallo.h>
| >* christophe nowicki [Thu, Jan 22 2004, 01:22:34PM]:
| 
| >> #mount -t iso9660 -o loop burn.iso /mnt
| >> $ls -sh /mnt
| >> total 4.0M
| >> 4.0M test
| >>       ^ all my data are lost !
| >>=20
| >> During the creation process mkisofs did not make a warning ...
| 
| Definitely wrong (even for the outdated 2.0 version)!
| 
| .... see log below:
| 
| mkdir LD
| cd LD
|  mkfile -n 5g 5g
| cd ..
| /opt/schily/bin/mkisofs -o /tmp/0a LD
| /opt/schily/bin/mkisofs: Value too large for defined data type. File LD/5g is too large - ignoring
| Total translation table size: 0
| Total rockridge attributes bytes: 0
| Total directory bytes: 0
| Path table size(bytes): 10
| Max brk space used 8000
| 48 extents written (0 Mb)
| 
| 
| >Reproducible for me. IMHO it is not only the iso9660 filesize limit,
| >since Joliet should support larger files.
| 
| Definitely wrong too: Joliet is a half hearted hack on ISO-9660.
| If you like to have large files in ISO-9660 (and/or Joliet!), you would need
| multi extent file support.
| 
| In order to implement this, you need an OS to test with....
| 
| Solaris has no multi extent file support
| 
| Linux fails with several other problems in the vicinity of large files on 
| ISO-9660 and in such a case auto activates evil mount options that prevents
| you from using such media.
| 
| 
| Jörg

> The kernel (2.6 and 2.4) has the following code in isofs_read_inode():
> 
>         /*
>          * The ISO-9660 filesystem only stores 32 bits for file size.
>          * mkisofs handles files up to 2GB-2 = 2147483646 = 0x7FFFFFFE bytes
>          * in size. This is according to the large file summit paper from 1996.
>          * WARNING: ISO-9660 filesystems > 1 GB and even > 2 GB are fully
>          *          legal. Do not prevent to use DVD's schilling@fokus.gmd.de
>          */

Interesting, what should be "multiple extents" then?

>         if ((inode->i_size < 0 || inode->i_size > 0x7FFFFFFE) &&
>             sbi->s_cruft == 'n') {
>                 printk(KERN_WARNING "Warning: defective CD-ROM.  "
>                        "Enabling \"cruft\" mount option.\n");

I have never seen this warning on mounting "defective" filesystems.

Regards,
Eduard.
-- 
Man weist ein Lob zurück in dem Wunsch, nochmals gelobt zu werden.
		-- François de La Rochefoucauld

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2004-02-04  8:52 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-02-01 22:24 Q: large files in iso9660 ? P. Christeas
2004-02-03 13:35 ` Erik Mouw
2004-02-03 21:10   ` P. Christeas
2004-02-04  7:43     ` Vladimir Saveliev
2004-02-04  8:51   ` Eduard Bloch

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox