So I got an interesting issue, and I couldn't find anyone else with the same problem after some searching.
Long story short, I am trying to recover from a previous snapshot on a share. The volume is using btrfs, and the snapshot date is there. But when I try to recover it using Windows Previous Versions, I get "Item Not Found". It seems like is trying to recover from the original path, well since it was deleted of course it can't find it. It doesn't seem to be using the snapshots path to recover from, even though I can browse the data. See below:
Eventually, I just used WinSCP to grab what I needed from the .snapshots folder. I replicated this issue on an external USB HDD that also has a backup of the same data with snapshots as well, and a 2nd OMV 7.6.0-1 server also with a btrfs volume and snapshots.
As of note, if the data is actually not deleted from the share and you try to "recover" or open a file from within Previous Versions, it works but is not actually grabbing the data off the snapshots path but rather the actual live share.
To replicate:
1. Create a snapshot of the share
2. Delete the original data
3. Use Previous Versions on Explorer to recover
4. Profit?
I am not sure if this is a Samba Shadow Copy path issue or a misconfiguration on my end, but this is pretty bog standard stuff.
Any input helps!
# This file is auto-generated by openmediavault (https://www.openmediavault.org)
# WARNING: Do not edit this file, your changes will get lost.
#======================= Global Settings =======================
[global]
workgroup = WORKGROUP
server string = %h server
dns proxy = no
log level = 0
log file = /var/log/samba/log.%m
max log size = 1000
logging = syslog
panic action = /usr/share/samba/panic-action %d
passdb backend = tdbsam
obey pam restrictions = no
unix password sync = no
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
socket options = TCP_NODELAY IPTOS_LOWDELAY
guest account = nobody
load printers = no
disable spoolss = yes
printing = bsd
printcap name = /dev/null
unix extensions = yes
create mask = 0777
directory mask = 0777
map to guest = Bad User
use sendfile = yes
aio read size = 1
aio write size = 1
time server = no
wins support = no
disable netbios = yes
multicast dns register = no
server min protocol = SMB3_00
# Special configuration for Apple's Time Machine
fruit:aapl = yes
fruit:copyfile = yes
fruit:nfs_aces = no
# Extra options
fruit:model = MacRack
access based share enum = yes
veto files = /.DS_Store/.AppleDouble/.AppleDesktop/Network Trash Folder/.AppleDB/.TemporaryItems/Temporary Items/.snapshots
delete veto files = yes
[nobody]
browseable = no
#======================= Share Definitions =======================
[Backups]
comment = External HDD
path = /srv/dev-disk-by-uuid-051c2056-fd32-434f-b257-df5695e4620f/Backups/
guest ok = no
guest only = no
read only = yes
browseable = no
inherit acls = no
inherit permissions = no
ea support = yes
store dos attributes = no
smb encrypt = required
shadow:mountpoint = /srv/dev-disk-by-uuid-051c2056-fd32-434f-b257-df5695e4620f/
shadow:snapdir = /srv/dev-disk-by-uuid-051c2056-fd32-434f-b257-df5695e4620f/.snapshots/
shadow:basedir = /srv/dev-disk-by-uuid-051c2056-fd32-434f-b257-df5695e4620f/Backups/
shadow:sort = desc
shadow:format = _%Y%m%dT%H%M%S
shadow:delimiter = _
shadow:snapprefix = ^Backups\(@hourly\)\{0,1\}\(@daily\)\{0,1\}\(@weekly\)\{0,1\}\(@monthly\)\{0,1\}\(@yearly\)\{0,1\}$
shadow:localtime = no
dfree command = /usr/sbin/omv-btrfs-dfree
dfree cache time = 30
vfs objects = catia fruit streams_xattr btrfs shadow_copy2
printable = no
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
hide special files = yes
follow symlinks = yes
wide links = no
hide dot files = yes
valid users = @"admins"
invalid users =
read list =
[TimeMachine]
comment = macOS Backups
path = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/TimeMachine/
guest ok = no
guest only = no
read only = no
browseable = no
inherit acls = yes
inherit permissions = yes
ea support = yes
store dos attributes = no
smb encrypt = required
fruit:encoding = private
fruit:locking = none
fruit:metadata = stream
fruit:resource = file
fruit:veto_appledouble = no
fruit:wipe_intentionally_left_blank_rfork = yes
fruit:delete_empty_adfiles = yes
fruit:time machine = yes
shadow:mountpoint = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/
shadow:snapdir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/.snapshots/
shadow:basedir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/TimeMachine/
shadow:sort = desc
shadow:format = _%Y%m%dT%H%M%S
shadow:delimiter = _
shadow:snapprefix = ^TimeMachine\(@hourly\)\{0,1\}\(@daily\)\{0,1\}\(@weekly\)\{0,1\}\(@monthly\)\{0,1\}\(@yearly\)\{0,1\}$
shadow:localtime = no
dfree command = /usr/sbin/omv-btrfs-dfree
dfree cache time = 30
vfs objects = catia fruit streams_xattr btrfs shadow_copy2
printable = no
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
hide special files = yes
follow symlinks = yes
wide links = no
hide dot files = yes
valid users =
invalid users =
read list =
write list =
fruit:time machine max size=500G
[Public]
comment = Drop-Box
path = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/Public/
guest ok = yes
guest only = no
read only = no
browseable = yes
inherit acls = yes
inherit permissions = yes
ea support = yes
store dos attributes = no
shadow:mountpoint = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/
shadow:snapdir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/.snapshots/
shadow:basedir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/Public/
shadow:sort = desc
shadow:format = _%Y%m%dT%H%M%S
shadow:delimiter = _
shadow:snapprefix = ^Public\(@hourly\)\{0,1\}\(@daily\)\{0,1\}\(@weekly\)\{0,1\}\(@monthly\)\{0,1\}\(@yearly\)\{0,1\}$
shadow:localtime = no
dfree command = /usr/sbin/omv-btrfs-dfree
dfree cache time = 30
vfs objects = catia fruit streams_xattr btrfs shadow_copy2
printable = no
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
hide special files = yes
follow symlinks = yes
wide links = no
hide dot files = yes
read list =
write list =
[Media]
comment = Guests are read-only
path = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/Media/
guest ok = yes
guest only = no
read only = no
browseable = yes
inherit acls = yes
inherit permissions = yes
ea support = yes
store dos attributes = no
shadow:mountpoint = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/
shadow:snapdir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/.snapshots/
shadow:basedir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/Media/
shadow:sort = desc
shadow:format = _%Y%m%dT%H%M%S
shadow:delimiter = _
shadow:snapprefix = ^Media\(@hourly\)\{0,1\}\(@daily\)\{0,1\}\(@weekly\)\{0,1\}\(@monthly\)\{0,1\}\(@yearly\)\{0,1\}$
shadow:localtime = no
dfree command = /usr/sbin/omv-btrfs-dfree
dfree cache time = 30
vfs objects = catia fruit streams_xattr btrfs shadow_copy2
printable = no
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
hide special files = yes
follow symlinks = yes
wide links = no
hide dot files = yes
read list =
write list =
hide unreadable = yes
[Private]
comment = Private Share
path = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/Private/
guest ok = no
guest only = no
read only = no
browseable = yes
inherit acls = yes
inherit permissions = yes
ea support = yes
store dos attributes = no
smb encrypt = required
shadow:mountpoint = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/
shadow:snapdir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/.snapshots/
shadow:basedir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/Private/
shadow:sort = desc
shadow:format = _%Y%m%dT%H%M%S
shadow:delimiter = _
shadow:snapprefix = ^Private\(@hourly\)\{0,1\}\(@daily\)\{0,1\}\(@weekly\)\{0,1\}\(@monthly\)\{0,1\}\(@yearly\)\{0,1\}$
shadow:localtime = no
dfree command = /usr/sbin/omv-btrfs-dfree
dfree cache time = 30
vfs objects = catia fruit streams_xattr btrfs shadow_copy2
printable = no
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
hide special files = yes
follow symlinks = yes
wide links = no
hide dot files = yes
valid users = @"admins"
invalid users =
read list =
write list = @"admins"
[FileHistory]
comment = Veeam Backups
path = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/FileHistory/
guest ok = no
guest only = no
read only = no
browseable = no
inherit acls = yes
inherit permissions = yes
ea support = yes
store dos attributes = no
smb encrypt = required
shadow:mountpoint = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/
shadow:snapdir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/.snapshots/
shadow:basedir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/FileHistory/
shadow:sort = desc
shadow:format = _%Y%m%dT%H%M%S
shadow:delimiter = _
shadow:snapprefix = ^FileHistory\(@hourly\)\{0,1\}\(@daily\)\{0,1\}\(@weekly\)\{0,1\}\(@monthly\)\{0,1\}\(@yearly\)\{0,1\}$
shadow:localtime = no
dfree command = /usr/sbin/omv-btrfs-dfree
dfree cache time = 30
vfs objects = catia fruit streams_xattr btrfs shadow_copy2
printable = no
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
hide special files = yes
follow symlinks = yes
wide links = no
hide dot files = yes
valid users =
invalid users =
read list =
write list =
#======================= Home Directories =======================
[homes]
comment = Home directories
browseable = no
inherit acls = yes
inherit permissions = yes
writable = yes
create mask = 0600
force create mode = 0600
directory mask = 0700
force directory mode = 0700
valid users = %S
hide special files = yes
follow symlinks = yes
wide links = no
shadow:mountpoint = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/
shadow:snapdir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/.snapshots/
shadow:basedir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/Users/
shadow:sort = desc
shadow:format = _%Y%m%dT%H%M%S
shadow:delimiter = _
shadow:snapprefix = ^homes\(@hourly\)\{0,1\}\(@daily\)\{0,1\}\(@weekly\)\{0,1\}\(@monthly\)\{0,1\}\(@yearly\)\{0,1\}$
shadow:localtime = no
dfree command = /usr/sbin/omv-btrfs-dfree
dfree cache time = 30
vfs objects = catia fruit streams_xattr btrfs shadow_copy2
Display More