Ubuntu 24.04 上从源码编译安装 LTFS挂载LTO数据磁带

适用系统:Ubuntu 24.04 LTS(Noble Numbat)
目标:从 GitHub 源码编译并安装最新版 LTFS,用于磁带设备的文件系统管理
LTFS 官方仓库:https://github.com/LinearTapeFileSystem/ltfs


一、准备工作

首先确认你的系统信息:

hostnamectl

你应该看到类似如下输出(关键点是 Ubuntu 24.04 和 Linux 内核 ≥6.8):

 Static hostname: station
       Icon name: computer-desktop
         Chassis: desktop 🖥️
Operating System: Ubuntu 24.04.3 LTS              
          Kernel: Linux 6.14.0-35-generic
    Architecture: x86-64
 Hardware Vendor: Hewlett-Packard
  Hardware Model: HP Z440 Workstation
Firmware Version: M60 v02.50
   Firmware Date: Thu 2019-11-07
    Firmware Age: 6y 1w 4d      

二、安装编译依赖

以su用户身份执行:

sudo apt update
sudo apt install -y build-essential module-assistant gcc make perl dkms linux-headers-$(uname -r)

接着安装 LTFS 编译所需的开发库:

sudo apt install -y automake autoconf  libtool-bin  libfuse-dev  uuid-dev  libxml2-dev  snmpd snmp libsnmp-dev  libicu-dev   pkg-config

⚠️ 注意:Ubuntu 24.04 默认使用 FUSE 3,而 LTFS 官方目前主要支持 FUSE 2。但自 LTFS v2.5 起已逐步兼容 FUSE 3。如遇问题,可尝试安装 libfuse2 并链接兼容层,但多数情况下直接使用 libfuse-dev(即 FUSE 3)好像也可成功编译。


三、克隆并编译 LTFS 源码

获取代码:

git clone https://github.com/LinearTapeFileSystem/ltfs.git
cd ltfs

生成配置脚本并编译:

./autogen.sh
./configure --enable-buggy-ifs --enable-lintape
make -j$(nproc)

编译完成后安装到系统:

sudo make install
sudo ldconfig

验证安装是否成功:

ltfs --version

预期输出(版本可能更新):

LTFS version 2.5.0.0 (Prelim).
LTFS Format Specification version 2.4.0

✅ 建议重启系统或重新加载内核模块,确保所有驱动和路径生效。


四、检测磁带设备

列出系统识别到的磁带设备:

sudo ltfs -o device_list

示例输出:

Device Name = /dev/sg2 (0.0.1.0), Vendor ID = IBM , Product ID = ULT3580-HH5 , Serial Number = 10WT036509
Device Name = /dev/sg0 (0.0.0.0), Vendor ID = IBM , Product ID = ULT3580-HH5 , Serial Number = 10WT036509

对应的块设备通常是 /dev/st0/dev/st1 等。


五、格式化磁带(首次使用)

⚠️ 此操作会擦除磁带数据

# 格式化第一盘磁带(对应 /dev/st0)
sudo mkltfs -f -d /dev/st0 -n "251118"

你会看到类似日志(省略部分):

LTFS15000I Starting mkltfs, LTFS version 2.5.0.0...
LTFS15013I Volume UUID is: 38b0d1af-4c19-4f3b-8122-66353a6a1395.
LTFS15024I Medium formatted successfully.
LTFS15019I Volume capacity is 1445 GB.
LTFS15024I Medium formatted successfully.

六、挂载 LTFS 磁带

假设磁带标签为 20251118(若无标签则默认为 NO_BARCODE):

# 创建挂载点
mkdir -p /mnt/ltfs

# 回绕磁带到开头
sudo mt -f /dev/st0 rewind

# 挂载
sudo ltfs /mnt/ltfs -o devname=/dev/st0 

验证是否挂载成功:

df -h | grep  ltfs

输出示例:

ltfs:/dev/st0   1.4T     0  1.4T   0% /mnt/ltfs

然后就可以将/mnt/ltfs 当作普通硬盘上面的目录来写入。


七、卸载与注意事项

  • 卸载:直接 sudo umount /mnt/ltfs
  • 自动同步:LTFS 默认每 300 秒同步一次索引,也可手动触发
  • 权限问题:建议将用户加入 tape 组以避免频繁使用 sudo: bash sudo usermod -aG tape $USER 然后重新登录生效。

八、参考资料

  • 官方 GitHub:https://github.com/LinearTapeFileSystem/ltfs
  • AMIA 维护分支(含额外文档):https://github.com/amiaopensource/ltfs
  • LTFS 手册页(man page):ltfs.man.txt
  • https://dwaves.de/2024/05/03/gnu-linux-ubuntu-22-04-and-debian12-how-to-build-ltfs-from-src-aka-scratch/