mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2026-06-19 02:56:07 -05:00
6bef9e009c
Keep the NTFS kernel-driver option as a generic in-kernel NTFS path rather than an ntfs3-specific path. Add --filesystem=kernel-ntfs and -m kernelntfs routes that select a registered or loadable kernel NTFS driver and mount with -i so mount.ntfs/ntfs-3g helpers are not invoked. Preserve --filesystem=ntfs3 as a literal pin to the ntfs3 driver. Treat both ntfs3 and kernel-ntfs as mount-only selectors; volume creation continues to use filesystem type NTFS. The preference and -m kernelntfs path only select an in-kernel NTFS driver when no explicit filesystem type was supplied and blkid detects NTFS. Treat ntfs as the preferred in-kernel driver on Linux 7.1 and later, where the upstream read/write driver is expected. On earlier kernels, select ntfs only when module metadata identifies the standalone read/write driver and /sys/module confirms it loaded, avoiding ntfs3 read-only ntfs compatibility registrations. Fall back to ntfs3 otherwise, and report a generic kernel-driver error if neither supported driver is available or loadable. Rename the internal preference/config field to MountNtfsWithKernelDriver, migrate the old MountNtfsWithNtfs3 preference key, and update UI strings, CLI help, documentation, release notes, and translation placeholders accordingly. Reference: https://github.com/veracrypt/VeraCrypt/issues/1735
88 lines
2.3 KiB
C++
88 lines
2.3 KiB
C++
/*
|
|
Derived from source code of TrueCrypt 7.1a, which is
|
|
Copyright (c) 2008-2012 TrueCrypt Developers Association and which is governed
|
|
by the TrueCrypt License 3.0.
|
|
|
|
Modifications and additions to the original source code (contained in this file)
|
|
and all other portions of this file are Copyright (c) 2013-2025 AM Crypto
|
|
and are governed by the Apache License 2.0 the full text of which is
|
|
contained in the file License.txt included in VeraCrypt binary and source
|
|
code distribution packages.
|
|
*/
|
|
|
|
#ifndef TC_HEADER_Core_MountOptions
|
|
#define TC_HEADER_Core_MountOptions
|
|
|
|
#include "Platform/Serializable.h"
|
|
#include "Volume/Keyfile.h"
|
|
#include "Volume/Volume.h"
|
|
#include "Volume/VolumeSlot.h"
|
|
#include "Volume/VolumePassword.h"
|
|
|
|
namespace VeraCrypt
|
|
{
|
|
struct MountOptions : public Serializable
|
|
{
|
|
MountOptions ()
|
|
:
|
|
CachePassword (false),
|
|
#ifdef TC_LINUX
|
|
MountNtfsWithKernelDriver (false),
|
|
#endif
|
|
NoFilesystem (false),
|
|
NoHardwareCrypto (false),
|
|
NoKernelCrypto (false),
|
|
Pim (-1),
|
|
PartitionInSystemEncryptionScope (false),
|
|
PreserveTimestamps (true),
|
|
Protection (VolumeProtection::None),
|
|
ProtectionPim (-1),
|
|
Removable (false),
|
|
SharedAccessAllowed (false),
|
|
SlotNumber (0),
|
|
UseBackupHeaders (false)
|
|
{
|
|
}
|
|
|
|
MountOptions (const MountOptions &other) { CopyFrom (other); }
|
|
virtual ~MountOptions () { }
|
|
|
|
MountOptions &operator= (const MountOptions &other) { CopyFrom (other); return *this; }
|
|
|
|
TC_SERIALIZABLE (MountOptions);
|
|
|
|
bool CachePassword;
|
|
wstring FilesystemOptions;
|
|
wstring FilesystemType;
|
|
#ifdef TC_LINUX
|
|
bool MountNtfsWithKernelDriver;
|
|
#endif
|
|
shared_ptr <KeyfileList> Keyfiles;
|
|
shared_ptr <DirectoryPath> MountPoint;
|
|
bool NoFilesystem;
|
|
bool NoHardwareCrypto;
|
|
bool NoKernelCrypto;
|
|
shared_ptr <VolumePassword> Password;
|
|
int Pim;
|
|
shared_ptr <Pkcs5Kdf> Kdf;
|
|
bool PartitionInSystemEncryptionScope;
|
|
shared_ptr <VolumePath> Path;
|
|
bool PreserveTimestamps;
|
|
VolumeProtection::Enum Protection;
|
|
shared_ptr <VolumePassword> ProtectionPassword;
|
|
int ProtectionPim;
|
|
shared_ptr <Pkcs5Kdf> ProtectionKdf;
|
|
shared_ptr <KeyfileList> ProtectionKeyfiles;
|
|
bool Removable;
|
|
bool SharedAccessAllowed;
|
|
VolumeSlotNumber SlotNumber;
|
|
bool UseBackupHeaders;
|
|
bool EMVSupportEnabled;
|
|
|
|
protected:
|
|
void CopyFrom (const MountOptions &other);
|
|
};
|
|
}
|
|
|
|
#endif // TC_HEADER_Core_MountOptions
|