web-dev-qa-db-ja.com

大文字と小文字を区別しないtmpfs / ramfsをマウントできますか?

一部のファイル操作にtmpfs/ramfsのパフォーマンスを利用したいのですが、これらのファイルを使用するプログラム/プロセスは、大文字と小文字を区別しないファイルシステムを想定しています。大文字と小文字を区別しないtmpfs/ramfsオプションのドキュメントが見つかりません(私は完全に期待しています)。

同様の結果を達成するための他の方法はありますか? [方法]大文字と小文字を区別しないtmpfs/ramfsを取得できますか?

(注:RHEL/CentOS 7の回答を探していますが、適切な解決策があれば、別のディストリビューションに簡単に切り替えることができます。)

5
Chris Mendez

以下を試して、大文字と小文字を区別しないファイルシステムを/ 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プレースホルダーファイル、ファイルシステム、およびマウントを作成します。

4
Lambert

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は Fuse ファイルシステムであり、Linuxを含むほとんどのUnixバリアントで利用できます。そのアプリケーションを実行しているユーザーにFuseの使用を明示的に許可する必要がある場合があります(RHELでユーザーがデフォルトでFuseを使用できるかどうかはわかりません)。

ファイルシステムをスタックすると、必然的にわずかなパフォーマンスの低下が発生しますが、それはCPUコストのみであり、ディスクI/Oコストはありません。