public inbox for pbs-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [RFC proxmox{-backup-restore-image,-backup} 0/5] fix #7544: provide fallback to ntfs-3g for file-restore VM
@ 2026-05-14 15:25 Christian Ebner
  2026-05-14 15:25 ` [PATCH proxmox-backup-restore-image 1/5] update ZFS to 2.4.2 Christian Ebner
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Christian Ebner @ 2026-05-14 15:25 UTC (permalink / raw)
  To: pbs-devel

Some Windows NTFS partitions fail to mount with the current in-kernel
(ntfs, ntfs3) filesystem implementations. The same filesystems can
however be mounted just fine using the user space ntfs-3g
implementation.

These patches draft an approach to provide ntfs-3g as last resort if
all in-kernel filesystems fail to mount.

This comes at the drawback of additional dependencies, especially
requiring the FUSE module to be build into the kernel and some
additional userspace packages.


proxmox-backup-restore-image:

Christian Ebner (4):
  update ZFS to 2.4.2
  update kernel to Ubuntu-7.0.0-17.17
  config: enable FUSE support to allow using ntfs-3g
  initramfs: add ntfs-3g as build dependency

 src/build_initramfs.sh                        |  2 ++
 src/config-base                               |  1 +
 .../0001-remove-reference-to-libudev.patch    | 20 ++++++++++++-------
 src/submodules/ubuntu-kernel                  |  2 +-
 src/submodules/zfsonlinux                     |  2 +-
 5 files changed, 18 insertions(+), 9 deletions(-)


proxmox-backup:

Christian Ebner (1):
  fix #7533: restore-daemon: last resort fallback to mount via ntfs-3g

 .../src/proxmox_restore_daemon/disk.rs                   | 9 +++++++++
 1 file changed, 9 insertions(+)


Summary over all repositories:
  6 files changed, 27 insertions(+), 9 deletions(-)

-- 
Generated by murpp 0.11.0




^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH proxmox-backup-restore-image 1/5] update ZFS to 2.4.2
  2026-05-14 15:25 [RFC proxmox{-backup-restore-image,-backup} 0/5] fix #7544: provide fallback to ntfs-3g for file-restore VM Christian Ebner
@ 2026-05-14 15:25 ` Christian Ebner
  2026-05-14 15:25 ` [PATCH proxmox-backup-restore-image 2/5] update kernel to Ubuntu-7.0.0-17.17 Christian Ebner
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Christian Ebner @ 2026-05-14 15:25 UTC (permalink / raw)
  To: pbs-devel

This upstream version is compatible with Linux kernels 7.0.

Bump submodule commit and adapt patch to drop libudev reference so it
applies again.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
---
 .../0001-remove-reference-to-libudev.patch    | 20 ++++++++++++-------
 src/submodules/zfsonlinux                     |  2 +-
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/patches/zfs/0001-remove-reference-to-libudev.patch b/src/patches/zfs/0001-remove-reference-to-libudev.patch
index 8fe9b31..bf0e3f5 100644
--- a/src/patches/zfs/0001-remove-reference-to-libudev.patch
+++ b/src/patches/zfs/0001-remove-reference-to-libudev.patch
@@ -8,18 +8,21 @@ since there's no command line flag I can see...
 Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
 [ SI adapt to aebd94cc8541e0ec3b1de57edbd57c4280213089 ]
 Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
+[ CE adapt to 6330a45b06d20125de679aae5f63ba14082671ef ]
+Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
 ---
- config/user-libudev.m4 | 17 -----------------
+ config/user-libudev.m4 | 18 ------------------
  config/user.m4         |  1 -
- 2 files changed, 18 deletions(-)
+ 2 files changed, 19 deletions(-)
  delete mode 100644 config/user-libudev.m4
 
 diff --git a/config/user-libudev.m4 b/config/user-libudev.m4
 deleted file mode 100644
-index 8c3c1d7e0..000000000
+index 784cf4651..000000000
 --- a/config/user-libudev.m4
 +++ /dev/null
-@@ -1,17 +0,0 @@
+@@ -1,18 +0,0 @@
+-dnl # SPDX-License-Identifier: CDDL-1.0
 -dnl #
 -dnl # Check for libudev - needed for vdev auto-online and auto-replace
 -dnl #
@@ -38,14 +41,17 @@ index 8c3c1d7e0..000000000
 -	])
 -])
 diff --git a/config/user.m4 b/config/user.m4
-index 6ec27a5b2..46244f19b 100644
+index 1ecd4ddde..ab7f39a5a 100644
 --- a/config/user.m4
 +++ b/config/user.m4
-@@ -14,7 +14,6 @@ AC_DEFUN([ZFS_AC_CONFIG_USER], [
+@@ -15,7 +15,6 @@ AC_DEFUN([ZFS_AC_CONFIG_USER], [
  	AM_COND_IF([BUILD_LINUX], [
  		ZFS_AC_CONFIG_USER_UDEV
  		ZFS_AC_CONFIG_USER_SYSTEMD
 -		ZFS_AC_CONFIG_USER_LIBUDEV
  		ZFS_AC_CONFIG_USER_LIBUUID
  		ZFS_AC_CONFIG_USER_LIBBLKID
- 	])
+ 		ZFS_AC_CONFIG_USER_STATX
+-- 
+2.47.3
+
diff --git a/src/submodules/zfsonlinux b/src/submodules/zfsonlinux
index 1af41fd..6330a45 160000
--- a/src/submodules/zfsonlinux
+++ b/src/submodules/zfsonlinux
@@ -1 +1 @@
-Subproject commit 1af41fd203639818aa28cc624f144ef604a166d8
+Subproject commit 6330a45b06d20125de679aae5f63ba14082671ef
-- 
2.47.3





^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH proxmox-backup-restore-image 2/5] update kernel to Ubuntu-7.0.0-17.17
  2026-05-14 15:25 [RFC proxmox{-backup-restore-image,-backup} 0/5] fix #7544: provide fallback to ntfs-3g for file-restore VM Christian Ebner
  2026-05-14 15:25 ` [PATCH proxmox-backup-restore-image 1/5] update ZFS to 2.4.2 Christian Ebner
