假设我想为其他文件系统(可能是我自己的?)编写 Windows 驱动程序。是否可以在该文件系统上安装 Windows?最终问题可能来自 Windows 安装程序,或者可能是来自 Windows 本身的更深层次的问题?
答案1
鉴于 ReactOS 支持 ext2,我不明白为什么如果添加了驱动程序,Windows 无法在其他文件系统上运行,但 Windows 确实需要文件系统具有某些功能,因此并非所有文件系统都可以运行。与 Linux 系统不同,Windows 不依赖文件系统的权限,因此它比某些操作系统更有可能在未支持的文件系统上运行。
Windows 上已经有第三方的 ext2 驱动程序,因此您可以尝试一下,而不必编写自己的驱动程序。但是 Windows 安装过程不会识别这些驱动程序,因此它会拒绝允许您安装。
您最好的希望是正常安装 Windows,安装第三方驱动程序(或您自己的驱动程序),然后从 live-cd 创建安装的 .zip 存档,启动 Gparted live-cd,将新文件系统应用于 OS 分区(例如:ext2),然后使用 live-cd 将 .zip 内容恢复到分区。
答案2
是的。试试狡辩
Quibble 是自定义的 Windows 引导加载程序 - 文件 bootmgfw.efi 和 winload.efi 的开源重新实现,能够启动从 XP 到 Windows 10 2009 的每个版本的 Windows。与官方引导加载程序不同,它是可扩展的,允许您从 NTFS 以外的其他文件系统启动。
在转换为其他文件系统之前,您仍然必须先安装到 NTFS,因为只是引导加载程序发生了变化,Windows 安装程序根本没有修改。但是,如果您有其他安装程序,那么您可以直接安装,而根本不需要通过 NTFS
目前这只是一个概念证明 - 请不要将其用于任何严重的事情。
Windows 10 1909 在 Btrfs 上运行的屏幕截图:
答案3
前言:很抱歉再次提起这个已过时的问题,但是它恰好是谷歌上前几个搜索结果之一,因此我觉得添加一些有价值的信息会很有益。
答案:从技术上讲,这是完全有可能的,而且不会那很难实现,但请记住,它不会像在 Linux 上那样工作。原因是扩展 4 文件系统内置于 Linux 内核中,其中实现了非常特殊的低级功能。这包括性能增强功能,例如预读、Linux 如何处理碎片等。如果我没记错的话,Windows NTFS 文件系统与它自己的驱动程序隔离,这意味着碎片等事情由该驱动程序处理。如果这是真的,那么 Linux 风格的碎片(它实际上不是“Linux 风格”。它是“ext4 风格”,但它是在 Linux 内核本身中实现的)和扩展 4 文件系统可以很容易地在 Windows 中实现。如果您更改了一些基本的系统调用和内核交互逻辑,您甚至可以将 ext-4 的 Linux 驱动程序直接移植到 Windows(虽然 ext-4 驱动程序在内核中实现,但它是作为一个单独的模块。如果你不明白的话,可以查阅一下 Linux 内核是如何构建的。
现在某些功能(例如预读)已内置于 Linux 内核中,如果不设法修改 Windows 内核,则几乎不可能在 Windows 中实现。至于在安装 Windows 时加载驱动程序:当您选择要安装的磁盘时,您可以从 USB 闪存驱动器添加其他驱动程序。困难的部分是诱使 Windows不是首先将驱动器格式化为 NTFS。如果做不到这一点,那么制作自定义 Windows 安装程序并不是一个完全不切实际的想法。