Tom*_*che 5 filesystems backup ext4 ext2 journaling
假设一个人正在将一个外部驱动器设置为“一次写入存档”:一个人打算重新格式化它,复制一些(希望)永远不会更新的文件,然后将其放在一边,直到我需要阅读某些内容(这可能是很长一段时间或永远不会)来自另一个Linux机器的存档。我还希望能够在存档中获得尽可能多的文件空间;即,我希望文件系统为其自身目的消耗尽可能少的可用空间。
特定问题 1:哪个文件系统更适合此用例:ext2 或 ext4 没有日志记录?
由于我以前从未做过后者(我通常用GParted做这种事情),为了确定:
具体问题 2:是安装无日志 ext4 的“方式”mke2fs -t ext4 -O ^has_journal /dev/whatever
吗?
一般问题 3:这个用例有更好的文件系统吗?还是完全不同的东西?
我在各种外部驱动器上保存了来自死盒(因此永远不会更新)上的旧项目的一堆文件。总大小(文件)~= 250 GB。这对于 DVD 来说太大了(即,需要太多——除非我遗漏了什么),而且我没有磁带驱动器。因此,我正在设置一个旧的 USB2 HFS 外部驱动器作为他们的存档。我更喜欢使用“真正的 Linux”文件系统,但也更喜欢一个文件系统
我计划使用 GParted 执行以下顺序:[删除旧分区,创建单个新分区,创建 ext2 文件系统,重新标记]。但是,我读到这里是
recent Linux kernels support a journal-less mode of ext4
which provides benefits not found with ext2
Run Code Online (Sandbox Code Playgroud)
并注意到以下文字 man mkfs.ext4
"mke2fs -t ext3 -O ^has_journal /dev/hdXX"
will create a filesystem that does not have a journal
Run Code Online (Sandbox Code Playgroud)
所以我想知道
mke2fs -t ext4 -O ^has_journal /dev/whatever
吗?我不同意squashfs的建议。您通常不会将squashfs写入原始块设备;而是将squashfs写入原始块设备。将其视为易于阅读的 tar 存档。这意味着您仍然需要一个底层文件系统。
ext2
有几个严重的限制限制了它今天的用途;因此我会推荐ext4
。由于这是用于归档的,因此您将创建压缩档案来继续它;这意味着您将拥有少量相当大的文件,并且很少更改。您可以对此进行优化:
-I 128
减少单个 inode 的大小,从而减少 inode 表的大小。-i
选项,进一步减小索引节点表的大小。如果增加该值,创建的 inode 会减少,因此 inode 表也会更小。然而,这意味着文件系统平均每个文件浪费更多空间。因此,这是一个权衡。-O ^has_journal
。不过,如果您沿着这条路线走下去,我建议您设置默认选项以只读方式挂载文件系统;您可以在 中执行此操作fstab
,或者您可以使用tune2fs -E mount_opts=ro
在文件系统中记录默认值(您有时无法执行此操作mkfs
)-m
选项来减少保留块的数量。这设置了仅为root 保留的百分比(默认设置为 5)。不要将其设置为零;文件系统需要一些空间才能有效运行。mkfs
tune2fs