FreeBSD使用Linux XFS文件系统

xfsprogs

第三方在FreeBSD上移植了 xfsprogs Utilities for managing XFS filesystems

  • 安装 xfsprogs :

安装 xfsprogs
pkg install xfsprogs
  • 格式化XFS文件系统:

格式化XFS文件系统
mkfs.xfs /dev/diskid/DISK-Y39B70RTK7ASp4

输出信息:

格式化XFS文件系统
meta-data=/dev/diskid/DISK-Y39B70RTK7ASp4 isize=512    agcount=4, agsize=16777216 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1
data     =                       bsize=4096   blocks=67108864, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=32768, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

挂载XFS

很不幸,FreeBSD内核已经移除了XFS支持,所以不能直接挂载,需要通过 FUSE 来实现XFS挂载

  • 安装 fusefs-lkl :

安装 fusefs-lkl
pkg install fusefs-lkl
  • 加载 fusefs 内核模块

加载 fusefs 内核模块
kldload fusefs

# 要在启动时加载fuse内核模块
echo 'fusefs_load="YES"' >> /boot/loader.conf
# 或者设置 rc.conf
# 注意: 如果需要在启动时使用fusefs,则应该使用 /boot/loader.conf
sysrc kld_list="fusefs"
  • 挂载磁盘分区:

使用 lklfuse 挂载XFS文件系统
lklfuse -o type=xfs /dev/diskid/DISK-Y39B70RTK7ASp4 /lfs

备注

我这里有一个乌龙,我忘记执行 mkfs.xfs 格式化XFS文件系统,而直接使用了上述 lklfuse 来挂载一个EXT4文件系统作为XFS来挂载。结果导致该挂载目录hang死了,连 df 都出不来

参考