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

Btrfs is copy-on-write, so keeping an image of the original NTFS does *not* involve duplicating every file on it. The blocks of the NTFS image are shared with the files on the new btrfs.

Which, again, is wild. One file's contents can be *part of* another, much larger file's contents, without duplication (until one of them is written to).

@argv_minus_one Well for me it's kind of normal but I've been a ZFS user since at least 2007, so Copy-on-Write abilities are something I'm familiar with.
@argv_minus_one this would be great for people who've recently moved to linux and are on the edge regarding formatting their external ntfs drive 

@rexielscarlet

Linux can already mount NTFS. This is more for people who've decided to take the plunge.

@argv_minus_one yep, I should have worded it better 
@rexielscarlet @argv_minus_one I had dual boot and found that NTFS support seemed to really mess up when writing. I can recall what happened but it happened regularly enough they I stopped mounting that drive and copied the things I needed to the native Linux drive.
@CenturyAvocado AFAIK the problem is that Windows does not really shutdown anymore. So it also does not really unmount file systems on internal drives. Then Linux accesses an not cleanly unmounted file system, changes stuff, then windows is booted and is confused by the file system state. Might be different for external drives but I don't really trust Microsoft.
@rexielscarlet @argv_minus_one
@argv_minus_one Ive wanted to like #btrfs for so long but every time i use it something goes wrong and i just go back to #zfs I think i just have bad luck

@nqd

Apparently so. The only time I had btrfs fail was when I stupidly ignored a warning that `btrfs check --repair` would probably trash my file system, which it did. Otherwise it seems to work fine.

@argv_minus_one @nqd But why in the first place? I wouldn't associate "check" and "repair" with trashing. No, not even after such a warning.

@project1enigma

Neither would I, but the warning was not a joke, as I discovered the hard way.

@nqd

@argv_minus_one also think i remember seeing a project letting windows run entirely off of btrfs, meaning you could quite possibly convert a windows system to a btrfs filesystem in-place
@doskel @argv_minus_one it's linked in that repos readme - it's called quibble
@pearl @doskel @argv_minus_one i see you with "windows booting from btrfs" and i raise a linux install with ntfs on the root partition
@pearl @doskel @argv_minus_one im gonna do it. can't stop me
@puppygirlhornypost2 @argv_minus_one @doskel ive done it before. i raise you booting linux off a nfs share hosted on windows server
@pearl @argv_minus_one @doskel i raise you getting your computer privileges revoked for sacrilege

@argv_minus_one @doskel

Some older versions of Windows and ReactOS can be ran off of btrfs using the Winbtrfs driver, but I don't think anyone had newer versions of windows (namely Win10&11) running off of that, but I'd love to be proven wrong :3

@argv_minus_one Or "How to move your data to Linux"
@argv_minus_one I did a conversion from ntfs to ext3 back in 2010 using anyconvertfs
@argv_minus_one that is very much interesting, wow, but I would probably not trust it with valuable data
@argv_minus_one I wonder if I can use this to undo 13 year old me's mistakes when I decided to make my Rockboxed iPod an NTFS one.
@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 @argv_minus_one i was literally asking myself "but can I run my windows dual boot from that btrfs drive?" and the answer is apparently yes lmao that's crazy

@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?