@ 2026-05-14 15:25 ` Christian Ebner
  2026-05-14 15:25 ` [PATCH proxmox-backup-restore-image 3/5] config: enable FUSE support to allow using ntfs-3g Christian Ebner
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Christian Ebner @ 2026-05-14 15:25 UTC (permalink / raw)
  To: pbs-devel

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
---
 src/submodules/ubuntu-kernel | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/submodules/ubuntu-kernel b/src/submodules/ubuntu-kernel
index b423347..4081a41 160000
--- a/src/submodules/ubuntu-kernel
+++ b/src/submodules/ubuntu-kernel
@@ -1 +1 @@
-Subproject commit b423347fe0063a7ef60f6f313810d9f1a551f31b
+Subproject commit 4081a41e751a25370006d1a3bd7d07cc85a91440
-- 
2.47.3





^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH proxmox-backup-restore-image 3/5] config: enable FUSE support to allow using ntfs-3g
  2026-05-14 15:25 [RFC proxmox{-backup-restore-image,-backup} 0/5] fix #7544: provide fallback to ntfs-3g for file-restore VM Christian Ebner
  2026-05-14 15:25 ` [PATCH proxmox-backup-restore-image 1/5] update ZFS to 2.4.2 Christian Ebner
  2026-05-14 15:25 ` [PATCH proxmox-backup-restore-image 2/5] update kernel to Ubuntu-7.0.0-17.17 Christian Ebner
