适用系统: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/
CycleUser