![Ext4 与 Btrfs:哪种文件系统更适合 U 盘上的 Linux?](https://linux22.com/image/172318/Ext4%20%E4%B8%8E%20Btrfs%EF%BC%9A%E5%93%AA%E7%A7%8D%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E6%9B%B4%E9%80%82%E5%90%88%20U%20%E7%9B%98%E4%B8%8A%E7%9A%84%20Linux%EF%BC%9F.png)
我想安装 Ubuntu 20.04,并且我决定与其从同一磁盘双启动 Ubuntu 和 Windows,不如将其安装在单独的磁盘上。由于我没有其他硬盘,因此我想使用我拥有的 32GB 随身碟来实现此目的。
那么有几个方面的考虑:
- 读/写速度
- 读/写队列减慢
- 频繁写入操作造成的磨损
所以我需要从文件系统中得到的东西:
- 工作速度快
- 不会减慢操作系统速度
- 频繁写入不会损坏 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似乎是最简单的方法。