@ 2026-05-14 15:25 ` Christian Ebner
  2026-05-14 15:25 ` [PATCH proxmox-backup-restore-image 4/5] initramfs: add ntfs-3g as build dependency Christian Ebner
  2026-05-14 15:25 ` [PATCH proxmox-backup 5/5] fix #7533: restore-daemon: last resort fallback to mount via ntfs-3g Christian Ebner
  4 siblings, 0 replies; 6+ messages in thread
From: Christian Ebner @ 2026-05-14 15:25 UTC (permalink / raw)
  To: pbs-devel

ntfs-3g build on top of fuse3 for the NTFS filesystem driver, enable
the kernel module for FUSE support.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
---
 src/config-base | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/config-base b/src/config-base
index fcebf07..eb0355e 100644
--- a/src/config-base
+++ b/src/config-base
@@ -153,6 +153,7 @@ CONFIG_MSDOS_FS=y
 CONFIG_VFAT_FS=y
 CONFIG_EXFAT_FS=y
 CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
+CONFIG_FUSE_FS=y
 
 # memory hotplug
 CONFIG_MEMORY_HOTPLUG=y
-- 
2.47.3





^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH proxmox-backup-restore-image 4/5] initramfs: add ntfs-3g as build dependency
  2026-05-14 15:25 [RFC proxmox{-backup-restore-image,-backup} 0/5] fix #7544: provide fallback to ntfs-3g for file-restore VM Christian Ebner
                   ` (2 preceding siblings ...)
  2026-05-14 15:25 ` [PATCH proxmox-backup-restore-image 3/5] config: enable FUSE support to allow using ntfs-3g Christian Ebner
@ 2026-05-14 15:25 ` Christian Ebner
  2026-05-14 15:25 ` [PATCH proxmox-backup 5/5] fix #7533: restore-daemon: last resort fallback to mount via ntfs-3g Christian Ebner
  4 siblings, 0 replies; 6+ messages in thread
From: Christian Ebner @ 2026-05-14 15:25 UTC (permalink / raw)
  To: pbs-devel

Adds support for mounting NTFS filesystems via FUSE mount using
ntfs-3g. Avoid pulling in unneeded libdebconfclient0 dependency.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
---
 src/build_initramfs.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/build_initramfs.sh b/src/build_initramfs.sh
index 4e2445c..334cbb5 100755
--- a/src/build_initramfs.sh
+++ b/src/build_initramfs.sh
@@ -35,6 +35,7 @@ add_pkgs() {
         done
         # debconf and gcc are unnecessary, libboost-regex doesn't install on bullseye
         DEPS=$(echo "$DEPS" |\
+            sed -E 's/libdebconfclient([[:digit:]])?//g' |\
             sed -E 's/debconf(-2\.0)?//g' |\
             sed -E 's/libboost-regex([[:digit:]]\.[[:digit:]]+)?//g' |\
             sed -E 's/gcc-.{1,2}-base//g' |\
@@ -90,6 +91,7 @@ add_pkgs "
     libgcrypt20:amd64 \
     libtirpc3t64:amd64 \
     lvm2:amd64 \
+    ntfs-3g:amd64 \
     thin-provisioning-tools:amd64 \
 " 'base'
 
-- 
2.47.3





^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH proxmox-backup 5/5] fix #7533: restore-daemon: last resort fallback to mount via ntfs-3g
  2026-05-14 15:25 [RFC proxmox{-backup-restore-image,-backup} 0/5] fix #7544: provide fallback to ntfs-3g for file-restore VM Christian Ebner
                   ` (3 preceding siblings ...)
  2026-05-14 15:25 ` [PATCH proxmox-backup-restore-image 4/5] initramfs: add ntfs-3g as build dependency Christian Ebner
@ 2026-05-14 15:25 ` Christian Ebner
  4 siblings, 0 replies; 6+ messages in thread
From: Christian Ebner @ 2026-05-14 15:25 UTC (permalink / raw)
  To: pbs-devel

Some Windows NTFS partitions fail to mount with the current in-kernel
filesystem implementations. The same filesystems can however be
mounted using the user space ntfs-3g implementation.

Provide a last resort fallback if all other attempts fail to mount ai
disk or partition, trying to use the FUSE implementation of ntfs-3g.

Fixes: https://bugzilla.proxmox.com/show_bug.cgi?id=7544
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
---
Tested this by a modified version where the in-kernel ntfs and ntfs3
were excluded from the supported fs list.

 .../src/proxmox_restore_daemon/disk.rs                   | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/proxmox-restore-daemon/src/proxmox_restore_daemon/disk.rs b/proxmox-restore-daemon/src/proxmox_restore_daemon/disk.rs
index 7936dc764..e1777d1b1 100644
--- a/proxmox-restore-daemon/src/proxmox_restore_daemon/disk.rs
+++ b/proxmox-restore-daemon/src/proxmox_restore_daemon/disk.rs
@@ -344,6 +344,15 @@ impl Filesystems {
             }
         }
 
+        info!("All provided in-kernel filesystems failed: try FUSE mount using ntfs-3g");
+
+        let mut cmd = Command::new("/usr/bin/ntfs-3g");
+        cmd.args(["-o", "ro", source, target].iter());
+        match run_command(cmd, None) {
+            Ok(_) => return Ok(()),
+            Err(err) => warn!("ntfs-3g mount failed for '{source}': {err:#}"),
+        }
+
         bail!("all mounts failed or no supported file system")
     }
 
-- 
2.47.3





^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-05-14 15:25 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-14 15:25 [RFC proxmox{-backup-restore-image,-backup} 0/5] fix #7544: provide fallback to ntfs-3g for file-restore VM Christian Ebner
2026-05-14 15:25 ` [PATCH proxmox-backup-restore-image 1/5] update ZFS to 2.4.2 Christian Ebner
2026-05-14 15:25 ` [PATCH proxmox-backup-restore-image 2/5] update kernel to Ubuntu-7.0.0-17.17 Christian Ebner
2026-05-14 15:25 ` [PATCH proxmox-backup-restore-image 3/5] config: enable FUSE support to allow using ntfs-3g Christian Ebner
2026-05-14 15:25 ` [PATCH proxmox-backup-restore-image 4/5] initramfs: add ntfs-3g as build dependency Christian Ebner
2026-05-14 15:25 ` [PATCH proxmox-backup 5/5] fix #7533: restore-daemon: last resort fallback to mount via ntfs-3g Christian Ebner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal