Re: Q: large files in iso9660 ?

From: Eduard Bloch
Date: Wed Feb 04 2004 - 03:59:55 EST


#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@xxxxxxxxxxxx
> */

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