mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2026-05-22 20:41:31 +00:00
Linux: refine in-kernel NTFS driver selection
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
This commit is contained in:
@@ -367,8 +367,20 @@ namespace VeraCrypt
|
||||
ArgFilesystem = VolumeCreationOptions::FilesystemType::Ext4;
|
||||
else if (str.IsSameAs (L"NTFS", false))
|
||||
ArgFilesystem = VolumeCreationOptions::FilesystemType::NTFS;
|
||||
else if (str.IsSameAs (L"kernel-ntfs", false)
|
||||
|| str.IsSameAs (L"ntfs-kernel", false))
|
||||
{
|
||||
if (ArgCommand == CommandId::CreateVolume)
|
||||
throw_err (LangString["UNKNOWN_OPTION"] + L": " + str);
|
||||
|
||||
ArgMountOptions.FilesystemType = L"kernel-ntfs";
|
||||
ArgFilesystem = VolumeCreationOptions::FilesystemType::NTFS;
|
||||
}
|
||||
else if (str.IsSameAs (L"ntfs3", false))
|
||||
{
|
||||
if (ArgCommand == CommandId::CreateVolume)
|
||||
throw_err (LangString["UNKNOWN_OPTION"] + L": " + str);
|
||||
|
||||
ArgMountOptions.FilesystemType = L"ntfs3";
|
||||
ArgFilesystem = VolumeCreationOptions::FilesystemType::NTFS;
|
||||
}
|
||||
@@ -466,6 +478,10 @@ namespace VeraCrypt
|
||||
ArgMountOptions.PartitionInSystemEncryptionScope = true;
|
||||
else if (token == L"timestamp" || token == L"ts")
|
||||
ArgMountOptions.PreserveTimestamps = false;
|
||||
#ifdef TC_LINUX
|
||||
else if (token == L"kernelntfs" || token == L"kernel-ntfs")
|
||||
ArgMountOptions.MountNtfsWithKernelDriver = true;
|
||||
#endif
|
||||
#ifdef TC_WINDOWS
|
||||
else if (token == L"removable" || token == L"rm")
|
||||
ArgMountOptions.Removable = true;
|
||||
|
||||
Reference in New Issue
Block a user