El CapitanでSMB濁音問題にぶつかった

MacOSのファイルシステムであるHFS+は文字コードの解釈にUTF-8を使用しているそうです。しかしただのUTF-8ではなくUTF-8-MAC(NFD)という仕様だそうで、なぜか濁音・半音を一文字として扱わないという特徴があります。

結構前からある問題らしく、Yosemite以前の時はなんの問題もなかったのにEl Capitanになってから目立つようになりました。

それは、Finderの「サーバに接続」からSMB接続するとき、フォルダの一覧が出るのですが、それに濁音があると接続しても中が見えないという障害にぶち当たりました。

現時点の対処法は、

  • OSバージョンアップ(バグ修正)を待つ
  • ターミナルでマウントする
  • VMware経由でがんばる

しかなく、SMB1を強制してもダメ、Finder代替のCommander OneやPathFinderでも解決できず。

解決のきっかけは「MacOSX – El CapitanからのSMB接続で、濁点・半濁点のあるフォルダが開けない – Qiita」で、結果的に採った方法は、「Automatorでシェルスクリプトを実行するアプリを作る」でした。


mount_smbfsなら問題なく繋がる

mount_smbfsというコマンドで接続すると濁音が混ざろうが問題なく接続できることがわかりました。ただ、フォルダ名をURLエンコードすることが必須で、コレがじつにめんどくさい。

なので、Automatorでアプリ化すれば楽だろうということでやってみました。

ちなみに、ユーザ名を「akitaka」、パスワードを「hogehoge」、サーバアドレスを「cozyattic.wordpress.com」、フォルダ名を「デザイン会社一覧」とした場合、以下の様になります。

$ mount_smbfs //akitaka:hogehoge@cozyattic.wordpress.com/%e3%83%87%e3%82%b6%e3%82%a4%e3%83%b3%e4%bc%9a%e7%a4%be%e4%b8%80%e8%a6%a7 ~/mount

毎回入力するのは骨が折れますね。

なお、URLエンコードには「Web便利ツール/URLエンコード・デコードフォーム – TAG index Webサイト」をつかってUTF-8にエンコードしてます。

マウント先フォルダを作成

ホームフォルダにマウント用のフォルダをあらかじめ作成しておきます。このフォルダをベースにネットワークドライブを切り替えるという感じです。

$ mkdir -p ~/mount/マウント名(任意)

共有フォルダをマウントすると自動的にデスクトップに表示されるので、別に目立つところにつくる必要はありません。ただ、ユーザフォルダ外では認証やSIPなどいろいろ面倒なので、ユーザフォルダ内に作った方がいいです。

Automatorで専用アプリを作成

接続予定の共有フォルダ名をあらかじめURLエンコードしてメモ帳に貼り付けておきます。

  1. Automatorを起動
  2. 「アプリケーション」を選択
  3. 「シェルスクリプトを実行」を右ペインにドラッグ
  4. 「cat」を消して以下のコマンドを入力
    umount ~/mount/マウント名; mount_smbfs //ユーザ名:パスワード@サーバアドレス/URLエンコードした共有フォルダ名 ~/mount/マウント名
  5. 右上の「実行」をクリックしてエラーがでなければ、名前を付けて保存する
  6. 共有フォルダの個数分繰り返す

最初に「umount」があるため、既に接続してある共有フォルダをマウント解除して新しい共有フォルダをマウントするという動作をさせています。

これならわざわざコマンドを打たなくてまだ楽ちんかなあと。

とっととこのバグを直してくれればいいんですけどね。

カテゴリー: Mac タグ:

El CapitanでSMB濁音問題にぶつかった” への2件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中