List of ods5 specific mount options

- option bs=blocksize

ODS-2/5 disks have a default blocksize of 512 bytes. CDs/DVSs when formatted with ODS-2/-5 have a blocksize of 2048 bytes. Disk images usually have the size of the disk, but comtainer files can be any size (and multiple of 512 byte blocks). To optimize the I/Os for the ods5 filesystem the blocksize can be set with the bs option. Default is bs=512. Other possible values are 1024, 2048 and 4096. For CDs one would use bs=2048, for disk images or container files - if they are a multiple of 4096, any of these values can be used. Actually, you can use bs=4096 on most of the disk images and even hard disks as long as the last blocks of that device aren't used. But in case of using a non-default value and the ods5 file system reports an "Input/output error", mount the file system without the bs option and try again.

- option dirless (not yet implemented)

Directories always have the suffix '.DIR;1'. That can be suppressed for input and output. The master file directory shows as '000000'. This does not conflict with a file that has a name '000000'. That file will show as '000000.;1'. This will make it easier to look at /mnt/000000/000000/000000/ which is - as we know - still the masterfile directory.

- option dotversion

Change the ';' to something easier to deal with in shells: '.'. Then the master file directory will be '000000.DIR.1' and the file '.;1' will be '..1'. A dot shows in the output of 'ls' and can be used as input as well. (For input this in not new for VMS users, but that doesn't matter, here.) However, the dotversion option is silently disabled when the syml option is also specified.

- option home=lbn

Use an alternate home block with the specified block number, a non-zero decimal value.

By default ods5 uses lbn 1, the second block on the disk, also known as the primary home block (lbn zero usually is the boot block). VMS disks that are initialized with a GPT, do not have a primary home block: the primary GPT header is at lbn 1. Then a secondary or alternate home block is used. It is usually the second useable block of such a disk. VMS disks initialized on Integrity servers or x86 systems by default have a GPT. (Unfortunately only VMS system disks have the GPT populated.)

# od -Ax -tx1z -N 0x200 -j0x200 vmsgpt.dsk
000200 45 46 49 20 50 41 52 54 00 00 01 00 5c 00 00 00  >EFI PART....\...<
000210 6d ce b5 c2 00 00 00 00 00 00 00 00 00 00 00 00  >m...............<
000220 d0 ff 61 00 00 00 00 00 30 00 00 00 00 00 00 00  >..a.....0.......<
000230 cf ff 61 00 00 00 00 00 20 eb e1 60 c1 95 ef 11  >..a..... ..`....<
000240 bf 3b 00 1b 78 9f 74 77 00 00 00 00 00 00 00 00  >.;..x.tw........<
000250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
*
000400
#
The first useable disk block is at offset 0x28 within the GPT header.
# od -Ax -j 0x228 -N 8 -tdL vmsgpt.dsk 
000228                   48
000230
#
That is, the home block is in the second useable disk block at lbn 49.
# mount -v -o ro,loop -t ods5 -o home=49 vmsgpt.dsk /mnt
VMS installation DVDs (or CDs) do not have a primary home block or a GPT. Also, on Non-GPT VMS disks with a corrupted primary home block there may be good secondary or alternate home blocks. For these types of VMS disks the home block candidates need to be searched. For example with (depending on the size of the disk, the input to od should be limited):
$ od -Ax -tx1z small.dsk |grep DECFILE11B
0047f0 44 45 43 46 49 4c 45 31 31 42 20 20 00 00 01 c6  >DECFILE11B  ....<
0049f0 44 45 43 46 49 4c 45 31 31 42 20 20 00 00 05 c6  >DECFILE11B  ....<
# printf "%d\n" $((0x47f0/512))
35
# mount -v -o ro,loop -t ods5 -o home=35 small.dsk /mnt
- option mode=omask

Make the files accessible for other users, set an octal mask value with the mode option. This enables the according protection bits.

- option nomfd

Don't show the masterfile directory, 000000.DIR;1, from the top level directory.

- option syml

With ODS-5 VMS supports symbolic links. An 'ls -l' always shows the target of the symbolic link. To follow such a link specify the option syml. Enabling this feature has some side effects. As input, files and directories without a version number will be found. That is the latest version of a file, if there are more. Also directories without '.DIR;1' will be found. If there is a ';' in the symbolic link, the target will not be found, or a wrong file may be found.
Because of these side effects following a symbolic link is not enabled by default.
If the option syml is enabled the dotversion option is silently disabled.

- option utf8

Enables UTF-8 filename support. This is the default.

All the UTF-8 de- and encodings are done with nls functions. That is, they require CONFIG_NLS_UTF8 to be set in the kernel .config file.

When set, all ISL-1 (ISO Latin-1) and UCS-2 encoded filenames are returned in UTF-8 encoding as well as all UTF-8 encoded names entered will be looked up on the ods5 file system.

Today terminals like xterm by default use UTF-8. To list ODS-5 filenames, which can contain 8-bit ISO Latin-1 or UCS-2 characters, the filename is internally re-encoded as UTF-8 so that it is correctly printed when using such terminals. And vice versa, UTF-8 encoding is accepted, when specifying ODS-5 filesnames.

This is different from what the VMS DCL shows. The DCL shows an escape sequence starting with "^U" followed by uppercase hexadecimal characters. A filename containing only the Greek small alpha character will show on VMS as "^U03B1.;1" By default, that is in utf8 mode, the Linux ods5 filesystem will show this file as "α.;1".

- option vtf7

Enables a VMS style of filename support.

Terminals have to be set up with an ISO Latin-1 character set (for example de_DE.iso88591) to correctly list filenames which contain 8-bit ISO Latin-1 characters. UCS-2 characters in filenames are printed as an escape sequence ?xxxx where xxxx is the code point in plane 0 of Unicode.

This is similar to what the VMS DCL shows. The DCL shows an escape sequence starting with "^U" followed by uppercase hexadecimal characters. A filename containing only the Greek small alpha character will show on VMS as "^U03B1.;1" In vtf7 mode the Linux ods5 filesystem will show this file as "?03B1.;1". Please note, a '?' can not be part of an ODS filename.