我可以挂载不区分大小写的 tmpfs/ramfs 吗?

我可以挂载不区分大小写的 tmpfs/ramfs 吗?

我想利用 tmpfs/ramfs 的性能进行某些文件操作,但使用这些文件的程序/进程假定不区分大小写的文件系统。我找不到任何允许不区分大小写的 tmpfs/ramfs 选项的文档(我完全期望如此)。

还有其他方法可以达到类似的结果吗? [如何]我可以获得不区分大小写的 tmpfs/ramfs?

(注意:寻找 RHEL/CentOS 7 的答案,但如果有好的解决方案,可以轻松切换到另一个发行版。)

答案1

您可以尝试以下方法在 /tmp 中创建不区分大小写的文件系统:

truncate -s 100M /tmp/vfat
losetup /dev/loop0 /tmp/vfat
mkfs.vfat /dev/loop0
mkdir /mnt/vfat
mount /dev/loop0 /mnt/vfat

如果您不想使用 tmpfs 而想使用 ramfs,请先创建 RAM 挂载:

mkdir /mnt/ramfs
mount -t ramfs -o size=110M ramfs /mnt/ramfs

然后按照上述步骤创建 vfat 占位符文件、文件系统并挂载。

答案2

您可以使用CIOPFS可堆叠文件系统,它在区分大小写的文件系统之上实现了一个不区分大小写的文件系统。

mkdir /tmp/case-sensitive /tmp/case-insensitive
ciopfs /tmp/case-sensitive /tmp/case-insensitive
TMPDIR=/tmp/case-insensitive myapp
fusermount -u /tmp/case-insensitive

Ciopfs 是一个保险丝文件系统,在包括 Linux 在内的大多数 Unix 变体上都可用。您可能需要明确允许运行该应用程序的用户使用FUSE(我不知道RHEL默认情况下是否允许用户使用FUSE)。

堆叠文件系统将不可避免地导致较小的性能损失,但这只是 CPU 成本,没有磁盘 I/O 成本。

相关内容