2

Suppose that I want to write Windows driver for other filesystems (maybe my own?). Is it possible to install Windows on that? Eventually problems could come from just Windows installer or it could be much deeper problem from Windows itself?

phuclv
  • 26,555
  • 15
  • 113
  • 235
Mateusz Drost
  • 141
  • 1
  • 4
  • No; it's not... – Ramhound Nov 08 '14 at 12:46
  • Why? Without Microsoft support it will be never possible to install Windows for example on ext4? – Mateusz Drost Nov 08 '14 at 12:58
  • Because the Windows installer does not have support for ext4, has no concept of it, and while you can configure the installer, you won't be able to modify the installer so the system disk itself will be ext4. Feel free to write a ext4 driver and use it as a data drive it just can't be a system disk. – Ramhound Nov 08 '14 at 13:22
  • Drivers do not control what file system an Operating System can be installed on. – NullBit Nov 08 '14 at 13:09
  • Just to be clear are you asking if it is possible to modify the stock installer to install to your filesystem, or you asking if you could get Windows to boot from your FS? If the later, then you could possibly use some tool you create to extract the Windows source from the WIM file (like imagex). – Zoredache Nov 08 '14 at 19:07
  • 2
    Boot. For me 'install' even mean "copy existing Windows from ntfs to your filesystem and modify some files". – Mateusz Drost Nov 08 '14 at 23:29
  • It's likely impossible at this specific time, and if by someone managed it, whole portions of the OS would likely be broken since NTFS has been the default filesystem since XP, with tools like `chkdsk` only supporting NTFS and FAT variants. Considering Microsoft's 180 on Linux with Nadella at the helm, it's possible Windows will eventually support Linux filesystem variants, but it likely wouldn't occur for years as significant parts of the OS would need to be re-engineered. ext variants can be used for non-OS partitions via [paragon](https://www.paragon-software.com/home/linuxfs-windows/). – JW0914 Feb 09 '21 at 14:33

3 Answers3

11

Given that ReactOS supports ext2 I don't see why Windows couldn't be run on some other filesystems if drivers were added, but Windows does require the filesystem to have certain features so not all filesystems will be fair game. Unlike Linux systems Windows doesn't rely on the filesystem for permissions so it's more likely to work on unsupported filesystems than some operating systems are.

There already are third party drivers for ext2 for Windows so you might be able to try it without having to write your own driver. The Windows installation process would not be aware of these drivers though, and so it would refuse to allow you to install.

Your best hope would be to install Windows normally, install the third party drivers (or your own driver), then create a .zip archive of the installation from a live-cd, boot into a Gparted live-cd, apply a new filesystem to the OS partition (eg: ext2), and then use a live-cd to restore the .zip contents to the partition.

Jesse P Brandt
  • 321
  • 1
  • 4
  • The main reason why you can't install Windows on unsupported filesystems is because the Windows boot loader doesn't understand those filesystems and it isn't possible to boot the Windows kernel using, for example, GRUB ( other than by chain loading the Windows boot loader to actually do it ). – psusi Feb 09 '21 at 19:15
2

Yes. Try Quibble

Quibble is the custom Windows bootloader - an open-source reimplementation of the files bootmgfw.efi and winload.efi, able to boot every version of Windows from XP to Windows 10 2009. Unlike the official bootloader, it is extensible, allowing you to boot from other filesystems than just NTFS.

You still have to install to NTFS first before converting to a different file system because it's just the bootloader that was changed, the Windows installer isn't modified at all. But if you have an alternative installer then you can install directly without crossing through NTFS at all

This is only a proof of concept at this stage - don't use this for anything serious.

Screenshot of Windows 10 1909 running on Btrfs:

Windows on Btrfs screenshot

phuclv
  • 26,555
  • 15
  • 113
  • 235
1

Preamble: Sorry to revive a dead question, but it happens to be one of the first few results on google so I feel adding some valuable information to it will be beneficial.

Answer: Technically speaking, it's entirely possible and wouldn't be that hard to implement, but do keep in mind it will not work nearly as it will on Linux. The reason for this is that the extension-4 file-system is built into the kernel of Linux where very special, low-level features are implemented. This includes performance enhancing features such as read-ahead, how Linux handles fragmentation, etc. If I'm not mistaken, Windows NTFS file-system is isolated to it's own driver, meaning that things like fragmentation is handled in that driver. If this is true then the Linux style of fragmentation (it's actually not the "Linux Style". It's the "ext4 Style," but it's implemented in the Linux kernel itself) and the extension-4 file-system could easily be implemented in Windows. You may even be able to port the Linux driver for ext-4 directly to Windows if you changed some basic system calls and kernel-interaction logic (while the ext-4 driver implemented in the kernel, it is a separate module all together. Look up how the Linux kernel is built if you don't understand).

Now certain features, such as read-ahead, are built into the Linux kernel and may be near impossible to implement in Windows without somehow managing to modify the Windows kernel. And as for loading the driver when you install windows: when you go to select the disk you're installing on you can add additional drivers from a usb flash-drive. The hard part would be tricking Windows into not formatting the drive as NTFS first. If this can't be done then it's not an entirely unworldly idea to make a custom windows installer.

  • I don't currently have the reputation to comment on other peoples answers quite yet, so I'm going to leave this as almost a foot note to my answer. If you read Matt's post on Windows having expectations to be installed on FAT, FAT32, or NTFS, it is entirely true and correct. That would be one of the many hurdles of implementing the Ext-4 file-system. You would almost have to write a separate interface between the Ext-4 driver and the Windows kernel. But if you could get it to be on par with the speed of the NTFS driver then the fragmentation improvements (or rather no fragmentation) is worthit – Alexander C. Solon Mar 02 '16 at 00:32
  • Actually one part of Matt's answer was incorrect. Ubuntu could be installed on an NTFS partition, but you would most-likely have to recompile the kernel with the necessary modules. The fact you *can* do this attests to the gracefulness of an open-source operating system. – Alexander C. Solon Mar 02 '16 at 00:34
  • Windows has its own read-ahead.. this is handled by the filesystem cache layer, not the filesystem driver layer. Also Linux can not be installed on an NTFS partition per se as it requires unix filesystem semantics. The best you can do is host an ext4 or other unix filesystem inside a loopback file on an NTFS partition. – psusi Mar 14 '17 at 12:40
  • @psusi **NTFS is fully POSIX compliant** because [Windows NT already has a POSIX subsystem](https://superuser.com/a/1426861/241386) and MS must store POSIX filenames and permissions on NTFS. [ntfs-3g can also do that](https://askubuntu.com/q/55441/253474#comment1625946_55445) so it's actually possible to install Linux directly on NTFS without an image – phuclv Feb 09 '21 at 03:59
  • @phuclv, I suppose it is possible these days, though I can't think of any reason why you would want to. Also I wonder what windows would do if you had two files that only differed in case, which is allowed by posix, but not Windows. – psusi Feb 09 '21 at 19:14
  • @psusi it has always been possible to store POSIX filenames because NTFS was designed for that since the beginning, as Windows NT had to include POSIX subsystem due to US federal government requirements in the '80s. If you have 2 files with the same case-insensitive name then win32 apps can only access one of those files [What happens with the case sensitive directories and files in an NTFS partition under Windows?](https://askubuntu.com/a/902733/253474) – phuclv Feb 10 '21 at 01:03