DVD copying

That appears to be a udf file system so mounting should be quite possible.

Most importantly to copy the (possibly dodgy disk) to HDD, then write a DVD-R.
Secondly have the video on my HDD in a format that VLC can find easily (without me having to try various of the different file types). So I can eventually abandon stupid DVDs.

Did you check the dmesg logs for more info as suggested in that error message (i.e. sudo dmesg)?

There’s a whole lot of stuff about drm - Digital Rights Management?

[ 3.208862] [drm] Detected VRAM RAM=512M, BAR=256M
[ 3.208863] [drm] RAM width 128bits DDR
[ 3.208965] [drm] radeon: 512M of VRAM memory ready
[ 3.208967] [drm] radeon: 1024M of GTT memory ready.
[ 3.208982] [drm] Loading RV730 Microcode
[ 3.219115] [drm] Internal thermal controller with fan control
[ 3.219719] [drm] radeon: dpm initialized
[ 3.229177] [drm] GART: num cpu pages 262144, num gpu pages 262144
[ 3.230497] [drm] enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0
[ 3.249061] [drm] PCIE GART of 1024M enabled (table at 0x000000000014C000).

DRM in this case refers to Direct Rendering Manager. :slightly_smiling_face:

Try running sudo dmesg -w in one terminal window and then run your mount command in another window. If there are any errors releated to reading the file, they should be added to the end of the dmesg output.

Edit: But it is entirely possible that some form of copy protection is preventing you from making a valid copy of your DVD.

[ 1603.767729] UDF-fs: warning (device loop0): udf_load_vrs: No anchor found
[ 1603.767736] UDF-fs: Scanning with blocksize 512 failed
[ 1603.768000] UDF-fs: warning (device loop0): udf_load_vrs: No anchor found
[ 1603.768002] UDF-fs: Scanning with blocksize 1024 failed
[ 1603.768288] UDF-fs: error (device loop0): udf_load_sparable_map: error loading logical volume descriptor: Too big sparing table size (6144)
[ 1603.768292] UDF-fs: Scanning with blocksize 2048 failed
[ 1603.768610] UDF-fs: warning (device loop0): udf_load_vrs: No anchor found
[ 1603.768612] UDF-fs: Scanning with blocksize 4096 failed
[ 1603.768614] UDF-fs: warning (device loop0): udf_fill_super: No partition found (1)

It looks like you have a lead. Now you can try to find info about that error message. A quick Google search suggests that it is an indication of an incomplete or otherwise corrupt UDF filesystem: Disk with filesystem created by mkudffs cannot be mounted · Issue #47 · pali/udftools · GitHub

Can you mount the DVD directly? I.e. sudo mount /dev/sr0 /mnt?

There is a suggestion at the end of that above-linked thread to try adding loop to the list of mount options. Does that work? I.e. sudo mount -t udf -o ro,loop ~/IOM.iso /mnt?

chris@UNKNOWN:~$ sudo mount /dev/sr0 /mnt
[sudo] password for chris:
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/sr0, missing codepage or helper program, or other error.
dmesg(1) may have more information after failed mount system call.
chris@UNKNOWN:~$
chris@UNKNOWN:~$ sudo mount -t udf -o ro,loop ~/IOM.iso /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.
dmesg(1) may have more information after failed mount system call.
2261.687916] UDF-fs: warning (device loop0): udf_load_vrs: No anchor found
[ 2261.687922] UDF-fs: Scanning with blocksize 512 failed
[ 2261.688991] UDF-fs: warning (device loop0): udf_load_vrs: No anchor found
[ 2261.688997] UDF-fs: Scanning with blocksize 1024 failed
[ 2261.689284] UDF-fs: error (device loop0): udf_load_sparable_map: error loading logical volume descriptor: Too big sparing table size (6144)
[ 2261.689288] UDF-fs: Scanning with blocksize 2048 failed
[ 2261.689522] UDF-fs: warning (device loop0): udf_load_vrs: No anchor found
[ 2261.689524] UDF-fs: Scanning with blocksize 4096 failed
[ 2261.689526] UDF-fs: warning (device loop0): udf_fill_super: No partition found (1)

