15
nik123
287d

Make GNU/Linux installable on NTFS (using ntfs-3G)

Project Type
Open source idea
Summary

Make GNU/Linux installable on NTFS (using ntfs-3G)

Description
I'll explain how and why through series of questions you may (or may not) ask: 1) NTFS-3G is a user space driver, dumbass.... I know that the NTFS-3G is NOT a kernel driver. So we'll put it as a module in the initram image instead. 2) What about POSIX/Linux filesystem permissions, etc? NTFS can indeed have Linux-like permissions, just mount a drive with the permissions flag and you're set. You can set groups, octal permissions, directory rules, etc. And the best part, it's all in supported in the filesystem so no weird workaround. chgrp,chmod,chown... all of them work. 2.1) Is it persistent? (referring to above) Yes it is, I am using it on my file server with a bunch of daemons that require specific UNIX file permissions. 2.2) Is it recursive? Yes, dumbass. 3) Is it safe? As long as you don't change file permissions on Windows, it works just fine. 4) Why? Because imagine, how much more people would be motivated to try out a GNU/Linux system. And also this is the same exact reason why successful projects like WINE exist now. 5) How? We'll go through steps. 1. Make the kernel load a custom initram image with a working fuse and ntfs-3G drivers. 2. Mount the file system with "permissions" option set. We will need a bit of scripting to pull this off. I just want your opinion on this idea. After all NTFS seems like a nice cross-compatible filesystem. Works on macOS, Linux and Windows NT.
Tech Stack
c, shellcode, linux, config wizard
Current Team Size
1 (me)
URL
Comments
  • 8
    people would be more motivated to try linux because you can install it with ntfs?
  • 2
    @calmyourtities yes, alongside windows to avoid partitoning to a filesystem that they cant use on windows by default.
  • 3
    Works-ish with Mac OS. But yeah, I can see the point in having one of the if not the most popular drive format be usable as a boot drive for Linux. I approve of this, but am too lazy to help, sorry :(
  • 1
    @calmyourtities or even better as a subfolder. Just like slitaz did with FAT32.
  • 1
    @CptFox I just asked for opinions. if enough people agree, I'll start working on this.
  • 1
    NTFS is not appropriate file system. Ext4 and os X journal... Are much more efficient then NTFS.

    For people to try Linux, the best solution is to use Lili to create persistent Linux USB.
  • 1
    I didn't even bother to read the comments because the idea itself is so thought full and mind blowing that my brain stopped functioning
  • 0
    @rookiemaverick people installed Linux on FAT32 back in the 90s using a complicated permission system

    also NTFS has a journal and it is supported under NTFS-3G
  • 0
    @teganburns
    1) WSL is not goddamn Linux, it's just some gnu utilities
    2) most people dont have a second drive, nor will invest in one just to install Linux
    3) yeah, you're right. But look how much I've simplified the problem.
  • 0
    @teganburns fun fact: it works.... just needs a bit of scripting.

    so what are the complaints here?
  • 0
    @nik123 seems like an unstable hassle that could messup my entire system. i'd rather use another partition or drive.
  • 1
    @calmyourtities actually it is really stable....
    I just used a new install in case I mess up something.
  • 0
    @nik123 how can you verify its stability?
  • 0
  • 2
    I think it would work, you would just need a FAT32 (e.g efi) boot partition to read the initram from or put the initram into the kernel (there is a kernel config option for that). My main concern would be performance and stability:

    - performance is likely a small fraction of ext4 with high CPU load because each FS access means several context switches and moving data around in memory (user space vs. kernel space driver)

    - stability is questionable if run as dual-boot with windows on the same partition, I'd bet that the fs is corrupted after hibernating in Windows (the default when "turning off") and booting into Linux and back again. I'm not 100% sure this is a problem but something you'd want to test early on
  • 2
    @zvyn About hibernation: You can force remove hiberfile in NTFS-3G mount options and/or parse recover to simulate a fsck check.
    GRUB4DOS (BIOS) supports NTFS, also EFI partition is ALWAYS NEEDED ON A EFI SYSTEM.
    Performance is not bad. Bit lacking behind Linux natives, but not much.

    Only problem I encountered is that sudo and su commands don't work, I'm not sure why.... will have to do research on that. (seems like it can't read /etc/shadow) and also it can't shut down properly because I was using bindfs to have the OS in a subdirectory instead of directly on a drive. But pretty much everything else works as expected and is stable. No permission errors when installing complex packages, etc.
  • 1
    @nik123 good to know, thanks! Maybe su(do) requires exact permissions to be set (presumably 600 on /etc/shadow)? It's a wild guess tho
  • 1
    @zvyn Just figured out that remounting the root filesystem in usermode fixes SUID. Now everything works....

    Just make a simple systemd script that remounts the filesystem at boot time.

    Just to get rid of the hang at shutdown/reboot and everything will be fine..... I hope.
  • 0
    @hobbyte it works, for once.

    Just needs some "optimization" and I need to make it as user friendly as possible. And also it only works on ArchLinux for now....

    Should I document this?
  • 0
    Argh... for anyone still here. This should be a kernel-level thing and not a user-level. The CPU utilization is abysmal. I don't think this project would go far if not ported to the kernel.
Your Job Suck?
Get a Better Job
Add Comment