unable to mount a CD - iso9660 bug?
Subsystems (2)
Hello,
I have a CD that came with Samsung printer that Linux cannot mount but works fine in Windows. The CD is physically OK - "dd" made ISO image without any problems. This ISO image is unmountable too. When I force the filesystem to iso9660, it mounts but no files are visible:
# mount samsung-bad.iso /mnt/tmp -o loop mount: you must specify the filesystem type # mount samsung-bad.iso /mnt/tmp -o loop -t iso9660 # ls -la /mnt/tmp total 6 dr-xr-xr-x 2 root root 2048 Oct 30 2009 . drwxr-xr-x 15 root root 4096 Sep 26 2006 .. # df -h /mnt/tmp Filesystem Size Used Avail Use% Mounted on /dev/loop0 232M 232M 0 100% /mnt/tmp
dmesg shows this:
ISO 9660 Extensions: Microsoft Joliet Level 3
ISO 9660 Extensions: RRIP_1991A
If anyone can look into this, I can provide a link to the compressed ISO file (75MB).
Signature · 1 line
Ondrej Zary
Quoted 4 lines · Ondrej Zary
I have a CD that came with Samsung printer that Linux cannot mount but works fine in Windows. The CD is physically OK - "dd" made ISO image without any problems. This ISO image is unmountable too. When I force the filesystem to iso9660, it mounts but no files are visible:
Maybe it's a multi-session disk where the first session is HFS with Apple software. Try mounting with -t iso9660 -o session=1.
HTH
Johannes
Quoted 8 lines · Johannes Stezenbach
Quoted 4 lines · Ondrej Zary
I have a CD that came with Samsung printer that Linux cannot mount but works fine in Windows. The CD is physically OK - "dd" made ISO image without any problems. This ISO image is unmountable too. When I force the filesystem to iso9660, it mounts but no files are visible:
Maybe it's a multi-session disk where the first session is HFS with Apple software. Try mounting with -t iso9660 -o session=1.
Still the same - no files. dmesg contains:
ISOFS: Invalid session number or type of track
ISOFS: Invalid session number
ISO 9660 Extensions: Microsoft Joliet Level 3 ISO 9660 Extensions: RRIP_1991A
Signature · 1 line
Ondrej Zary
Quoted 10 lines · On Monday 16 August 2010 16:18:57 Ondrej Zary wrote:
Quoted 8 lines · Johannes Stezenbach
Quoted 4 lines · Ondrej Zary
I have a CD that came with Samsung printer that Linux cannot mount but works fine in Windows. The CD is physically OK - "dd" made ISO image without any problems. This ISO image is unmountable too. When I force the filesystem to iso9660, it mounts but no files are visible:
Maybe it's a multi-session disk where the first session is HFS with Apple software. Try mounting with -t iso9660 -o session=1.
Quoted 6 lines
Still the same - no files. dmesg contains:
ISOFS: Invalid session number or type of track
ISOFS: Invalid session number
ISO 9660 Extensions: Microsoft Joliet Level 3 ISO 9660 Extensions:RRIP_1991A
Here's the compressed ISO file if anyone wants to examine it:
http://www.rainbow-software.org/linux_files/samsung-bad.rar
Signature · 1 line
Ondrej Zary
Hi Ondrej
Quoted 13 lines · Ondrej Zary
Quoted 12 lines · On Monday 16 August 2010 16:18:57 Ondrej Zary wrote:
Quoted 8 lines · Johannes Stezenbach
Quoted 4 lines · Ondrej Zary
I have a CD that came with Samsung printer that Linux cannot mount but works fine in Windows. The CD is physically OK - "dd" made ISO image without any problems. This ISO image is unmountable too. When I force the filesystem to iso9660, it mounts but no files are visible:
Maybe it's a multi-session disk where the first session is HFS with Apple software. Try mounting with -t iso9660 -o session=1.
Still the same - no files. dmesg contains:
Quoted 7 lines
Quoted 4 lines
ISOFS: Invalid session number or type of track
ISOFS: Invalid session number
ISO 9660 Extensions: Microsoft Joliet Level 3 ISO 9660 Extensions:RRIP_1991AHere's the compressed ISO file if anyone wants to examine it:
http://www.rainbow-software.org/linux_files/samsung-bad.rar
what is your kernel version? I can mount it successfully in my el5 box with kernel 2.6.35+.
Regards,
Tao
Quoted 21 lines · Tao Ma
Hi Ondrej
Quoted 18 lines · Ondrej Zary
Quoted 16 lines · On Monday 16 August 2010 16:18:57 Ondrej Zary wrote:
Quoted 8 lines · Johannes Stezenbach
Quoted 4 lines · Ondrej Zary
I have a CD that came with Samsung printer that Linux cannot mount but works fine in Windows. The CD is physically OK - "dd" made ISO image without any problems. This ISO image is unmountable too. When I force the filesystem to iso9660, it mounts but no files are visible:
Maybe it's a multi-session disk where the first session is HFS with Apple software. Try mounting with -t iso9660 -o session=1.
Still the same - no files. dmesg contains:
ISOFS: Invalid session number or type of track
ISOFS: Invalid session number
ISO 9660 Extensions: Microsoft Joliet Level 3 ISO 9660 Extensions:RRIP_1991A
Quoted 5 lines
Quoted 2 lines
Here's the compressed ISO file if anyone wants to examine it:
http://www.rainbow-software.org/linux_files/samsung-bad.rarwhat is your kernel version? I can mount it successfully in my el5 box with kernel 2.6.35+.
I have 2.6.35. Also tried it on another two machines with Debian Squeeze 2.6.32 and Lenny 2.6.26 with the same result (no files visible when mounted).
Signature · 1 line
Ondrej Zary
Quoted 32 lines · Ondrej Zary
Quoted 21 lines · Tao Ma
Hi Ondrej
Quoted 18 lines · Ondrej Zary
Quoted 16 lines · On Monday 16 August 2010 16:18:57 Ondrej Zary wrote:
Quoted 8 lines · Johannes Stezenbach
Quoted 4 lines · Ondrej Zary
I have a CD that came with Samsung printer that Linux cannot mount but works fine in Windows. The CD is physically OK - "dd" made ISO image without any problems. This ISO image is unmountable too. When I force the filesystem to iso9660, it mounts but no files are visible:
Maybe it's a multi-session disk where the first session is HFS with Apple software. Try mounting with -t iso9660 -o session=1.
Still the same - no files. dmesg contains:
ISOFS: Invalid session number or type of track
ISOFS: Invalid session number
ISO 9660 Extensions: Microsoft Joliet Level 3 ISO 9660 Extensions:RRIP_1991AQuoted 5 lines
Quoted 2 lines
Here's the compressed ISO file if anyone wants to examine it:
http://www.rainbow-software.org/linux_files/samsung-bad.rarwhat is your kernel version? I can mount it successfully in my el5 box with kernel 2.6.35+.
I have 2.6.35. Also tried it on another two machines with Debian Squeeze 2.6.32 and Lenny 2.6.26 with the same result (no files visible when mounted).
Quoted 7 lines
--
Ondrej Zary
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Try -unide mount option.
If it does not work, try what is described in the last posts of this thread:
http://www.pubbs.net/200910/kernel/12764-iso9660-mount-problem.html
Regards
Signature · 7 lines
A. C. Censi accensi [em] gmail [ponto] com accensi [em] montreal [ponto] com [ponto] br -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 1 line · On Tuesday 17 August 2010 13:50:39 A. C. Censi wrote:
On Tue, Aug 17, 2010 at 7:08 AM, Ondrej Zary <[email protected]>
Quoted 41 lines · wrote:
Quoted 34 lines · Tao Ma
Quoted 22 lines
Hi Ondrej
Quoted 19 lines · Ondrej Zary
Quoted 17 lines · On Monday 16 August 2010 16:18:57 Ondrej Zary wrote:
Quoted 9 lines · Johannes Stezenbach
Quoted 5 lines · Ondrej Zary
I have a CD that came with Samsung printer that Linux cannot mount but works fine in Windows. The CD is physically OK - "dd" made ISO image without any problems. This ISO image is unmountable too. When I force the filesystem to iso9660, it mounts but no files are visible:
Maybe it's a multi-session disk where the first session is HFS with Apple software. Try mounting with -t iso9660 -o session=1.
Still the same - no files. dmesg contains:
ISOFS: Invalid session number or type of track
ISOFS: Invalid session number
ISO 9660 Extensions: Microsoft Joliet Level 3 ISO 9660 Extensions:RRIP_1991AQuoted 5 lines
Quoted 2 lines
Here's the compressed ISO file if anyone wants to examine it:
http://www.rainbow-software.org/linux_files/samsung-bad.rarwhat is your kernel version? I can mount it successfully in my el5 box with kernel 2.6.35+.
I have 2.6.35. Also tried it on another two machines with Debian Squeeze 2.6.32 and Lenny 2.6.26 with the same result (no files visible when mounted).
Quoted 6 lines
--
Ondrej Zary
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 4 lines
Try -unide mount option.
If it does not work, try what is described in the last posts of this
thread: http://www.pubbs.net/200910/kernel/12764-iso9660-mount-problem.html
Thanks. As Bodo Eggert said, "-o norock" helps.
In fact, I've hit two "bugs":
1. blkid is unable to recognize HFS+ISO9660 CD. Just tracked it down and fixed only to find that it was aleady fixed:
http://git.kernel.org/?p=utils/util-linux-ng/util-linux-ng.git;a=commitdiff;h=791a2fd67c118c3f07141e4cc95532fe908015a9
2. some kernel feature - when Rock Ridge is present on iso9660, it's preferred over Joliet. The CD contains both but seems that only Joliet has files inside? When it's mounted with "-o nojoliet,norock", it's empty too. Can we detect this case and avoid it somehow (switch to Joliet?)
Signature · 5 lines
Ondrej Zary -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
RFC PATCH 1/1 isofs: work-around for Rock Ridge+Joliet CDs with empty ISO root directory
If a CD has both Rock Ridge and Joliet extensions and the ISO root directory is empty, no files are visible. Disable Rock Ridge extensions in this case and use Joliet root directory instead.
fs/isofs/inode.c +40 -0
@@ -549,6 +549,34 @@ static unsigned int isofs_get_last_sessi }/* +* Check if root directory is empty (has less than 3 files). +* +* Used to detect broken CDs where ISO root directory is empty but Joliet root +* directory is OK. If such CD has Rock Ridge extensions, they will be disabled +* (and Joliet used instead) or else no files would be visible. +*/ +static bool rootdir_empty (struct super_block *sb,unsigned long block) +{ +int offset, files, de_len; +struct iso_directory_record *de; +struct buffer_head *bh; + + bh =sb_bread (sb, block); +if (!bh) +return true; +while (files <3 ) { + de = (struct iso_directory_record *) (bh->b_data + offset); + de_len = *(unsigned char *) de; +if (de_len ==0 ) +break ; + files++; + offset += de_len; + } +brelse (bh); +return files <3 ; +} + +/* * Initialize the superblock and read the root inode. * * Note: a check_disk_change() has been done immediately prior
@@ -842,6 +870,18 @@ root_found: goto out_no_root;/* +* Fix for broken CDs with Rock Ridge and empty ISO root directory but +* correct Joliet root directory. +*/ +if (sbi->s_rock ==1 && joliet_level && +rootdir_empty (s, sbi->s_firstdatazone)) { +printk (KERN_NOTICE +"ISOFS: primary root directory is empty. " +"Disabling Rock Ridge and switching to Joliet." ); + sbi->s_rock =0 ; + } + +/* * If this disk has both Rock Ridge and Joliet on it, then we * want to use Rock Ridge by default. This can be overridden * by using the norock mount option. There is still one other
Signature · 1 line
Ondrej Zary