* add ntfs-3g
This commit is contained in:
parent
58408e2656
commit
6eb442d305
52
ntfs-3g/PKGBUILD
Normal file
52
ntfs-3g/PKGBUILD
Normal file
@ -0,0 +1,52 @@
|
||||
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
|
||||
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
|
||||
# Contributor: Tom Gundersen <teg@jklm.no>
|
||||
# Contributor: Ronald van Haren <ronald.archlinux.org>
|
||||
# Contributor: Thomas Bächler <thomas.archlinux.org>
|
||||
|
||||
pkgname=ntfs-3g
|
||||
_pkgname=ntfs-3g_ntfsprogs
|
||||
pkgver=2017.3.23
|
||||
pkgrel=3
|
||||
pkgdesc='NTFS filesystem driver and utilities'
|
||||
url='https://www.tuxera.com/community/open-source-ntfs-3g/'
|
||||
arch=(x86_64 powerpc64le)
|
||||
license=('GPL2')
|
||||
depends=('util-linux' 'fuse2')
|
||||
source=("https://tuxera.com/opensource/${_pkgname}-${pkgver}.tgz"
|
||||
'mftmirr.patch')
|
||||
sha256sums=('3e5a021d7b761261836dcb305370af299793eedbded731df3d6943802e1262d5'
|
||||
'4166ff3021921d7a7ffac8f5de64b5735b1d5e365a024744bebc7260cf1ce726')
|
||||
|
||||
conflicts=('ntfsprogs')
|
||||
provides=('ntfsprogs')
|
||||
replaces=('ntfsprogs')
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}/${_pkgname}-${pkgver}"
|
||||
sed 's|$(DESTDIR)/sbin|$(DESTDIR)/usr/bin|' -i {ntfsprogs,src}/Makefile.in
|
||||
patch -p1 -i ../mftmirr.patch
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "${srcdir}/${_pkgname}-${pkgver}"
|
||||
./configure \
|
||||
--prefix=/usr \
|
||||
--sbin=/usr/bin \
|
||||
--mandir=/usr/share/man \
|
||||
--disable-ldconfig \
|
||||
--disable-static \
|
||||
--with-fuse=external \
|
||||
--enable-xattr-mappings \
|
||||
--enable-posix-acls \
|
||||
--enable-extras \
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package_ntfs-3g() {
|
||||
cd "${srcdir}/${_pkgname}-${pkgver}"
|
||||
make DESTDIR="${pkgdir}" rootbindir=/usr/bin rootsbindir=/usr/bin rootlibdir=/usr/lib install
|
||||
rm "${pkgdir}"/usr/share/man/man8/ntfsfallocate.8 # uninstalled binary
|
||||
ln -s /usr/bin/ntfs-3g "${pkgdir}/usr/bin/mount.ntfs"
|
||||
}
|
47
ntfs-3g/mftmirr.patch
Normal file
47
ntfs-3g/mftmirr.patch
Normal file
@ -0,0 +1,47 @@
|
||||
From 85e208176ffd16ce9a51a9f534b194f0ebbde6e3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jean-Pierre=20Andr=C3=A9?= <jpandre@users.sourceforge.net>
|
||||
Date: Fri, 22 Dec 2017 11:29:00 +0100
|
||||
Subject: [PATCH] Stopped checking matches of MFTMirr against MFT at record 16
|
||||
|
||||
Since its 2017 edition, Windows 10 has stopped mirroring $MFT to the
|
||||
full size of $MFTMirr leading to mounts of partitions with big clusters
|
||||
to be rejected because of mismatches. With this patch, only 16 records
|
||||
are checked, though mirroring is still done for all records in $MFTMirr.
|
||||
---
|
||||
libntfs-3g/volume.c | 3 ++-
|
||||
ntfsprogs/ntfsfix.c | 5 +++++
|
||||
2 files changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libntfs-3g/volume.c b/libntfs-3g/volume.c
|
||||
index 68b8ee1d..d36c7d55 100644
|
||||
--- a/libntfs-3g/volume.c
|
||||
+++ b/libntfs-3g/volume.c
|
||||
@@ -959,7 +959,8 @@ ntfs_volume *ntfs_device_mount(struct ntfs_device *dev, ntfs_mount_flags flags)
|
||||
vol->mftmirr_size = l;
|
||||
}
|
||||
ntfs_log_debug("Comparing $MFTMirr to $MFT...\n");
|
||||
- for (i = 0; i < vol->mftmirr_size; ++i) {
|
||||
+ /* Windows 10 does not update the full $MFTMirr any more */
|
||||
+ for (i = 0; (i < vol->mftmirr_size) && (i < FILE_first_user); ++i) {
|
||||
MFT_RECORD *mrec, *mrec2;
|
||||
const char *ESTR[12] = { "$MFT", "$MFTMirr", "$LogFile",
|
||||
"$Volume", "$AttrDef", "root directory", "$Bitmap",
|
||||
diff --git a/ntfsprogs/ntfsfix.c b/ntfsprogs/ntfsfix.c
|
||||
index 2a624023..6801e70e 100644
|
||||
--- a/ntfsprogs/ntfsfix.c
|
||||
+++ b/ntfsprogs/ntfsfix.c
|
||||
@@ -506,6 +506,11 @@ static int fix_mftmirr(ntfs_volume *vol)
|
||||
|
||||
ntfs_log_info("Comparing $MFTMirr to $MFT... ");
|
||||
done = FALSE;
|
||||
+ /*
|
||||
+ * Since 2017, Windows 10 does not mirror to full $MFTMirr when
|
||||
+ * using big clusters, and some records may be found different.
|
||||
+ * Nevertheless chkdsk.exe mirrors it fully, so we do similarly.
|
||||
+ */
|
||||
for (i = 0; i < vol->mftmirr_size; ++i) {
|
||||
MFT_RECORD *mrec, *mrec2;
|
||||
const char *ESTR[12] = { "$MFT", "$MFTMirr", "$LogFile",
|
||||
--
|
||||
2.19.0
|
||||
|
Loading…
x
Reference in New Issue
Block a user