Ext4 与 Btrfs:哪种文件系统更适合 U 盘上的 Linux?

Ext4 与 Btrfs:哪种文件系统更适合 U 盘上的 Linux?

我想安装 Ubuntu 20.04,并且我决定与其从同一磁盘双启动 Ubuntu 和 Windows,不如将其安装在单独的磁盘上。由于我没有其他硬盘,因此我想使用我拥有的 32GB 随身碟来实现此目的。

那么有几个方面的考虑:

  1. 读/写速度
  2. 读/写队列减慢
  3. 频繁写入操作造成的磨损

所以我需要从文件系统中得到的东西:

  1. 工作速度快
  2. 不会减慢操作系统速度
  3. 频繁写入不会损坏 USB 记忆棒

因此,如果我必须在ext4和之间进行选择btrfs,那么哪个更适合此目的?

答案1

我见过基准(例如:这个)这使得 btrfs 比 ext4 慢得多。我链接的基准测试将其归因于 btrfs 的写时复制行为。

然而,基准测试测试的参数相当狭窄,这些参数可能无法通过运行操作系统来反映。例如 btrfs 支持透明文件压缩。这可能会显着加快原本较慢的文件系统的速度,但会消耗 CPU 资源。

操作系统 IO 的很大一部分基于小文件读取。这意味着与旋转硬盘驱动器相比,由于读取磁盘上的数据而导致的速度减慢远低于您的预期。这是因为 USB 闪存驱动器的“寻道时间”非常短,从闪存驱动器运行 Ubuntu 非常流畅。


至于闪存驱动器的磨损,这更是一个问题。如果你频繁使用它,那么你最终会磨损 USB 驱动器,而你可能永远不会磨损硬盘驱动器。 F2FS是你更好的选择(是的,我意识到这不在你的问题中)。这样做的目的是为了减少飞边磨损,更重要的是为了分散飞边磨损。

但很多时候你不需要担心......这将取决于你和你有多少钱。想想你是否真的愿意花另一笔钱10 美元一两年内。

很多更好的 USB 闪存驱动器(有信誉可维护的知名品牌)将无法进入只读模式。 Ext4 的设计非常难以损坏,因此,如果使用 ext4 进行格式化,到时候您就不太可能丢失数据。


如果您仍然担心磨损,那么您可能需要对您的设置做一些有趣的事情:使 Windows PC 硬盘驱动器主机成为文件系统的一部分。

您可以在主 Windows 硬盘驱动器上创建一个大的单个文件,然后将其用作环回设备(该文件可以像硬盘驱动器一样使用)。这将允许您将文件系统 (/var/home) 中经常更改的区域放到您的 Windows PC 上,并使它们远离您的 USB 驱动器。

然而,这种方法将意味着您的笔式驱动器 Linux 将不再在任何机器上启动,而只能在您的机器上启动。

答案2

在您的情况下,差异可以忽略不计。笔式驱动器的(慢)速度是限制因素。

在你的情况下,我会运行“实时”设置。最初是为 CD 启动而设计的,但也可用于 USB 驱动器。这将启动到内存中并且仅从随身碟读取。这样,数据在重新启动之间就不会保留。要保留数据,您只需安装要写入的位置即可。

这将是随身碟最快的设置。无需担心文件系统。

按照此处常规的 Ubuntu 官方说明进行操作:在 Windows 上创建可启动 USB 记忆棒。他们暗示现场CD陈述:

无需更改 PC 配置即可测试 Ubuntu 桌面体验

或者这些处理任何可启动 CD 映像的通用指令:如何在 Windows 中创建 Ubuntu Live USB

实时启动将为您带来最佳体验。如果您要创建一个嵌入式系统,您会按照这些思路做一些事情。

如果您坚持将随身碟用作普通硬盘,那么速度会更慢。速度如此之慢,您不会感觉到文件系统带来的任何差异。虽然 ext4 可能稍微快一些,但我选择它的原因是由于更成熟的工具(请参阅Btrfs 和 Ext4 之间的区别

由于 Ubuntu 是一个完整的操作系统,它希望它可以在整个文件系统上进行写入,因此它们没有针对您的用例进行优化。如果您真的想从随身碟运行完整的系统(而不仅仅是为了播放/测试),那么您应该考虑一下联盟FS或者奥夫斯。这是一个覆盖文件系统,它允许您保留操作系统文件结构,但决定哪些部分保留到磁盘。然后,您将操作系统引导到内存中,然后确保类似的内容/etc写入磁盘。

我不知道有任何基于 Ubuntu 的发行版使用了这种开箱即用的技术。但如果你愿意切换发行版诺皮克斯据我所知,做得很好。

更新:最新版本的 Knoppix8.6.1似乎是最简单的方法。

相关内容