Ntfs2btrfs is a tool which does in-place conversion of Microsoft’s NTFS filesystem to the open-source filesystem Btrfs, much as
↫ Mark Harmstonebtrfs-convert
does for ext2. The original image is saved as a reflink copy atimage/ntfs.img
, and if you want to keep the conversion you can delete this to free up space.
An amazing piece of software that works on both Linux and Windows, and even, as described above, comes with the option of undoing the conversion if you so desire and haven’t removed the original image yet. Its developer, Mark Harmstone, of course stresses that while he thinks the tool is quite stable, he obviously makes no guarantees or claims about its stability. In other words, please don’t use this on sensitive data or in a production environment.
What makes this tool even more amazing is that you can combine it with two of Harmstone’s other tools to really pull some rabbits out of your hat. First, there’s his Btrfs driver for Windows, which, as the name implies, allows Windows to work with Btrfs-formatted drives. Second, and here’s where things get really spicy, there’s Quibble, his custom bootloader consisting of open source reimplementations of Windows’ own bootloader. Using these three tools together you can, if you’re lucky, boot and run Windows off a Btrfs drive.
That’s quite cool, and while perhaps not particularly useful due to its experimental nature, it’s still an awesome weekend project.
Cool beans. I find Microsoft’s bootloader inferior. to those on linux, at least in terms of features.
If the author shows up by chance: The FAQ doesn’t mention secure boot, but it’s one of the first questions that came to mind.
I assume you have to disable secure boot in windows? Do you handle secure boot at all?
I wrote a couple boot-loaders in the day (before UEFI). It’s not hard at all, At least for DOS devs calling BIOS interrupts is second nature 🙂
The first time I tried Linux it was in a DOS (Windows 95?) computer. Slackware with UMSDOS filesystem. No need to deal with repartitioning the disk that I couldn’t do because I wasn’t the only one using that computer. Linux was just installed in a directory in a FAT partition.
Without that I wouldn’t have dared to try. Nowadays it’s easier to test things with virtual machines.
LOL, this is the type of useless waste that happens when you let software engineers run wild without direction. His time, effort and energy would have been better spent on, you know, maybe modernizing/fixing the UNIX/Linux filesystem permissions (yes I know ACL’s exists, but no one uses them, and that’s exactly what I mean).
tuaris,
Better for you doesn’t necessarily mean better for the dev. Do you agree that what developers do on their own time is their own prerogative? I’m sure there’s lots of stuff I like to do that doesn’t mean much to other people 🙂
And I would not call this completely useless.
The “Windows New File Systems” (ReFS) never actually materialized. It would be the answer to modern reliability requirement like ZFS and BTRFS. And they only support it on the server today (as far as I know).
That makes BTRFS an excellent choice for Windows desktops, if it becomes easy and reliable enough.
And as you mentioned, secure boot is also important.
sukru,
BTRFS is a nice modern FS and for most users running single disk file systems I think it’s fine.
I’d really like to use it myself and I absolutely love the way it dynamically handles re-balancing! So awesome! However every time I revisit it in order to take advantage of the improvements over LVM+extfs I come across the same major problems over and over again. First of all raid 5/6 are still not officially stable yet, but even avoiding those BTRFS raid only offers data redundancy, but not operational redundancy.
Every other raid solution increases fault tolerance as you add redundant disks, such as RAID 6 able to handle double disk faults before risking failure. However many users are surprised to learn that it’s the opposite with BTRFS’s implementation: every disk you add to the raid you actually decreases the system’s fault tolerance. If you have four or five disks in your raid, you significantly increase the chances of a boot failure since a failure of any one of them will prevent booting 🙁
Unfortunately the devs don’t seem to care about bootup exceptions because from their perspective it’s a “feature” that lets them manually control recovery. But for production and other situations where downtime is undesirable this absolutely must be automatic! Until BTRFS fixes this, it’s unfit for purpose next to other raid solutions.
It’s technically possible to run BTRFS on top of another raid implementation like mdraid, but then you loose out of some of BTRFS’s benefits like rebalancing across different sized disks and FS integrity protection. BTRFS has strong selling points for me, but it’s not worth switching to BTRFS until they fix these raid issues….I don’t know if they will though. I’d contemplate writing my own if I could justify the effort, haha.
ACLs are rarely used because for 99.9% of use cases the existing permissions are “good enough”…
For the core OS binaries you want them readable by all users and only writable by root.
Sensitive files like shadow you only want readable by root.
User files you only want readable by the user who owns them.
The use cases where you benefit from ACLs rather than suffering from the extra complexity are very niche.
Why do you think it is wrong for someone to follow its curiosity? Economy is not an end. Happiness is my goal and curiosity is my guide.
unfortunately, I would take caution with these, as NTFS2BTRFS hasn’t been updated since March 2023, Quibble hasn’t since May 2023, and WinBTRFS since May 2024. is Mark still working on any of this?
Pretty sure ReactOS can boot off BTRFS. I believe it’s the interim filesystem between the limited FAT32 and the end goal of booting from NTFS. BTRFs provides a lot of NTFS like features without the hassle of writing drivers (as is mentioned here, they already exist) or reverse engineering proprietary ones.
Theoretically ReactOS aims to be kernel level compatible, so you should be able to load and use existing drivers at least until they can be replaced with open source ones.