#author("2022-03-16T03:14:03+00:00","","")
#author("2022-03-16T03:18:32+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 にできるんじゃないかな?
- NTFSって,ファイル名の大文字小文字を同一視するのではなかったかな。 -- [[tamu]] &new{2022-03-14 (月) 17:21:58};
- kojima@pl74_1031:/loop/Test2$ cat /proc/mounts | grep loop /dev/loop0 /loop ntfs3 rw,relatime,uid=0,gid=0,iocharset=utf8 0 0 kojima@pl74_1031:/loop/Test2$ touch A.txt kojima@pl74_1031:/loop/Test2$ touch a.txt kojima@pl74_1031:/loop/Test2$ ls -al 合計 4,096 drwxr-xr-x 1 kojima users     0  3月 16日  12:13 ./ drwxrwxrwx 1 root   root  4,096  3月 16日  12:12 ../ -rw-r--r-- 1 kojima users     0  3月 16日  12:13 A.txt -rw-r--r-- 1 kojima users     0  3月 16日  12:13 a.txt -- [[kojima]] &new{2022-03-16 (水) 12:14:03};

- 一応、区別している気配。

  kojima@pl74_1031:/loop/Test2$ cat /proc/mounts | grep loop /dev/loop0 /loop ntfs3 rw,relatime,uid=0,gid=0,iocharset=utf8 0 0 
  kojima@pl74_1031:/loop/Test2$ touch A.txt 
  kojima@pl74_1031:/loop/Test2$ touch a.txt 
  kojima@pl74_1031:/loop/Test2$ ls -al 
  合計 4,096 
  drwxr-xr-x 1 kojima users     0  3月 16日  12:13 ./ 
  drwxrwxrwx 1 root   root  4,096  3月 16日  12:12 ../ 
  -rw-r--r-- 1 kojima users     0  3月 16日  12:13 A.txt 
  -rw-r--r-- 1 kojima users     0  3月 16日  12:13 a.txt 

大丈夫なんじゃね? > case sensitive -- [[kojima]] &new{2022-03-16 (水) 12:14:03};

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS