Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

borg mount not available: no FUSE support, BORG_FUSE_IMPL=pyfuse3,llfuse #8388

Closed
marc965 opened this issue Sep 17, 2024 · 14 comments
Closed
Labels

Comments

@marc965
Copy link

marc965 commented Sep 17, 2024

Have you checked borgbackup docs, FAQ, and open GitHub issues?

No
i googled for this error - no hit

Is this a BUG / ISSUE report or a QUESTION?

Invalid

System information. For client/server mode post info for both machines.

Your borg version (borg -V).

borg 1.2.8

Operating system (distribution) and version.

Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: noble

Hardware / network configuration, and filesystems used.

ext4

How much data is handled by borg?

Repository: /mnt/backup_repo
Archive name: unimatrix-2024-09-17-131430
Archive fingerprint: 2f50ad18b56bb0b1455caf2cf9d48fd7560c236dbc8e6f4c43c714e1294c6485
Time (start): Tue, 2024-09-17 13:14:34
Time (end): Tue, 2024-09-17 13:33:28
Duration: 18 minutes 53.49 seconds
Number of files: 31097
Utilization of max. archive size: 0%

                   Original size      Compressed size    Deduplicated size

This archive: 187.59 GB 179.80 GB 6.06 GB
All archives: 462.18 GB 437.34 GB 300.60 GB

                   Unique chunks         Total chunks

Chunk index: 155754 336377

terminating with success status, rc 0

Tue Sep 17 01:33:34 PM UTC 2024 Pruning repository

