简约的 ext4 文件系统,没有日志和其他高级功能

简约的 ext4 文件系统,没有日志和其他高级功能

我有一个小型“救援”系统(16 MB),我将其作为 ramdisk 启动到 RAM 中。这初始化程序我正在准备的磁盘需要格式化。我认为 ext4 会做得很好,但显然,使用日志或其他高级 ext4 功能没有任何意义。

如何创建最小的 ext4 文件系统?

  • 没有日记
  • 没有任何lazy_init
  • 没有任何扩展属性
  • 没有前交叉韧带没有大文件
  • 无需调整支撑大小
  • 没有任何不必要的元数据

可能是最简单的最小文件系统?

答案1

  • 或者你可以简单地使用 ext2
  • 对于 ext4:

mke2fs -t ext4 -O ^has_journal,^uninit_bg,^ext_attr,^huge_file,^64bit [/dev/device or /path/to/file]

man ext4包含很多可以禁用的功能(使用^)。

答案2

请原谅我挑战您的要求,但是您想通过关闭这些功能来实现什么目的?磁盘空间?表现? ...?

我很难理解为什么你想要一个可写的文件系统而不想要日志的安全性,或者为什么你想要使用 ext4 作为只读文件系统。

一个小的只读壁球FS对于恢复系统来说,文件系统感觉是一个更安全的选择,并且在大多数情况下比 ext4 更小、更快。

答案3

这里正确的答案是根本不使用虚拟磁盘。 注意 ramdisk 和 tmpfs 是两个不同的东西。

您所描述的是一个实时系统。没有任何合理的 Linux live 系统设置使用 ramdisk现在,因为最好是:

  • 只需使用 initramfs(可选压缩的 CPIO 存档)即可。内核将在启动时将存档提取到一个特殊的 tmpfs 实例中(这是边际地比将 initrd 复制到 ramdisk 慢,但即使在极慢的系统上,差异也可以通过以下方式衡量毫秒,所以不值得关心),然后使用该 tmpfs 实例作为根文件系统运行。一旦运行,它实际上比使用 ramdisk 稍微快一些(没有模拟块设备,没有花哨的文件系统驱动程序),它将占用更少的内存空间(因为 tmpfs 在功能上只是将页面缓存直接公开为文件系统),并且它将根据需要自动调整大小(因为 tmpfs 位于页面缓存中,与必须预先分配空间的 ramdisk 不同)。

或者:

  • 使用直接安装的压缩只读文件系统(现在通常是 SquashFS)(根本不需要 ramdisk),然后在其上使用覆盖文件系统(现在通常是 OverlayFS)以使其可写。鉴于您所说的恢复映像非常小,这可能不会为您节省任何东西,但这是当今大多数实时系统使用的“正常”方法。

相关内容