This appears to be a better question to offer this answer to, in addition to Seth's great answer to the question: "What is the advantage of XTS over CBC mode (with diffuser)?".
Non-malleable file encryption using AES XTS 256?
You'll want to add authentication to the encryption. See paragraphs 2 and 4 below. Links to an article and source code for authenticated encryption are provided at the bottom of this answer.
In reference to Seth's answer:
Wikipedia's webpage on Disk encryption theory provides an up to date answer (compared to Seth's great answer, dated Dec 5 2012) about CBC (Cypher Block Chaining) and XTS (XEX-based tweaked-codebook mode with ciphertext stealing) along with other modes.
CMC and EME have been proposed to fix the problems with XTS. XTS mode is susceptible to data manipulation and tampering so blocks require checksums or other means to detect tampering and it is susceptible to traffic analysis, replay and randomization attacks.
CMC requires two passes and EME is patented so neither is being considered by NIST uses XTS-AES but have been considered by the Security in Storage Working Group (SIS-WG).
Currently Authentication Encryption Modes are being considered. Authenticated encryption with associated data (AEAD) is a variant of AE where the data to be encrypted needs both authentication and integrity as opposed to just integrity. AEAD binds associated data (AD) to the ciphertext and to the context where it's supposed to appear, so that attempts to "cut-and-paste" a valid ciphertext into a different context are detected and rejected.
Other References:
$$\begin{array}{l}
\text{Other Modes:} & \\
\text{CMC} & \text{CBC Mask CBC} \\
\text{EME} & \text{ECB Mix ECB} \\
\text{HCH} & \text{Hash Encrypt Hash} \\
\text{HCTR} & \text{Hash Counter Hash} \\
\text{HEH} & \text{Hash ECB Hash} \\
\text{PEP} & \text{Polynomial Hash Encrypt Polynomial Hash} \\
\text{TET} & \text{Hash ECB Hash} \\
\text{ } & \\
\text{Acronyms:} & \\
\text{CBC} & \text{Cypher Block Chaining} \\
\text{ECB} & \text{Electronic Code Book} \\
\text{XEX} & \text{Xor–Encrypt–Xor}
\end{array}$$
In the article: "Practical Cryptographic Data Integrity Protection with Full Disk Encryption - Extended Version" by Milan Broz, Mikulas Patocka, Vashek Matyas (Submitted on 1 Jul 2018) they explain on page 1:
"A major shortcoming of current FDE implementations is the absence of
data integrity protection. Confidentiality is guaranteed by symmetric encryption algorithms, but the nature of length-preserving encryption (a plaintext sector has the same size as the encrypted one) does not allow for any metadata that can store integrity protection information.
Cryptographic data integrity protection is useful not only for detecting random data corruption (where a CRC-like solution may suffice) but also for
providing a countermeasure to targeted data modification attacks. Currently
deployed FDE systems provide no means for proving that data were written by
the actual user. An attacker can place arbitrary data on the storage media to later harm the user."
"We introduce an algorithm-agnostic solution that provides both data integrity and confidentiality protection at the disk sector layer. Our open-source solution is intended for drives without any special hardware extensions and is based on per-sector metadata fields implemented in software. Our implementation has been included in the Linux kernel since the version 4.12. This is extended version of our article that appears in IFIP SEC 2018 conference proceedings.".
On page 3 and 4, section 2.2, "FDE Protection Types" they further detail:
- Pure FDE - Length-preserving encryption that provides confidentiality
only.
- Authenticated FDE - Encryption that provides both confidentiality and integrity protection, but limited by COTS devices (no hardware for
authentication).
- HW-trusted - The ideal solution with confidentiality and integrity protection. It stores some additional information to external trusted storage in such a way that the system can detect data replay.

"Authenticated encryption enforces that a user cannot read tampered data
but will see an authentication error. It not only stops any attempts to use
tampered data on higher layers, but also helps a user to realize that the device is no longer trustworthy. An overview of the features among FDE types is summarized in Table 3.".
On page 5, section 3.2, "Authenticated Encryption" they continue:
"We have two options for integrity protection combined with device encryption: either to use Authenticated Encryption with Additional Data (AEAD) or to combine length-preserving encryption with an additional cryptographic integrity operation. The major difference is that for the combined mode, we can ignore integrity tags and decrypt the data without such tags. In the AEAD mode, the authentication is an integral part of decryption. Additionally, for the combined mode, we need to provide two separate keys (encryption and authentication), whereas the AEAD mode generally derives the authentication key internally. Both mentioned integrity methods calculate an authentication tag from the final ciphertext (encrypt-then-MAC).

The encryption operation output consists of the encrypted data and the authentication tag. Authentication mode with additional data (AEAD) calculates the authentication tag not only from the input data but also from additional metadata, called additional authentication data (AAD). Table 4 summarizes examples of the encryption modes mentioned in this text.".
References from page 20 of their article:
[25]
CAESAR: Competition for Authenticated Encryption: Security, Applicability, and Robustness, 2016. https://competitions.cr.yp.to/caesar.html
[26]
Hongjun Wu and Bart Preneel. AEGIS, A Fast Authenticated Encryption Algorithm (v1.1). Technical report, 2016. https://competitions.cr.yp.to/round3/aegisv11.pdf
[27]
Hongjun Wu and Tao Huang. The Authenticated Cipher MORUS (v2). Technical report, 2016. https://competitions.cr.yp.to/round3/morusv2.pdf
A search for AEGIS256 (AES with authentication) turns up many results, as do searches for the other AEAD algorithms. Unfortunately there is currently no COTS hardware available, whether there is a website somewhere that sells an SDD (or HD) that implements AEAD entirely on the drive is something I'll need to do further research to determine.
It shouldn't be too difficult to use a AES encrypting drive with sedutil and add authentication support to the PBA. For further examples of using sedutil see V$_x$Labs article: "Use the hardware-based full disk encryption of your TCG Opal SSD with msed".