Sortix volatile manual
This manual documents Sortix volatile, a development build that has not been officially released. You can instead view this document in the latest official manual.
ISO9660FS(8) | System Manager's Manual | ISO9660FS(8) |
NAME
iso9660fs
— iso
9660 filesystem driver
SYNOPSIS
iso9660fs |
[-bf ] [-o
mount-options] [-p
path] device
mountpoint |
DESCRIPTION
iso9660fs
mounts the ISO 9660 aka ECMA-119
filesystem on the device for reading at the
mountpoint. iso9660fs
forks
and runs in the background once the filesystem has been mounted.
A compatible ISO 9660 filesystem can be created using xorriso(1). Filesystems can be automatically mounted by init(8) on boot by creating an entry in fstab(5) with the iso9660 type.
iso9660fs
implements the System Use
Sharing Protocol that allows extensions such as Rock Ridge.
iso9660fs
implements the Rock Ridge 1.10
and 1.12 extensions that provide POSIX metadata, such as long file names
with arbitary characters, deep directory hiearchies, permissions, owner and
group metadata, special files, hard links, symbolic links, multiple
timestamps with 10 ms precision until year 9999, and more. Sparse files are
not implemented.
The options are as follows:
-b
,--background
- Run in the background in a subprocess after successfully mounting. This is the default behavior.
-f
,--foreground
- Run in the foreground and do not detach in a subprocess.
-o
mount-options- Mount the filesystem with the following comma-separated
mount-options:
- cache=size
- Sets the filesystem cache to the specified size, which is measured in an optional suffix: % for percent of system memory, K for KiB, M for MiB, or G for GiB. The default is 10% of the system memory.
- nosusp
- Disable the System Use Share Protocol and therefore Rock Ridge.
- norock
- Disable the Rock Ridge extensions.
- ro
- Mount the filesystem as read-only. This option is the default behavior and write support is not possible.
-p
,--pretend-mount-path
=path- When answering requests about where the filesystem is mounted, reply with this path instead of the actual mountpoint in tcgetblob(2). This behavior is useful for chroot(2) environments.
The following identifiers are available to recognize a filesystem in fstab(5) in the fs_spec field and can be queried with the disked(8) id command:
- LABEL=label
- Search for a filesystem with this label as the volume identifier.
- ABSTRACT_ID=value
- Search for a filesystem with this value as the abstract file id.
- APPLICATION_ID=value
- Search for a filesystem with this value as the application id.
- BIBLIOGRAPHIC_ID=value
- Search for a filesystem with this value as the bibliographic file id.
- COPYRIGHT_ID=value
- Search for a filesystem with this value as the copyright file id.
- DATA_PREPARER_ID=value
- Search for a filesystem with this value as the data preparer id.
- PUBLISHER_ID=value
- Search for a filesystem with this value as the publisher id.
- VOLUME_SET_ID=value
- Search for a filesystem with this value as the volume set id. This identifier may be a good choice for the filesystem search if it has been set to a unique value.
- SYSTEM_ID=value
- Search for a filesystem with this value as the system id that can interpret the boot data.
- UUID=creation-time
- Search for a filesystem with this creation-time in the YYYY-MM-DD-HH-MM-SS-CC format, without respecting the time zone field. uuid. This identifier is generally recommended for filesystem searches to avoid mounting the wrong filesystem, but may not be unique, and another identifier may be better suited depending on the volume.
IMPLEMENTATION NOTES
If -f
, then
iso9660fs
signals readiness when it has successfully
mounted the filesystem.
The System Use Sharing Protocol continuation areas are limited to 32 blocks.
ASYNCHRONOUS EVENTS
SIGTERM
- Request daemon termination.
iso9660fs
will exit after gracefully unmounting the filesystem.
EXIT STATUS
If -b
, iso9660fs
exits 0 after successfully mounting the filesystem and serving requests in a
background process.
If -f
, iso9660fs
signals readiness on the READYFD
file descriptor
when filesystem has been mounted, and continues running in the same
process.
iso9660fs
runs as a
daemon(7) until stopped by
SIGTERM
or until the filesystem is unmounted with
unmount(8) or
unmount(2), after which
iso9660fs
exits 0 if the filesystem was cleanly
unmounted.
iso9660fs
exits non-zero on fatal
errors.
EXAMPLES
$ iso9660fs /dev/foo0 /mnt $ ls /mnt $ unmount /mnt
SEE ALSO
STANDARDS
Volume and File Structure of CD-ROM for Information Interchange, ISO International Organization for Standardization, ISO/IEC 9660:2023, ISO/IEC JTC 1/SC 23, 2023.
Volume and File Structure of CDROM for Information Interchange, Ecma International, ECMA-119 5th Edition, December 2024.
System Use Sharing Protocol, Institute of Electrical and Electronics Engineers, IEEE P1281 1.12, IEEE CD-ROM File System Format Working Group, July 8, 1994.
Rock Ridge Interchange Protocol, Institute of Electrical and Electronics Engineers, IEEE P1282 1.12, IEEE CD-ROM File System Format Working Group, July 8, 1994.
BUGS
Hard links are not perfectly implemented, as the different directory entries have different inode numbers due to current technical limitations.
Multiple sessions are not supported yet due to no driver support.
Multiple file extents are not supported.
Rock Ridge sparse files are not implemented. This lack of support matches xorriso(1).
Interleaved files via the Interleave Gap Size and File Unit Size are not implemented. This lack of support matches xorriso(1).
readdir(2) runs in O(n) linear time, which takes O(n^2) quadratic time when reading a full directory.
ISO 9660 Extended Attributes are not implemented, as Rock Ridge provides the needed features.
The Rock Ridge long form timestamps have a four digit year field and will overflow in the year 10000. If this extension is not used, the timestamps use a byte count since the year 1970 and will overflow in the year 2156.
The owner and group values are limited to 32-bit.
The logical sector size must be 2048 bytes. Supporting other sector sizes would require searching multiple offsets for the sector size used by the filesystem, which might not match the underlying device.
April 26, 2025 | Sortix 1.1.0-dev |