我可以在 NTFS 分区上安装 Linux 程序吗?

我可以在 NTFS 分区上安装 Linux 程序吗?

所以我知道您可以在具有 NTFS 分区的操作系统之间共享文件,但是我可以将 Linux 包/程序/软件安装到 NTFS 分区中吗?它们能在 Linux 操作系统上正常运行吗?

我的情况:

  • 我有一个内存较低的 SSD。它装有 Windows,我会对其进行分区以安装 Linux。我希望可以为 Arch Linux 根目录 ( /) 分配 20 GB,这样就足够了。

  • 我有一个用于存放大型文件和程序的 HDD,目前只有大型 Windows 程序放在里面,但我也想把大型 Linux 程序放在里面。

我知道 Linux 将二进制文件存储在/bin文件夹中,所以我不确定,如果我在 HDD 中安装某些东西,它是否会起作用。

这个答案意味着我需要在 HDD 内创建一个 ext4 分区以便在其中安装程序(或在其中存储程序数据)。

您可以在 HDD 中创建一个 ext4 分区并将其安装到/home/[your user name]/.wine
您可以根据需要在 HDD 中创建一个单独的 Steam(ext4)分区。

它还说:

只有“静态二进制”编译的程序才可以安装(而不是复制)在 /home 的子文件夹中并预期运行。

这似乎是我的问题的答案,但我不确定它是什么意思。

答案1

Unix/Linux 处理分区的方式与 Windows 的方式截然不同。在 Linux 中,大多数程序及其相关文件的位置定义非常严格,由其作者或打包者设置。通常,程序二进制文件位于/bin/sbin/usr/bin或 中/usr/sbin。共享库位于/lib或 中/usr/lib。系统范围的配置文件位于 中/etc,而用户特定的配置文件位于用户的主目录中。支持文件(图形、声音片段等)位于不同的位置,具体取决于文件类型。所有这些都在 Linux 中定义文件系统层次标准 (FHS)。

FHS 中的大多数(但不是全部)目录可能可选地可以拆分到单独的分区上。因此,如果您有足够的知识(或好的建议)来预测有多少东西会进入特定目录,您可以通过将特定目录分配到特定磁盘上来跨磁盘拆分安装。

您提供的信息不足以让我知道特定目录中需要多少空间,但一般来说,大多数台式机/笔记本电脑 Linux 安装大约占用 15-40 GB,不考虑用户数据。此类安装中真正占用空间的往往是大型用户文件——数码照片、MP3 收藏、.iso图像文件,尤其是视频。这些都是用户文件,它们位于目录中/home。因此,当您需要削减主 Linux 分区的大小时,拆分/home通常是首要任务。除此之外,您可以拆分目录,如/var/tmp和其他目录;但不知道很多更多关于您预期的配置,很难提出具体的建议。20 GB可能一旦分离出来就足以满足您的需求/home;但我不能确定。

另一方面,有些用户会将大量文件放在其他地方。/var例如,在某些类型的服务器上,目录树通常非常大。您的问题暗示您可能正在安装用于 WINE 的 Windows 程序,这是通常规则的另一个例外——根据您配置 WINE 的方式,这些二进制文件可以放在任何地方。(就我个人而言,我不会安装大量用于 WINE 的大程序,但这可能只是我个人的看法。在我看来,WINE 最适合用于偶尔运行的程序,最好用于小型程序,而不是用于多个大型程序。如果您需要运行多个大型 Windows 程序,我建议在 Windows 中运行它们,而不是在 Linux 中运行。)

这些都是必要的背景知识,这样你就可以理解为什么你关于将 Linux 程序安装到 NTFS 的主要问题意义不大。Linux 程序分散在各处,以至于在 NTFS 上完全安装大多数 Linux 程序的唯一方法是使用 NTFS 根 ( /) 文件系统,并且根本行不通。原则上,你可能能够使用 NTFS 来存储某个不起眼的子目录;但是 Linux 往往希望调整其许多目录中的所有权和权限,因此即使您找到了可以使用 NTFS 的目录,在安装某些新软件包时也可能无法使用。但是,如果您打算使用 WINE 安装大型软件包,则可以为此目的留出一些目录,在那里安装 NTFS 分区,并将 WINE 配置为使用该目录C:。据我所知,从 WINE 运行的 Windows 程序可以从 NTFS 运行得很好。使用您的实际的但是,以这种方式对WindowsC:进行分区可能并不明智;WINE 可能会对其配置进行不利的更改。(另一方面,我不是 WINE 专家,所以也许有一种相当安全的方法可以做到这一点。但是,共享 OS 启动分区总是至少有点风险。)

解决 SSD 空间有限问题的另一个方法是使用逻辑卷管理 (LVM)。此工具可让您合并多个分区(物理卷,或 PV,用 LVM 的话来说)到卷组(VG),然后将这些 VG 拆分成逻辑卷(LV)。一个优点是生成的 LV 的大小可以与 PV 不同,因此如果您有两个较小的分区,则可以将它们组合在一起并创建一个跨越这两个分区的 LV。对于您来说,这将有助于将一个/30 GB 的根 ( ) 文件系统放在您拥有的 20 GB SSD 空间和 10 GB 的 HDD 空间的组合上。访问速度会有很大差异,但这可能比将根 ( /) 文件系统完全放在 HDD 上更好。

另一个选择可能是采用缓存。这是一种将 SSD 用作硬盘超大缓存的方法。我使用过 bcache,但不是专家。据称,它可以在更大的磁盘上产生接近 SSD 的速度。原则上,您可以将 SSD 上的 20 GB 空间用作硬盘上更大空间的缓存。

答案2

纯粹解决标题问题:“我可以在 ntfs 分区上安装 Linux 程序吗?”

是的。但并不容易,即使安装看起来可以正常工作,也可能无法正常工作或根本无法正常工作。即使是那种只包含存档的程序,您展开它然后键入 /path/to/where_you_put_it/some_executable 也并不总是能正常工作。有时它们是在编写时假设存档中的文件权限的。当存档在不支持相同权限的文件系统上展开时,应用程序可能会失败,错误消息并不总是有帮助。你可以试试。偶尔它会起作用。

是的,正如 heynnema 在评论中所说(我投了赞成票)——如果你想使用 ntfs,那么在那里重新安装大多数 Win 程序然后缩小 Win 分区会更有意义。Win 程序通常是假设它们将安装在 ntfs 或 fat 上。

相关内容