#author("2022-03-03T12:00:29+00:00","","") [[diary/Kojima]] ・ファイル名の制限 最近、WindowsのNTFSなら問題ないけど、Linuxのext4/xfs/btrs だと”filename too long"なエラーになる ファイルに遭遇したので、少し各ファイルシステムのファイル名の最大長を調べてみた。 [[Wikipedia:https://en.wikipedia.org/wiki/Comparison_of_file_systems?fbclid=IwAR16iWILtvjb8g9otf1NLV62qHwFCtNDpcABek9Kez2JJ_fdhPwRe7AkyOo#Limits]]によると、ファイル名の最大長はNTFSが256「文字」なのに対し、ext4/xfs/btrfs だと256「bytes」らしい。多分、このあたりの制限で長すぎるファイル名がLinux上では展開できないようだ、と判断し、NTFSなFSをloopbackでマウントして、そこに展開してみることにした。 当初、mkfs.ntfs は " mkntfs [options] device [number-of-sectors]" という使い方なので、 loopback用のファイルをNTFSにできないのかな、と心配したけど、-F(force)オプションを指定すれば、 ファイルもNTFS形式にフォーマットでき、loopback 経由でマウントできた。 最近のカーネルだと、mount -t ntfs3 すれば、従来のfuse経由ではなく、カーネル・ネィティブな NTFS ドライバが使えるっぽい このloopbackマウントしたNTFSなFS上だと、Linux上ではエラーになる長いファイル名も問題なく展開できたので、 NTFSも捨てたものじゃないな、と見直しているところ。NTFSってFSの世代的にはXFSよりも新しくZFSと同世代だから、 FUSEではなく、nativeなkernel driverで対応するようになったNTFSって、案外面白いかも知れない。 試してないけど、NTFS3 を組み込んだ5.15カーネルなら NTFS を rootfs にできるんじゃないかな? #comment