Keeping archive (rule: daily #1): unimatrix-2024-09-17-131430 Tue, 2024-09-17 13:14:34 [2f50ad18b56bb0b1455caf2cf9d48fd7560c236dbc8e6f4c43c714e1294c6485]
Pruning archive (1/2): unimatrix-2024-09-17-102127 Tue, 2024-09-17 10:21:28 [92c8fb88bd211f208559f43c49b285279ef1de9a45efd61c0990bf56935a9765]
Pruning archive (2/2): unimatrix-2024-09-17-091409.checkpoint Tue, 2024-09-17 09:14:13 [4d258a431a25cf55572b8f41f6683ca92ac456f66a1cdc40b5c900b7ebe80e9a]
Keeping archive (rule: daily #2): unimatrix-2024-09-15-212735 Sun, 2024-09-15 21:27:36 [23905dfdcaf2b66787a7a161ccadf5523571f574d6d2436eae1c808928b2da7f]
Keeping archive (rule: daily #3): unimatrix-2024-09-10-185808 Tue, 2024-09-10 18:58:08 [8ca5de006111f72e3be87a1603024c786002b851cdbc1d4bb380eecede0916f9]
Keeping archive (rule: daily #4): unimatrix-2024-09-09-142107 Mon, 2024-09-09 14:21:07 [271935c8c0c1e2db5e6743dd9baae5b724d437cf55dec0f159cfb7d111c3a24e]
terminating with success status, rc 0

Tue Sep 17 01:37:03 PM UTC 2024 Compacting repository

Tue Sep 17 02:22:40 PM UTC 2024 Backup, Prune, and Compact finished successfully

Full borg commandline that lead to the problem (leave away excludes and passwords)

borg mount /mnt/backup_repo /mnt/fuse

Describe the problem you're observing.

error-msg: borg mount not available: no FUSE support, BORG_FUSE_IMPL=pyfuse3,llfuse

Can you reproduce the problem? If so, describe how. If not, describe troubleshooting steps you took before opening the issue.

yes
mount is not working

Include any warning/errors/backtraces from the system logs

@ThomasWaldmann
Copy link
Member

You likely need to install some fuse packages of Ubuntu, see our install docs.

@marc965
Copy link
Author

marc965 commented Sep 18, 2024

You likely need to install some fuse packages of Ubuntu, see our install docs.

Thank you for your hint.
But unfortunatley i still do that:

sudo apt-get install python3 python3-dev python3-pip python3-virtualenv
libacl1-dev libacl1
libssl-dev
liblz4-dev libzstd-dev libxxhash-dev
build-essential
pkg-config python3-pkgconfig
sudo apt-get install libfuse3-dev fuse3

and setting
export BORG_FUSE_IMPL=pyfuse3

is still giving error: borg mount not available: no FUSE support, BORG_FUSE_IMPL=pyfuse3.

any ideas?

@ThomasWaldmann
Copy link
Member

You usually don't need to set BORG_FUSE_IMPL, the default should work ok.

Did you also install the pyfuse3 python package?

@marc965
Copy link
Author

marc965 commented Sep 18, 2024

You usually don't need to set BORG_FUSE_IMPL, the default should work ok.

Did you also install the pyfuse3 python package?

I am not sure- i just think "sudo apt-get install libfuse3-dev fuse3" install pyfuse3...
or not?

@ThomasWaldmann
Copy link
Member

How to best install that depends a bit on how you installed borg.

If borg is from the ubuntu package, pyfuse3 should be usually pulled in automatically via a package dependency. In that case maybe you just need to configure fuse in general (man fuse or so).

If borg was installed via pip, the also use pip like pip install pyfuse3.

@marc965
Copy link
Author

marc965 commented Sep 18, 2024

How to best install that depends a bit on how you installed borg.

If borg is from the ubuntu package, pyfuse3 should be usually pulled in automatically via a package dependency. In that case maybe you just need to configure fuse in general (man fuse or so).

If borg was installed via pip, the also use pip like pip install pyfuse3.

i installed with "apt install borgbackup"
i read the manpages of fuse but i dont find anything what i have to do...
it themes to be a programmmers "kernel interface manual" only:
do i miss something?

marc@unimatrix:/$ man fuse
fuse(4) Kernel Interfaces Manual fuse(4)

NAME
fuse - Filesystem in Userspace (FUSE) device

SYNOPSIS
#include <linux/fuse.h>

DESCRIPTION
This device is the primary interface between the FUSE filesystem driver and a user-space process wishing to provide the filesystem (referred to in the rest of this manual page as the filesystem daemon). This
manual page is intended for those interested in understanding the kernel interface itself. Those implementing a FUSE filesystem may wish to make use of a user-space library such as libfuse that abstracts
away the low-level interface.

   At its core, FUSE is a simple client-server protocol, in which the Linux kernel is the client and the daemon is the server.  After obtaining a file descriptor for this device, the daemon may read(2)  requests
   from  that  file  descriptor and is expected to write(2) back its replies.  It is important to note that a file descriptor is associated with a unique FUSE filesystem.  In particular, opening a second copy of
   this device, will not allow access to resources created through the first file descriptor (and vice versa).

@marc965
Copy link
Author

marc965 commented Sep 18, 2024

With sudo pip3 install fuse3 i receive this:

marc@unimatrix:/$ sudo pip3 install fuse3
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.

If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.12/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

Dont want to install it in virtual environment.
i have a systemwide installation.

@marc965 marc965 closed this as completed Sep 18, 2024
@ThomasWaldmann
Copy link
Member

Did you solve it?

@marc965
Copy link
Author

marc965 commented Sep 18, 2024

Hi! i found the solution that works for me:
had to do "sudo apt install python3-pyfuse3"

thank you

@marc965
Copy link
Author

marc965 commented Sep 18, 2024

fuse is working
tried restore: working too

Thanx very much

@Wonderer0
Copy link

I am getting the same error message ("borg mount not available: no FUSE support, BORG_FUSE_IMPL=pyfuse3,llfuse") when trying to mount a backup in openSUSE Leap 15.6.

I had installed vorta 0.10.3-lp156.58.1 and borgbackup 1.4.0-lp156.5.5 from the repo https://download.opensuse.org/repositories/home:/ecsos:/Backup/15.6/. Experiments with Vorta were going well until I tried to mount a backup, which gave that error message. Trying to mount it directly using Borg gave the same error.

Doing a YAST search for pyfuse3 didn't find anything, but for llfuse showed that it is provided by python3-llfuse.

I have installed version 1.3.6-bp156.3.3 of the latter from the openSUSE Main Repository. Although its build date is Thu 07 Dec 2023 the last entry in its Change Log is Fri 10 May 2019: "Update to version 1.3.6 ...". Under Technical Data it has a link to https://github.com/python-llfuse/python-llfuse, where the latest version is 1.5.1, but later versions seem to be for later versions of Python. Do I need a later version of python3-llfuse?

Being able to mount a backup is a vital feature when trying to recover specific files without rolling back the whole backup.

@ThomasWaldmann
Copy link
Member

You likely need to install some OS-level fuse packages of SuSE, see our install docs.

llfuse is the python lib using fuse(2), pyfuse3 is the python lib using fuse3.

@Wonderer0
Copy link

A YAST search for fuse shows that the following are all installed:

fuse            | User space File System                   | 2.9.7-3.3.1
fuse3           | Reference implementation of the "File... | 3.10.5-150400.3.2.1 
gvfs-fuse       | VFS functionality for GLib               | 1.52.2-150600.1.6   
kio-fuse        | Access KIO over the regular filesystem   | 5.1.0-bp156.1.3     
libfuse2        | Library of FUSE, the User space File ... | 2.9.7-3.3.1         
libfuse3-3      | Library of FUSE, the User space File ... | 3.10.5-150400.3.2.1 
python3-fuse    | Python bindings for FUSE                 | 0.3.1-bp156.3.3     
python3-llfuse  | Python Bindings for the low-level FUS... | 1.3.6-bp156.3.3     

I assume fuse provides fuse(2), and so is the important one to work with llfuse -
Its Build Time = Mon 17 Sep 2018 08:57:02 BST
It provides the following:

config(fuse) = 2.9.7-3.3.1
fuse = 2.9.7-3.3.1
fuse(x86-64) = 2.9.7-3.3.1
/usr/bin/fusermount

It has a long list of dependencies, but YAST has confirmed that all OS-level package dependencies are OK.

What might be missing? I aren't very knowledgeable about either Fuse or Python.

Your documentation lists build dependencies (python3-devel libacl-devel openssl-devel ...), but I assumed they are only needed when building from source.

@Wonderer0
Copy link

YAST shows that although python3-llfuse has files in /usr/lib64/python3.6/site-packages/llfuse-1.3.6-py3.6.egg-info/ (not in python3-llfuse-*) it provides:

python3-llfuse = 1.3.6-bp156.3.3
python3-llfuse(x86-64) = 1.3.6-bp156.3.3

Should it also be providing llfuse, or is that the name of a Python package that is provided by the OS package?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants