You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Ubuntu中实现类Windows「Previous Versions」的SMB快照恢复功能?

在Ubuntu中恢复FreeNAS SMB共享的文件旧版本

刚好我之前处理过类似的需求,FreeNAS的ZFS快照在Ubuntu下其实可以通过两种主要方式访问,实现和Windows「Previous Versions」类似的效果——本质上FreeNAS是通过隐藏的.zfs/snapshot目录来存储快照的,只是Ubuntu默认不显示隐藏文件而已,下面给你分步说明:

方法一:命令行方式(适合熟悉终端的用户)

  1. 挂载SMB共享到本地
    先创建一个本地挂载点:

    sudo mkdir -p /mnt/freenas-share
    

    然后用mount.cifs挂载共享,替换成你的服务器信息和账号:

    sudo mount.cifs //你的FreeNAS服务器IP/共享名称 /mnt/freenas-share -o username=你的SMB用户名,password=你的SMB密码,uid=$(id -u),gid=$(id -g)
    

    加上uidgid参数是为了让挂载后的目录权限匹配当前用户,避免后续操作出现权限问题。

  2. 访问快照目录
    挂载完成后,查看隐藏的快照目录:

    ls /mnt/freenas-share/.zfs/snapshot
    

    每个子目录对应一个快照时间点,比如auto-2024-05-20_08-00这类命名。

  3. 恢复旧版本文件
    找到目标快照,直接复制需要的文件到共享目录即可,比如恢复report.docx

    cp /mnt/freenas-share/.zfs/snapshot/auto-2024-05-20_08-00/report.docx /mnt/freenas-share/
    

方法二:桌面GUI方式(适合图形界面用户)

如果你习惯用Ubuntu自带的Nautilus文件管理器,可以这样操作:

  1. 连接SMB共享
    打开文件管理器,点击左侧的「Other Locations」,在底部「Connect to Server」输入框中填入:

    smb://你的FreeNAS服务器IP/共享名称
    

    按回车后输入SMB账号密码,登录进入共享目录。

  2. 显示隐藏文件
    在共享目录中按下Ctrl+H,就能看到隐藏的.zfs文件夹(Ubuntu默认不显示隐藏文件)。

  3. 访问快照并恢复文件
    进入.zfs/snapshot目录,里面的子目录对应各个快照时间点。找到包含目标旧文件的快照,直接把文件复制粘贴到共享目录的正常位置即可。

可选优化:让快照更易访问

如果觉得每次找.zfs目录麻烦,可以在FreeNAS的SMB共享设置里,确保「Show Snapshots in Windows Previous Versions」选项开启(默认一般已打开),它不仅支持Windows的「Previous Versions」,也会确保.zfs目录在SMB共享中可见。

另外,你可以在FreeNAS的共享目录中创建符号链接指向快照目录:

ln -s .zfs/snapshot Snapshots

这样在Ubuntu的文件管理器里就能直接看到「Snapshots」文件夹,不用每次显示隐藏文件。注意需要在FreeNAS的SMB服务设置中开启「Allow Symbolic Links」选项,否则符号链接可能无法正常访问。

内容的提问来源于stack exchange,提问作者hunteke

火山引擎 最新活动