OpenLTFS - harrypm/LTO GitHub Wiki

OpenLTFS

OpenLTFS is an open and neutral LTFS (Linear Tape File System) implementation, without the proprietary extensions from the different vendors. It implements the version 2.5.1 of the format specification, also standardised as ISO/IEC 20919:2021.

It supports not only tape drives, but also do-it-yourself tape libraries. The proof of concept is done with the openLTO package.

The openLTFS package contains the libltfs C library, which provides the classic ltfs and mkltfs commands, as well as the ltfs_check and ltfs_copy commands, and the openltfs Bash command-line interface.

libltfs is a C library implementing LTFS version 2.5.1 as defined by SNIA, also standardised as ISO/IEC 20919:2021.

This is vendor-neutral and provides the classic ltfs and mkltfs utilities, as well as additional ltfs_check and ltfs_copy utilities.

The ltfs utility can be used as a drop-in replacement for any current proprietary LTFS implementation. The openLTFS package includes the libltfs library and its associated ltfs, ltfs_check, ltfs_copy and mkltfs utilities, as well as the openltfs command-line interface.

Install

brew tap avpres/formulae brew install openltfs

Support

The Homebrew formula was successfully tested on various modern x86_64 and AArch64 architectures, running under the following operating systems:

Linux: Debian 12.0, 11.7 and 10.13; Ubuntu 23.04, 22.04.2 LTS and 20.04.6 LTS; Slackware 15.0

Mac: macOS 13.4.1, 12.6.7 and 11.7.8

Windows: 11 version 22H2 and 10 version 22H2, running Terminal or Subsystem for Linux

Actual Usage

ltfs - Linear Tape File System

SYNOPSIS

ltfs mount_point [-o mount_option]

ltfs -h | -v

OPTIONS

mount_point

set mount point

LTFS MOUNT OPTIONS

-o devname=name

tape device name

-o work_directory=directory

LTFS work directory

-o device_list

list available tape drives

FUSE MOUNT OPTIONS

-o umask=mode

override default permission mask The format is a 3-digit octal and the default is 000.

-o uid=N

set file owner

-o gid=N

set file group

EXPERIMENTAL MOUNT OPTIONS

The following list is not exhaustive.

-o config_file=file

path to configuration file

-o fmask=mode

override file permission mask

The format is a 3-digit octal and the default is 000.

-o dmask=mode

override directory permission mask

The format is a 3-digit octal and the default is 000.

-o scsi_append_only_mode={on|off}

switch on (default) or off tape drive append-only mode

-h, --help, -a

display a help message

Unless many vendor’s LTFS implementations, -a is an alias of -h. Note that the most comprehensive information is currently provided by this man page.

-v, --version, -V

display the running version

-V is an alias provided for compatibility with many vendor’s LTFS implementations.

mkltfs

mkltfs - Format a cartridge in an LTO drive with the LTFS format

FORMATTING OPTIONS

Coming soonish...

-c, --compression={yes|no}

default is no

Please note that the default value is usually yes in proprietary LTFS implementations, but to compress file formats which are already compressed is usually counterproductive and often results in bigger files.

-e, --encryption={yes|no}

default is no

-h, --help

display a help message

ltfs_check

ltfs_check - Check the integrity of an LTFS-formatted cartridge

OPTIONS

CHECKING OPTIONS

Coming soonish...

REPAIRING OPTIONS

Coming soonish...

OTHER OPTIONS

-h, --help

display a help message

NOTES

ltfs_check supersedes the previously implemented ltfsck and chkltfs.

ltfs_copy

Copy Tool for LTFS

No Commands Exist


-h, --help

display a help message

libltfs

LTFS for both tape drives and DIY tape libraries

DESCRIPTION

libltfs is a C library implementing LTFS version 2.5.1 as defined by SNIA, also standardised as ISO/IEC 20919:2021. This is vendor-neutral and provides the classic ltfs and mkltfs utilities, as well as additional ltfs_check and ltfs_copy utilities.

The openLTFS package includes the libltfs library and its associated ltfs, ltfs_check, ltfs_copy and mkltfs utilities, as well as the openltfs command-line interface.

OPTIONS

-t, --test

test that the libmovim library is correctly installed and properly working

-h, --help

display a help message

-v, --version

display the installed version of libltfs in the date-based YYYY−MM−DD format and the implemented version of LTFS in the semantic major.minor[.patch] format: libltfs 2023-05-20

LTFS 2.5.1

The easiest way to use libltfs is by the provided ltfs, ltfs_check, ltfs_copy and mkltfs utilities. Of course, you could also include the library into your own applications by declaring the preprocessor directive:

#include "libltfs.h"

libltfs works with the drives of the main manufacturers from generation LTO-5 to LTO-9.

libltfs has been successfully tested on various modern x86_64 and AArch64 architectures, running the following operating systems:

Linux: Debian 11.6, 10.13 and 9.13; Ubuntu 22.10, 22.04.2 LTS, 20.04.5 LTS and 18.04.6 LTS; Slackware 15.0

Macintosh: macOS 13.4, 12.6.6, 11.7.4 and 10.15.7

Windows: 11 version 22H2 and 21H2; 10 version 22H2, 21H2, 21H1 and 20H2 running Terminal or Subsystem for Linux

openltfs

Command-line interface to libltfs

openltfs -t | -h

-t, --test

test which LTFS library is installed

If libmovim is installed, then checks as well that it is properly working.

-h, --help

display a help message