FUSE driver for APFS (Apple File System)
项目地址: github.com/sgan81/apfs…
本文以作者在 Ubuntu24 上的操作流程为依据,尽量简化安全的操作流程,保留了原 README 的部分提示原文,更多信息见原项目 README
请在确保一定的 Linux 知识基础、掌握相关权限、网络科学通畅的情况下操作
编译原项目
以 Ubuntu24 为例
准备环境:
sudo apt update
sudo apt install libfuse3-dev bzip2 libbz2-dev cmake gcc git libattr1-dev zlib1g-dev
# Ubuntu 22.04+ 使用 fuse3, 否则为 fuse
sudo apt fuse3
具体以你使用的 Linux 发行版为准(部分极简Linux发行版(如Alpine)的基础gcc包可能未附带g++,需单独安装 g++ 或 gcc-c++ 包补全)
你或许需要一个专门的目录来做这些,而不是让你的 ~ 目录越来越乱
mkdir dev
cd dev
如果目录名与此不同记得根据实际情况替换掉下文的 /dev
克隆原仓库:
git clone https://github.com/sgan81/apfs-fuse.git
cd apfs-fuse
git submodule init
git submodule update
The driver uses Apple's lzfse library and includes it as a submodule.
编译驱动器:
mkdir build
cd build
cmake ..
# ccmake . # Only if you want to change build options 则取消注释
make
Note that the driver uses FUSE 3.0 by default (required on 32-bit systems). If you want do compile using FUSE 2.6, use ccmake . to change the option USE_FUSE3 to OFF.
看到输出 Built target apfsutill 后执行安装
sudo make install
验证是否成功安装
# 查看帮助
apfsutil --help 2>&1 | head -5
apfs-fuse --help 2>&1 | head -5
# 看安装位置
which apfsutil
which apfs-fuse
挂载 APFS 分区
# 1. 找到 APFS 分区
lsblk -f | grep -i apfs
# 或
sudo fdisk -l | grep -i "Apple APFS"
# 2. 创建挂载点 如命名为 mac-drive
mkdir -p ~/mac-drive
# 3. 只读挂载(推荐)"/dev/sdbX"根据实际情况来
sudo apfs-fuse -o allow_other,ro /dev/sdbX ~/mac-drive
# 把 sdbX 换成实际分区,如 sdb2 或 nvme0n1p2
# 4. 访问
ls ~/mac-drive
nautilus ~/mac-drive # 用文件管理器打开
挂载详细操作参考项目文档,谨慎尝试
命令行卸载
# 标准卸载
sudo umount ~/mac-drive
# 如果 busy(文件管理器没关)
sudo umount -l ~/mac-drive # 延迟卸载
# 或
sudo fusermount -u ~/mac-drive # fuse 专用
Unmount a drive 原文
As root:
umount <mount-directory>
As user:
fusermount -u <mount-directory>