Date: Thursday, September 27, 2018 @ 09:15:24 Author: bisson Revision: 335464
fix FS#60182 Added: ntfs-3g/trunk/mftmirr.patch Modified: ntfs-3g/trunk/PKGBUILD ---------------+ PKGBUILD | 9 ++++++--- mftmirr.patch | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2018-09-27 09:03:54 UTC (rev 335463) +++ PKGBUILD 2018-09-27 09:15:24 UTC (rev 335464) @@ -6,14 +6,16 @@ pkgname=ntfs-3g _pkgname=ntfs-3g_ntfsprogs pkgver=2017.3.23 -pkgrel=2 +pkgrel=3 pkgdesc='NTFS filesystem driver and utilities' url='https://www.tuxera.com/community/open-source-ntfs-3g/' arch=('x86_64') license=('GPL2') depends=('util-linux' 'fuse2') -source=("https://tuxera.com/opensource/${_pkgname}-${pkgver}.tgz") -sha256sums=('3e5a021d7b761261836dcb305370af299793eedbded731df3d6943802e1262d5') +source=("https://tuxera.com/opensource/${_pkgname}-${pkgver}.tgz" + 'mftmirr.patch') +sha256sums=('3e5a021d7b761261836dcb305370af299793eedbded731df3d6943802e1262d5' + '4166ff3021921d7a7ffac8f5de64b5735b1d5e365a024744bebc7260cf1ce726') conflicts=('ntfsprogs') provides=('ntfsprogs') @@ -22,6 +24,7 @@ prepare() { cd "${srcdir}/${_pkgname}-${pkgver}" sed 's|$(DESTDIR)/sbin|$(DESTDIR)/usr/bin|' -i {ntfsprogs,src}/Makefile.in + patch -p1 -i ../mftmirr.patch } build() { Added: mftmirr.patch =================================================================== --- mftmirr.patch (rev 0) +++ mftmirr.patch 2018-09-27 09:15:24 UTC (rev 335464) @@ -0,0 +1,47 @@ +From 85e208176ffd16ce9a51a9f534b194f0ebbde6e3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jean-Pierre=20Andr=C3=A9?= <jpan...@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 +