Finderで、SambaとNFSv4サーバーに接続!
By Patineboot
FinderでUbuntu NASに繋げよう!
メディアサーバー連載です。連載でも。独立して楽しめる😄
前回までのおさらい:SambaとNFSv4でファイル公開をサーバーに施した。
Finder、macOSが備えるファイラー、が持つSambaとNFSv4クライアント機能で、サーバーに要求を送信する。
Sambaサーバーのパラメータを探り、Finderが無応答になる、バグを探る。 Finderが無応答は、復帰動作は、macOSを強制再起動しかなく、凶悪なバグです🤬。
対向機
- オペレーティングシステム: Ubuntu 21.04 Server
- samba 4.13.3
- nfs-kernel-server 1.3.4
NFSv4で接続するね
macOSのマウントパラメーター、NFSv4のマウントオプションを/etc/nfs.conf
に記述するよ。
オプション | 効果 |
---|---|
vers=4 | NFS version 4を使う |
resvport | 予約ポートを使う |
namedattr | 名前付き拡張属性を使う |
acl | NFS ACLを使う |
nfc | UTF-8 NFCを使う |
nfs.client.mount.options = vers=4,resvport,namedattr,acl,nfc
Finderで接続してnfsstat -m
でNFS状態を確認すると、resvport、namedattr、aclを使っている。
しかし、Finderは、名前付き拡張属性に拡張属性を保存しない。予約ポートを使わない。NFS ACLを誤って使う。
Finderを使って、macOSからサーバーへのJPEGファイルのコピーすると、Apple Double File(._で始める拡張属性ファイル)ができる。 たくさんの小さいファイルの転送は、非常に低速💢。
ZFSファイルシステムでは、拡張属性に保存して欲しかった。
FinderでNFSv4サーバーに接続は、悪い考えです。
参考:便利コマンド
# NFSv4サーバーのエクスポートリスト表示
showmount -e 192.168.10.2
# NFSv4マウント
sudo mount -t nfs -o vers=4 192.168.10.2:/ ./nfsmnt
# NFS状態確認
nfsstat -m
Sambaで接続するね
名前が長いファイルを、Finderで、macOSからUbuntuへコピーすると、 UbuntuのSambaデーモンが、強制終了する。
Patinebootが、Finderのバグを周知するね。
バグを確認した環境
-
サーバー環境
-
オペレーティングシステム: Ubuntu 21.04 Server
-
samba 4.13.3
sambaの設定を開示するね。
vfs objects = catia fruit streams_xattr fruit:resource = file fruit:metadata = netatalk fruit:locking = netatalk fruit:encoding = native
-
-
クライアント環境
- macOS Big Sur バージョン 11.5.2
バグとする動作
-
バグを再現する手順
- Finderで、「サーバーへ接続」を選ぶ
smb://192.168.0.2/
を入力して、「接続」ボタンを押す。- 絶対パスで127バイト(UTF-8エンコード)以上の名前を持つファイルを用意する。
- Finderで、名前を持つファイルをコピーする。
127バイト以上の名前:
/home/xxxxxxxx/smbtest/20210328_grav-admin/cache/twig/3a/3a34c346f2c9d2fba708bb65dcad45bfa7601a7dd665a65edb3b300365d87a30.php
をコピーし、Apple Doubleの._
を加えると、127文字になる。 Apple DoubleはFinderが、自己勝手に生成する。 -
実際の動作
Finderは、転送進捗表示を止め、キャンセルボタンの指示を受け付けない。 -
期待するの動作
Finderは、転送進捗表示を進め、キャンセルボタンの指示を受け付ける。そして、進捗表示通りにコピーを完了する。
Patinebootの調査と分析
Finderを強制終了し、macOSを再起動する。これでバグから復旧する。
- 「サーバーへ接続」にて、IPv6を使うと、正常に動作する。
- 「サーバーへ接続」にて、IPv4を使うと、バグが発生する。
Patinebootは、Finderの動きをよく見たの。 MacBook Proは、WiFiと有線ケーブルでルータに接続している。
smbstatusとifconfigを、駆使して発見した!
- WiFiからSambaに接続すると、Finderは、NETBIOS名を、IPv6に解決する。
- 有線ケーブルでSambaに接続すると、Finderは、NETBIOS名を、IPv4に解決する。
Appleにバグを報告するね。
フリーズする、再起動での復旧する、これより、バグランクはS。
すぐに解決するべき非常に重要な問題だよ😤