Linux Joliet CDROM Support

Overview
Joliet is a Microsoft extension to the ISO 9660 filesystem that allows Unicode characters to be used in filenames. This is a benefit when handling internationalization. Like the Rock Ridge extensions, Joliet also allows long filenames. If you are having problems with Joliet on Windows 95, Windows 3.1, or DOS, you've come to the wrong place. One suggestion, make sure you aren't running MSCDEX.EXE in your AUTOEXEC.BAT. Beyound that, try to get rid of any real mode drivers. This page is for the Linux operating system.
Technical Info
The Joliet Specification. Read this note if you want to find out how various CD standards came to exist.
Kernel Patch Notes
To build, you also need to select the Unicode, Native language support option (CONFIG_NLS), and you should select an input/ouput charset. You should select the ISO 8859-1 (CONFIG_ISO8859-1) character set. The default mount options are codepage=437 and iocharset=iso8859-1. Codepage 437 is for U.S. English, and iso8859-1 is the Latin 1 character set used in much of Western Europe and the United States.

Each patch is a self-contained patch against some kernel. You only need to get one patch to apply. To apply a patch,

    patch -p0 < patch_file
To reverse an old patch so that you can apply a new one, use
    patch -R < old_patch_file
One problem with reversing a patch has been reported. If a file is removed by a normal patch, then trying to reverse it fails. The file linux/fs/fat/tables.h is such a file, and some of the patches will fail when trying to reverse that. To correct, after running the command above, run
    patch < linux/fs/fat/tables.h.rej
    File to patch: linux/fs/fat/tables.h

Note: The patches from 0.2.0 on also includes FAT32 support. I didn't feel like extracting the two from one another since I have added native language tables that are used by both fat and joliet code.

Troubleshooting: Look here for troubleshooting hints.

If you are trying to install RedHat 5.0 from a Joliet CD, you should be able to use the Joliet boot disk courtesy of Rod Smith. He created it for booting RedHat 5.0 from a Joliet CD.

