Logo
Overview

在linux上管理并查看timemachine备份

April 3, 2026

好久之后写的第一篇文章。

mac空间满了于是直接格式化掉了重置了,文件备份还在nas里,于是想直接给取出来。

0x01 编译安装

这里我们要用到两个binary,分别是‣,用来把sparsebundle挂在成一个dmg,以及‣,用来把dmg里的APFS备份卷挂载出来。

但是似乎这两个都没有现成的包可以用,于是我们需要手动安装。

首先安装依赖

BASH
sudo apt update
sudo apt-get install pkg-config libfuse-dev fuse # for sparsebundle-fs
sudo apt install fuse libfuse3-dev bzip2 libbz2-dev cmake gcc-c++ git libattr1-dev zlib1g-dev # for apfs-fuse

然后找源码/编译:

BASH
git clone --depth=1 https://github.com/torarnv/sparsebundlefs.git
cd sparsebundlefs
sudo make install
cd ..

git clone --depth=1 https://github.com/sgan81/apfs-fuse.git
cd apfs-fuse
git submodule init # ?这里是不是能直接用--recusive了?
git submodule update
mkdir build
cd build
cmake ..
sudo make install 
cd ..

0x02 挂载

首先你需要找到nas上用来存放sparsebundle的地方,我用的是飞牛所以是在/vol1/@timemachine 下面。

BASH
mkdir -p "mnt_sparsebundle" "mnt_apfs"
sparsebundlefs /vol1/@timemachine/HUAWEI\ Matebook\ Pro.sparsebundle ./mnt_sparsebundle
ls -l mnt_sparsebundle

这个时候能看到这里面有一个sparsebundle.dmg ,接下来用apfs-fuse来挂载sparsebundle.dmg

BASH
apfs-fuse ./mnt_sparsebundle/sparsebundle.dmg ./mnt_apfs

这个时候就能在./mnt_apfs/root下面看到

BASH

- `2026-04-03-094221.previous`
- `2026-04-03-094221.backup`
- `backup_manifest.plist`

这样的几个备份了,进去看看也能找到正确的文件。

0x03 切换特定快照

其实也可以只挂在某一个快照。需要用apfsutil查看Snapshots。

BASH
apfs-fuse \
  -o snap=1769 \
  "./mnt_sparsebundle/sparsebundle.dmg" \
  "./mnt_apfs"

最后找到文件,用rsync或者cp直接取出来就好。

comment

留言 / 评论

如果暂时没有看到评论,请点击下方按钮重新加载。