Possible to set a static device fingerprint with WinFsp?

Hi everyone!

What is the problem you are having with rclone?

When I use rclone mount on Windows, I would like to be able to set the fingerprint of the virtual device that is created.

I do not know if "device fingerprint" is the correct term, but it's the one used by my backup program.

I am trying to set up an automated backup job with the Windows program Bvckup 2. It allows a job to start as soon as a device is connected to the system. The most reliable way to detect a specific device is to use the device fingerprint.

However, the fingerprint seems to be randomized every time I run rclone mount. I cannot find an option in the docs that will allow me to set this ID statically.

Am I overlooking something? Any input would be much appreciated.

This is what it looks like in Bvckup 2:

Run the command 'rclone version' and share the full output of the command.

rclone v1.67.0
- os/version: Microsoft Windows 11 Pro 23H2 (64 bit)
- os/kernel: 10.0.22631.4460 (x86_64)
- os/type: windows
- os/arch: amd64
- go/version: go1.22.4
- go/linking: static
- go/tags: cmount

Which cloud storage system are you using?

rsync.net

The command you were trying to run

rclone mount archive: * --network-mode --vfs-cache-mode full --volname rsync.net

welcome to the forum,

really a question about winfsp and does it support that feature?

rclone can pass flags to winfsp

-o, --option stringArray  Option for libfuse/WinFsp (repeat if required)

can see that in the debug log

DEBUG : S3 bucket zork: Mounting with options: ["-o" "attr_timeout=1" "-o" "uid=-1" "-o" "gid=-1" "--FileSystemName=rclone" "-o" "volname=wasabi01 zork"]

what other device tracking options are there?

I think it would be good start you investigate what this fingerprint is... AFAIK there is no disk property like this so it is Bvckup 2 thing. Looks like it is some creative way to combine some unique identified (disk/partition UUID??) and disk label (???)

correct.

$disk=Gwmi Win32_LogicalDisk | Where DeviceID -eq "J:"
echo "$($disk.VolumeSerialNumber).$($disk.FileSystem)".ToUpper() 
90A09AC4.FUSE-RCLONE

That was very helpful, thank you both!

I went over to look at winfsp's arguments like I should have done before posting here. There I found --VolumeSerialNumber=... and --FileSystemName=....

I tried adding --fuse-flag --VolumeSerialNumber=12345678 and --fuse-flag --FileSystemName=foobar, and the file system name seems to stick. The serial number, however, is still changing... I'll keep digging.

Update

I messed up, the correct way to set VolumeSerialNumber is like this:

--option VolumeSerialNumber=BEEFCAFE

Setting the FileSystemName was unnecessary, as FUSE-RCLONE is static enough.

Thus, my final command line is as follows:

rclone mount archive: * --option "VolumeSerialNumber=BEEFCAFE" --network-mode --vfs-cache-mode full --volname rsync.net

Thanks again for your assistance!

2 Likes