Joliet Specific Mount Options for isofs
  • utf8 - This converts Unicode characters from the disc into the UTF8 encoding, a filesystem safe 8 bit Unicode encoding. By default, the codepages are used to convert Unicode characters into ASCII.
  • iocharset=name - Conversion table to use when converting Unicode characters to ASCII. The default is iso8859-1, the Latin 1 charset. This is not used if utf8 is specified
  • mkhybrid
    Program to create an ISO9660/HFS/JOLIET shared hybrid CD.
    patch-0.3.13.gz
  • Kernel patch made against 2.1.59, works for 2.1.55 through 2.1.59.
  • Incorporated into the kernel as of 2.1.60.
  • Fixes configuration problems caused by last reorganization.
  • Fixes one rename bug in vfat.
  • patch-0.3.12.gz
  • Kernel patch made against 2.1.59, works for 2.1.55 through at least 2.1.59.
  • Fixes problem with Joliet patch where same file could show up twice.
  • Fixes problems with isofs
  • Reorganizes native language support to be more satisfactory to Linus.
  • patch-0.3.11.gz
  • Kernel patch made against 2.1.56. Fixes slightly misformed 0.3.10 patch.
  • patch-0.3.10.gz
  • Kernel patch made against 2.1.56. It might work with earlier kernels, but I haven't checked.
  • patch-0.3.9.gz
  • Kernel patch made against 2.1.42.
  • patch-0.3.8.gz
  • Kernel patch made against 2.1.36.
  • patch-0.3.7.gz
  • Kernel patch made against 2.1.29.
  • Fixed initialization of native language tables when built into kernel.
  • patch-0.3.5.gz
  • Kernel patch made against 2.1.29.
  • Fixed configuration problem with patch 0.3.4 that occurred when native language support was built into kernel.
  • patch-0.3.4.gz
  • Kernel patch made against 2.1.29.
  • Fixed configuration problems with patch 0.3.3.
  • patch-0.3.3.gz
  • Kernel patch made against 2.1.29.
  • Lots of changes to the native language support. The codepage mount option has been replaced with the iocharset option.
  • This adds a CONFIG_NLS option to the filesystems configuration dialog. Make sure to say Yes or Module to this. You should enable CONFIG_NLS_ISO8859_1 or one of the other native language character sets, but it is not required. It just gives you more accurate character translations.
  • Should no longer crash when a native language character set cannot be loaded.
  • patch-0.2.10.gz
  • Kernel patch made against 2.0.31. It works with 2.0.31 to 2.0.33. When applied to 2.0.33, you will get a reject in linux/fs/vfat/namei.c.rej. You can ignore this reject since this piece has already been applied.
  • Will be incorporated into 2.0.34 when it is released.
  • Changes Linux kernel to recognize LBA extended partitions (type 0xf)
  • patch-0.2.9.gz
  • Kernel patch made against 2.0.31. It works with 2.0.31 to 2.0.33. When applied to 2.0.33, you will get a reject in linux/fs/vfat/namei.c.rej. You can ignore this reject since this piece has already been applied.
  • Will be incorporated into 2.0.34 when it is released.
  • Adds ISO9660 Level 3 support. Thanks to Eric Lammerts.
  • If Joliet and RockRidge are both available on a CD, use RockRidge by default.
  • Change to remove multiply defined symbols in .ver files. Thanks to Phil Karn.
  • Configuration and fixes.
  • patch-0.2.8.gz
  • Kernel patch made against 2.0.31. It works with 2.0.31 to 2.0.33.
  • patch-0.2.7.gz
  • Kernel patch made against 2.0.29. It should work on all 2.0.x kernels through 2.0.30.
  • Fixed initialization of native language tables when built into kernel.
  • patch-0.2.6.gz
  • Kernel patch made against 2.0.29. It should work on kernels from 2.0.x to 2.0.29.
  • Fixes a problem when compiling with module versioning on 2.0.x.
  • This is essentially the same patch as 0.3.5 except for Linux 2.0.x kernels. See the notes from 0.3.5 for the changes.
  • patch-0.2.5.gz
  • Kernel patch made against 2.0.29. It should work on kernels from 2.0.x to 2.0.29.
  • This is essentially the same patch as 0.3.5 except for Linux 2.0.x kernels. See the notes from 0.3.5 for the changes.
  • patch-0.2.4.gz
  • Kernel patch made against 2.0.29. It should work on kernels from 2.0.x to 2.0.29.
  • This is essentially the same patch as 0.3.4 except for Linux 2.0.x kernels. See the notes from 0.3.4 for the changes.
  • patch-0.2.3.gz
  • Kernel patch made against 2.0.29. It should work on kernels from 2.0.x to 2.0.29.
  • This is essentially the same patch as 0.3.3 except for Linux 2.0.x kernels. See the notes from 0.3.3 for the changes.
  • patch-0.2.0.gz
  • Kernel patch made against 2.0.29. It should work on kernels from 2.0.x to 2.0.29.
  • Fixed problem where CDs written with DOS behavior were not handled right.
  • This adds a CONFIG_NLS option to the filesystems configuration dialog. Make sure to say Yes or Module to this. Also enable CONFIG_NLS_CODEPAGE_437 or one of the other codepages. 437 is the codepage for the U.S. 850 is the codepage for much of Western Europe.
  • patch-0.1.3.gz
  • Patch made against 2.0.23. It should work on kernels from 2.0.0 to 2.0.x.
  • Fixed problem where Joliet CDs were not recognized at all.
  • This adds a CONFIG_NLS option to the filesystems configuration dialog. Make sure to say Yes or Module to this. Also enable CONFIG_NLS_CODEPAGE_437. The other codepages are not yet available.
  • patch-0.1.2.gz
  • Patch made against 2.0.23. It should work on kernels from 2.0.0 to 2.0.x. Unknown behavior against 2.1.x kernels.
  • Fixed problem with non-RockRidge and non-Joliet discs.
  • Fixed configuration problems when building into kernel.
  • This adds a CONFIG_NLS option to the filesystems configuration dialog. Make sure to say Yes or Module to this. Also enable CONFIG_NLS_CODEPAGE_437. The other codepages are not yet available.
  • patch-0.1.1.gz
  • Patch made against 2.0.23. It should work on kernels from 2.0.0 to 2.0.x.
  • Fixed problem when handling . and .. filenames.
  • Fixed a configuration bug.
  • This adds a CONFIG_NLS option to the filesystems configuration dialog. Make sure to say Yes or Module to this. Also enable CONFIG_NLS_CODEPAGE_437. The other codepages are not yet available.
  • patch-0.1.gz
  • Patch made against 2.0.23. It should work on kernels from 2.0.0 to 2.0.x.
  • This adds a CONFIG_NLS option to the filesystems configuration dialog. Make sure to say Yes or Module to this. Also enable CONFIG_NLS_CODEPAGE_437. The other codepages are not yet available.

  • Back to Gordon's Home Page.