ソースの表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit Teams最近の変更Send via e-Mail印刷パーマリンク × « Ainex AIF-12のチップはμPD720201とGL3523 256バイト以上のファイル名を持つZFSをFreeBSDにインポートしてみる 以前、FreeBSDではlongnameフィーチャーは使えないという話をした。 FreeBSDで255バイト超のファイル名でファイルは作れないとして、Linuxで作った256バイト以上のファイル名を持つZFSをFreeBSDにインポートした場合、どうなるのだろうか。インポートできなかったり、クラッシュしたり、データセットが壊れるなんてことは流石にないと思うが、分からんってのが正直なところ。サクッと試してみよう。 まずはLinux側でlongnameフィーチャーが有効なデータセットと、長いファイル名を持つファイルを作る。 環境はこんな感じ。Linuxと言いつつProxmox VEです。 # pveversion pve-manager/9.1.4/5ac30304265fbd8e (running kernel: 6.17.4-2-pve) # zpool version zfs-2.3.4-pve1 zfs-kmod-2.3.4-pve1 # zpool status zlongname pool: zlongname state: ONLINE config: NAME STATE READ WRITE CKSUM zlongname ONLINE 0 0 0 zvol/zvm/vm-100-disk-0 ONLINE 0 0 0 errors: No known data errors データセットの文字コードはUTF-8にした。 # zfs create -o utf8only=on zlongname/longname UTF-8の場合、日本語1文字はおおむね3~4バイトでエンコードされるので、255バイト=全角85文字となる。255バイトと256バイトのファイル名でファイルを作ってみる。 # touch '123456789~1~123456789~2~1234 56789~3~123456789~4~123456789~5~123456789~6~123456789~7~123456789~8~12345' # touch '123456789~1~123456789~2~1234 56789~3~123456789~4~123456789~5~123456789~6~123456789~7~123456789~8~12345a' touch: cannot touch '123456789~1~123456789~2~123456789~3~123456789~4~123456789~5~123456789~6~123456789~7~123456789~8~12345a': File name too long 256バイトの方はファイル名長すぎィと怒られた。longnameフィーチャーを有効にして再度試してみる。 # zfs set longname=on zlongname/longname # touch '123456789~1~123456789~2~1234 56789~3~123456789~4~123456789~5~123456789~6~123456 789~7~123456789~8~12345a' # ls 123456789~1~123456789~2~123456789~3~123456789~4~123456789~5~123456789~6~123456789~7~123456789~8~12345 123456789~1~123456789~2~123456789~3~123456789~4~123456789~5~123456789~6~123456789~7~123456789~8~12345a 今度は当然ながら問題なく作成できた。このプールをFreeBSDに持っていく。 FreeBSD側は以下のような感じ。ashiftの警告が出てるけど本質じゃないのでスルーで。 $ freebsd-version -uk 14.3-RELEASE-p2 14.3-RELEASE-p2 $ zpool status zlongname pool: zlongname state: ONLINE status: One or more devices are configured to use a non-native block size. Expect reduced performance. action: Replace affected devices with devices that support the configured block size, or migrate data to a properly configured pool. config: NAME STATE READ WRITE CKSUM zlongname ONLINE 0 0 0 gptid/737d89da-f0e3-6c4d-a86d-426d41479aa8 ONLINE 0 0 0 block size: 512B configured, 4096B native lsでは普通に255バイト超のファイル名も表示された。ちょっと意外。 $ ls /zlongname/longname/ 123456789~1~123456789~2~123456789~3~123456789~4~123456789~5~123456789~6~123456789~7~123456789~8~12345 123456789~1~123456789~2~123456789~3~123456789~4~123456789~5~123456789~6~123456789~7~123456789~8~12345a 開こうとするとファイル名長すぎィと怒られた。 $ cat '/zlongname/longname/123456789~1~123456789~2~123456789~3~123456789~4~123456789~5~123456789~6~123456789~7~123456789~8~12345a' cat: /zlongname/longname/123456789~1~123456789~2~123456789~3~123456789~4~123456789~5~123456789~6~123456789~7~123456789~8~12345a: File name too long 256バイトのファイル名でファイルを作ろうとしても、やっぱり長すぎィと怒られた。 $ touch '/zlongname/longname/123456789~1~123456789~2~123456789~3~123456789~4~123456789~5~123456789~6~123456789~7~123456789~8~12345b' touch: /zlongname/longname/123456789~1~123456789~2~123456789~3~123456789~4~123456789~5~123456789~6~123456789~7~123456789~8~12345b: File name too long というわけで、ZFSのlongnameフィーチャーを有効にし256バイト以上のファイル名があるデータセットをFreeBSDに持っていくと、ファイルの存在は確認できるが、ファイル操作は不可というのが現状のようだ。 Comments Name E-Mail Website 人間の証明として、ボックス内の全ての文字を入力してください。 この項目は空のままにして下さい:Preview Comment blog/2026/2026-05-23.txt 最終更新: 2026-05-23 17:15by Decomo