我正在尝试使用在 Fedora 22 上运行的 samba 4.2 实现 vfs_shadow2 模块,以使客户端上的 Windows 资源管理器功能“以前的版本”能够正常工作。
共享“文件夹”实际上是一个 Btrfs 子卷,SELinux 已启用,已设置适当的上下文,并且共享可供用户浏览、读取和写入,正如预期的那样。此外,我创建了两个快照作为共享的直接子项,并将它们命名为(如 vfs_shadow_copy 文档 [1] 中所述),例如 @GMT-YYYY.MM.DD-hh.mm.ss。
关于该共享的 smb.conf 是
[btrfs]
comment = btrfs storagepool with subfolders, subvolumes and snapshots
path = /srv/btrfs/subvol01
vfs objects = shadow_copy2
browseable = yes
valid users = testuser
尽管如此,当连接 Windows 客户端(Win 8.1 Professional x64)并尝试将文件恢复到以前的版本时,我只收到无法找到以前版本的提示。
我遗漏了什么?是否需要安装额外的 RPM 包(尽管我已经安装了名称中包含 samba 或 vfs 的所有内容)?任何帮助都将不胜感激。谢谢。
亲切的问候!
[1]https://www.samba.org/samba/docs/man/manpages/vfs_shadow_copy2.8.html
答案1
使用这篇文章解决了:[指南] Windows 先前版本和 Samba (Btrfs - Atomic COW - 卷影复制)
如何在 Fedora22 上重现工作配置
1)创建BTRFS子卷
mount /dev/sda5 /mnt #your BTRFS partition
btrfs subvolume create /mnt/share
brtfs subvolume create /mnt/share/.snapshots
umount /mnt
2)编辑 fstab(或根据要求手动安装)
UUID={uuid_of_btrfs_partition} /share brtfs subvol=share 0 0
UUID={uuid_of_btrfs_partition} /share/.snapshots btrfs subvol=share/.snapshots 0 0
3)创建 Samba 共享
[btrfs]
path = /share
vfs objects = shadow_copy2
shadow:format = @GMT_%Y.%m.%d-%H.%M.%S
shadow:sort = desc
shadow:snapdir = .snapshots
4)创建只读快照
brtfs subvolume snapshot -r /share /share/.snapshots/@GMT_`date +%Y.%m.%d-%H.%M.%S`
5)如何删除快照
btrfs subvolume delete /share/.snapshots/@GMT_2015.07.31-14.01.20