Score:1

How to be sure about which version of ISO 9660 filesystem has been used to format a CD/DVD?

sy flag

Note: Current version of UDisks I have: gnome-disk-utility 3.36.3 UDisks 2.8.4 (built against 2.8.4))

I have a several empty DVD+RW disks. When I insert them in the disk player and use UDisks (the gnome-disk-utility) it just indicates "ISO 9660".

I know there are different versions/levels/extensions of the ISO 9660 filesystem (Rock Ridge, Joliet, etc.—See ISO 9660 on Wikipedia). Is there a way to check whether the filesystem used on a disk is the original ISO 9660 or one of the other extensions?

Alternatively, would UDisks indicate it if it were a different extension/level of the ISO 9660 filesystem or does it label all the versions under the same "ISO 9660" indication?

Score:2
jp flag

Original answer

You can use xorriso from the repository universe.

sudo apt update
sudo apt install xorriso

xorriso -indev file.iso  # iso file
xorriso -indev /dev/sr0  # optical disk (CD or DVD)

to see some details of the iso system, for example with an Ubuntu iso file:

$ xorriso -indev ubuntu-22.04.1-desktop-amd64.iso
GNU xorriso 1.5.3 : RockRidge filesystem manipulator, libburnia project.

xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE :     963 nodes read in 1 seconds
libisofs: NOTE : Found hidden El-Torito image for EFI.
libisofs: NOTE : EFI image start and size: 1866280 * 2048 , 8496 * 512
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev 'ubuntu-22.04.1-desktop-amd64.iso'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Boot record  : El Torito , MBR protective-msdos-label grub2-mbr cyl-align-off GPT
Media summary: 1 session, 1868570 data blocks, 3650m data, 2321g free
Volume id    : 'Ubuntu 22.04.1 LTS amd64'

and for example with the first of two Windows 8 optical disks delivered with a now old Toshiba laptop:

sudo umount /dev/sr0  # unmount the automounted disk

$ xorriso -indev /dev/sr0
GNU xorriso 1.5.3 : RockRidge filesystem manipulator, libburnia project.

xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE :       1 nodes read in 1 seconds
libisofs: WARNING : Found hidden El-Torito image. Its size could not be figured out, so image modify or boot image patching may lead to bad results.
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev '/dev/sr0'
Media current: DVD-ROM
Media status : is written , is closed
Boot record  : El Torito
Media summary: 1 session, 3950832 data blocks, 7716m data,     0 free
Volume id    : 'TI30990500A_1'

Find more details in man xorriso

Edit: Forwarded answer from the author of xorriso

I asked the author of of xorriso, Thomas Schmitt, and received the following answer via email:

Hi,

today i cannot get past the captcha of askubuntu.

So either point the readers of question 1441688 to bug-xorriso@gnu.org for discussions or post my following answer:


The current stable version xorriso-1.5.4 can report the presence of Rock Ridge (an addon to the ISO 9660 directory tree), Joliet (an alternative ISO 9660 directory tree for MS-Windows with 16 bit characters for file names), or ISO 9660-1999 (another alternative directory tree with few benefit).

$ xorriso -indev debian-11.5.0-amd64-netinst.iso -toc
...
ISO offers   : Rock_Ridge Joliet
ISO loaded   : Rock_Ridge
...

If it had a ISO 9660-1999 tree, then the "ISO offers" line would also show the word "ISO_9660_1999". If there is neither Rock Ridge, nor Joliet, nor ISO 9660-1999, then the word "Only_ECMA_119" is shown. The "ISO loaded" line shows which tree gets read and subsequentely used by xorriso operations. (This can be chosen by xorriso command -read_fs.)

The development version xorriso-1.5.5 has a new command

-assess_indev_features

which inspects the loaded ISO in more detail and reports the "level of interchange" (1= all ECMA-119 names comply with DOS 8.3 style, 2= all data files are smaller than 4 GiB, 3= data files of 4 GiB or larger exist).

$ xorriso -indev debian-11.5.0-amd64-netinst.iso -assess_indev_features plain
...
Indev feature: size=195584
Indev feature: iso_level=1
Indev feature: rockridge=1
Indev feature: joliet=1
Indev feature: iso1999=0
Indev feature: eltorito=1
Indev feature: tree_loaded=0
Indev feature: tree_loaded_text=ISO9660
Indev feature: rr_loaded=1
Indev feature: aaip=0
Indev feature: untranslated_name_len=0
Indev feature: allow_dir_id_ext=1
Indev feature: omit_version_numbers=0
Indev feature: allow_deep_paths=0
Indev feature: allow_longer_paths=0
Indev feature: max_37_char_filenames=0
Indev feature: no_force_dots=2
Indev feature: allow_lowercase=0
Indev feature: allow_full_ascii=1
Indev feature: relaxed_vol_atts=1
Indev feature: joliet_longer_paths=0
Indev feature: joliet_long_names=1
Indev feature: joliet_utf16=0
Indev feature: rrip_version_1_10=1
Indev feature: rrip_1_10_px_ino=0
Indev feature: aaip_susp_1_10=0
Indev feature: record_md5_session=0
Indev feature: record_md5_files=0

It can tell the native xorriso commands to achieve the seen properties when writing a new ISO:

$ xorriso -indev debian-11.5.0-amd64-netinst.iso -assess_indev_features cmd
...
-compliance iso_9660_level=1
-rockridge on
-joliet on
-compliance iso_9660_1999_off
-compliance untranslated_name_len=0
-compliance allow_dir_id_ext
-compliance omit_version_off:only_iso_version_off
-compliance deep_paths_off
-compliance long_paths_off
-compliance long_names_off
-compliance no_force_dots_off:no_j_force_dots
-compliance lowercase_off
-compliance full_ascii
-compliance joliet_long_paths_off
-compliance joliet_long_names
-compliance joliet_utf16_off
-compliance old_rr
-compliance aaip_susp_1_10_off

and it can tell the mkisofs options to achieve the seen properties:

$ xorriso -indev debian-11.5.0-amd64-netinst.iso -assess_indev_features as_mkisofs
-iso-level 1
-R
-J
-d
-U
-joliet-long

Download offer of the development snapshot https://www.gnu.org/software/xorriso/xorriso-1.5.5.tar.gz Compilation instructions are in https://www.gnu.org/software/xorriso/README_xorriso_devel "Compilation, First Glimpse, Installation"

I pronounce "xorriso" the german way, like an english speaker would read "ksorr-ee-zo". But actually the natural english pronounciation "ksorr-i-so" is the correct one. It stands for X/Open, Rock Ridge, ISO 9660.


Have a nice day

Thomas

in flag
Aside, do you know how the devs intended xorriso to be pronounced? "X-OR I.S.O", "horri-so", "zorri-so", something else?
sudodus avatar
jp flag
@pbhj, No, but you can ask [Thomas Schmitt](https://scdbackup.sourceforge.net/xorriso_eng.html), the author (via a link at the end of <--- this link).
The Quark avatar
sy flag
@pbhj Maybe like [Chorizo](https://en.wikipedia.org/wiki/Chorizo)...
The Quark avatar
sy flag
On one disk I tried, UDisks says 'UDF 1.02'. On another disk, it says 'ISO9660'. So it seems UDisks and xorriso give complementary information. I will try on other disks I have to get a more extended view.
sudodus avatar
jp flag
@TheQuark, Thanks for these additional details :-) When you have more details, you are welcome to write your own answer (or if you prefer, edit your original question) to show us what the different tools are showing.
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.