Best I can make of it, there is something wrong with your original copy. I haven’t run into this error before. All I can suggest is to search the web for more info about the error message you are seeing in your dmesg log.

I think the main message is to abandon DVDs even sooner than I intended. I get the impression that everybody else has already done so.

With a little more searching, I think the following error is the main problem:

error loading logical volume descriptor

It looks like a limit has been set in Linux:

https://patchwork.kernel.org/project/linux-fsdevel/patch/20200925125730.8496-4-jack@suse.cz/

Maybe if you could find a tool that could convert the UDF filesystem to ISO 9660, that might be a workaround.

ISO 9660 sounds like it should be used for a .iso file, UDF doesn’t, is the former the usual iso format and the latter something else entirely?

It looks like UDF is supposed to be the “new and improved” format: Universal Disk Format - Wikipedia

That’s where the problems start. I originally bought a DVD recorder then discovered there was a format it couldn’t handle called DVD+R and took it back - they were very helpful and swapped it for one that could. Waste of time, no big advantage and more confusion. Then came Blu-ray, just in time for everyone to abandon disks for machines with HDDs and streaming.

Can ddrescue create a different sort of file to iso? ddrescue --help doesn’t suggest that it can.

No, for the most part, dd and ddrescue will only copy the data, they won’t do conversions.

Just FYI, the “sparing table” size was limited in Linux as a security precaution:

  • Buffer overflow flaws were found in the udf_load_logicalvol() function in

the Universal Disk Format (UDF) file system implementation in the Linux
kernel. An attacker with physical access to a system could use these flaws
to cause a denial of service or escalate their privileges. (CVE-2012-3400,
Low)

Source: https://access.redhat.com/errata/RHSA-2013:0594 (see also 843139 – (CVE-2012-3400) CVE-2012-3400 kernel: udf: buffer overflow when parsing sparing table)

From Wikipedia’s article on UDF:

The spared build was added in revision 1.5 to address the particularities of rewriteable media. This build adds an extra Sparing Table in order to manage the defects that will eventually occur on parts of the disc that have been rewritten too many times. This table keeps track of worn-out sectors and remaps them to working ones. UDF defect management does not apply to systems that already implement another form of defect management, such as Mount Rainier (MRW) for optical discs, or a disk controller for a hard drive.

The tools and drives that do not fully support revision 1.5 of UDF will ignore the sparing table, which would lead them to read the outdated worn-out sectors, leading to retrieval of corrupted data.

So instead of using dd you should mount that disk and copy the files from it onto the hdd.

Details of udf can be found at Universal Disk Format - Wikipedia
Disc Formats - Win32 apps | Microsoft Learn

He cannot mount the disc because it contains a UDF filesystem with a sparing table size (6144) that is greater than its block size (2048). Linux, since version 3.4.5, does not allow mounting a UDF filesystem with a sparing table that is larger than one block: [3/3] udf: Limit sparing table size - Patchwork

1 Like

It would be a major hassle, and I’m not sure that it would work, but one way you might be able to convert the filesystem to something that would work with Linux would be to download a Live image for an older version of Fedora Linux (something pre-2020 when that limiting patch was applied). Then create a blank iso file of sufficient size and launch the Fedora Live image in a VM with your original and blank ISOs attached. In the older Fedora Linux OS, you should be able to mount your DVD image and you should be able to craft a new UDF filesystem on the blank iso file with a block-size/sparing-table-size combination that will work on post-3.4.5 Linux kernels.

I’m going to spam a page of mine, old, but still useful to some people. Working with multimedia from the command line
It’s more about using multimedia in general, as I haven’t burnt dvds in years, so that part is dated but a lot of it was done on old CentOS and should work in Fedora.

1 Like