我听到一些小组讨论在磁盘空间较小的计算机(如 32GB ideapad、笔记本等)上的 Linux 中使用文件系统(btrfs 与 ext4 等)。
文件系统的选择真的会影响同一个文件的使用吗?我的意思是我们可以通过选择不同的文件系统来获得更多可用磁盘空间吗?得到完全相同的结果。
答案1
是的,它可以产生很大的差异...通常它在具有许多较小文件的文件系统上产生最大的差异。因此,它可能不会对您的视频收藏(主要是 GB 文件)甚至音乐收藏(主要是 MB 文件)产生影响。但是,如果文件系统充满了许多只有几 KB 的文件,那么肯定会看到差异。
每个文件所需的元数据存在一些差异。这里的元数据是指文件数据中未包含的所有内容,例如文件名、权限、时间戳和自定义文件系统属性。
它实际上取决于文件系统的功能,有时还取决于文件系统的配置方式,但每个文件的数据可以是字节到千字节,无论文件大小如何。
文件不是存储为单个字节,而是存储为字节块。在 ext4 上,对于超过 512MB 的文件系统,块默认为 4 KiB。因此,恰好 4096 字节的文件将在磁盘上占用 4096 字节,但 4095 字节甚至仅 1 字节的文件也会占用磁盘上的 4096 字节。 4097 字节的文件将再次占用 8192 字节。这称为填充。
可以使用自定义(较小)块大小来格式化一些文件系统。这可以减少填充,但也可能有副作用。一些现代硬盘驱动器在较小的块上表现不佳。从理论上讲,它实际上可能会减少容量,因为需要使用更多空间来标记分配了哪些块,尽管我自己从未见过这种情况发生。
现在,并非所有文件系统都会在填充中浪费块。某些文件系统(包括 btrfs)会将多个文件分配给一个块。看块再分配。
然后还有一个比较明显的特点。某些文件系统可以透明地压缩文件的内容。不能保证这会成功压缩文件内容,但它可能会非常成功。
这里的一个示例文件系统是 zfs。看在 zfs 中启用压缩。