So, somebody wrote a program that converts, in-place, an #NTFS volume into #btrfs.

It even keeps an image of the original NTFS volume as a file in the resulting btrfs volume. This can be used to undo the conversion or deleted to free up space and make the conversion permanent.

That is absolutely wild.

https://github.com/maharmstone/ntfs2btrfs

#Linux

GitHub - maharmstone/ntfs2btrfs

Contribute to maharmstone/ntfs2btrfs development by creating an account on GitHub.

GitHub
@argv_minus_one The same author made a bootloader which can run Windows from btrfs: https://github.com/maharmstone/quibble - Absolutely wild
GitHub - maharmstone/quibble: Quibble - the custom Windows bootloader

Quibble - the custom Windows bootloader. Contribute to maharmstone/quibble development by creating an account on GitHub.

GitHub

@TobiX

How did they make alternate data streams work? Btrfs doesn't support that.

@argv_minus_one I suspect xattr... Yeah, https://github.com/maharmstone/btrfs#features says: "Alternate Data Streams (e.g. :Zone.Identifier is stored as the xattr user.Zone.Identifier)"
GitHub - maharmstone/btrfs: WinBtrfs - an open-source btrfs driver for Windows

WinBtrfs - an open-source btrfs driver for Windows - maharmstone/btrfs

GitHub

@TobiX

I'm surprised that's enough. Btrfs xattrs have a maximum size of only a few kB. NTFS alternate data streams can be of any size.

NTFS alternate data streams were meant to be equivalent to HFS+ forks, which were designed to hold large amounts of data. Some Mac video games stored their graphic and sound assets in forks, for example.

But if a few kB is enough to run Windows, then I guess Microsoft never used them that way. 🤷‍♂️ I wonder if any Windows apps do?