ntfs2btrfs - Man Page
convert ntfs filesystem to btrfs filesystem
Synopsis
ntfs2btrfs [options] device
Description
This is a tool which does in-place conversion of Microsoft's NTFS filesystem to the open-source filesystem Btrfs, much as btrfs-convert does for ext2.
Options
- -c <ALGO>, --compress=<ALGO>
Uses the specified algorithm to recompress files that are compressed on the NTFS volume; valid choices are zstd, lzo, zlib, or none. If you don't specify any value, zstd will be used, assuming it's been compiled in. Note that this will be ignored if you also select --no-datasum (see below).
- -h <ALGO>, --hash=<ALGO>
Uses the specified checksumming algorithm; valid choices are crc32c, xxhash, sha256, and blake2. The first of these will be used by default, and should be fine for most purposes.
- -r, ā--rollback
Tries to restore the original NTFS filesystem. See Rollback below.
- -d, ā--no-datasum
Skips calculating checksums for existing data. Don't choose this unless you're sure it's what you want.
Rollback
The original filesystem image is saved as image/ntfs.img as a reflink copy. You can restore this at any time by using the rollback option, provided that you've not moved the data by doing a balance. Bear in mind that this restores the volume to how it was when you did the conversion, meaning that any changes you've made since will be lost.
If you decide to keep the conversion, you can remove the image subvolume at any point to free up space.
Xattrs
Various bits of NTFS-specific data are stored as Btrfs xattrs, in a manner that the Windows btrfs driver understands (https://github.com/maharmstone/btrfs). Some should also be understood by tools such as Wine and Samba, but YMMV.
- The NTFS attribute value is stored as a hex string at user.DOSATTRIB.
- The reparse points on directories are stored at user.reparse. NTFS symlinks should be converted into POSIX symlinks. The data for other reparse points will be stored as the contents of the files.
- The NT security descriptor is stored as security.NTACL.
- Alternate data streams on files are stored in the user namespace, e.g. :Zone.Identifier becomes user.Zone.Identifier.
See Also
Author
Written by Mark Harmstone (mark@harmstone.com).