Recently I got my hands on a DVD which I couldn’t get to mount. The message that appeared consistently in dmesg was:
UDF-fs: No fileset found
Searching the forums I found out that this is a widespread problem. Vista uses some kind of non-standard UDF which only Windows can read. I was very tempted to run to the Windows PC in the other room and let it eat the disc, but I was curious if there was any other solution.
Many suggested mounting manually with -t udf, but that didn’t work. Another suggestion was patching and recompiling the kernel. I was obviously NOT in the mood to do that. Digging a bit deeper I found that there is actually a less greasy solution. The two relevant links are one and two. I will describe now the exact procedure I used to get my Linux box to recognize the Vista-burnt DVD. Note that, because of the rapidly changing environment, this will probably NOT work on anything OTHER than *Ubuntu Hardy with kernel version 2.6.24.
Step 1. Preparation:
- Make sure you have the proper linux kernel headers installed. For example, if you have linux-image-2.6.24-18-386 and linux-headers-2.6.24-18-generic, that will not work. You will need linux-headers-2.6.24-18-386.
- Download udf-filesystem-2.5.tar.gz and unpack it into ~/root/udf-vista/udf-filesystem-2.5.
I have a directory ~/root/ where I keep all the software I install myself, i.e. not through APT.
- Copy the patch from here into a file, ~/root/udf-vista/udf-filesystem-2.5/vista-patch, skipping the first line (the one that starts with diff).
Step 2. Compilation:
- Apply the patch in the ~/root/udf-vista/udf-filesystem-2.5/src directory. Note that because I copy-pasted the patch into vista-patch, the tabs got converted into spaces, and I had to use the -l switch to make it ignore this.
patch -l <../vista-patch
If something fails at this step, don’t go any further, and investigate where the patch went wrong.
- Compile the thing. This is the magic bit. Instead of recompiling the entire kernel, you only have to build the UDF module!
If this fails, you probably have the wrong kernel version or headers.
Step 3. Testing:
- Remove any currently loaded UDF module.
sudo rmmod udf
- Now you need to actually replace the udf.ko file in the running kernel. I chose not to remove the original file, and instead moved it to a safe place.
sudo mv /lib/modules/$(uname -r)/kernel/fs/udf/udf.ko ./udf.ko-old
sudo cp src/udf.ko /lib/modules/$(uname -r)/kernel/fs/udf/udf.ko
- Load the actual module.
sudo modprobe -v udf
(Alternatively, you can try doing sudo insmod src/udf.ko before moving it to /lib.)
- Eject the DVD, put it back in, and watch it automount magically.
Step 4. Victory Dance! (In your face, Vista! )
A better solution would be, obviously, to somehow convince Vista to obey the UDF standards. Since that’s not going to happen anytime soon, I really hope that this patch will some day be included in the default kernel. Other than that, I’m glad it worked, and I hope this helps. Warm thanks to the people who made this possible (link, link).