NTFSで再マウントするperlスクリプト改

以前作成した「MACOSでNTFSドライブを読み書き可能で再マウントする PERLスクリプト」の改修版です。

配布物

perlスクリプト(ダウンロード)
usage: remount.pl

※ 内部で sudoを使っているので、実行時にパスワード入力が必要になります。

特徴

  • 非常駐
  • セキュリティを落とすような設定変更を行わない
  • たまにしか使わない人向け
    – 無料で安全にやりたいので、よく使われている一般的なソフトでなんとかする (OS附属のPerl, macFUSE, Homebrew を利用)
    – ただし毎回コマンドラインから起動する必要がある

以下は前提や、動作環境など。

前提

  • macFUSEが pkgでインストールされているか、”brew install –cask macfuse” されている。
  • 以下が実施されている。
    brew tap gromgit/homebrew-fuse
    brew install ntfs-3g-mac
  • 私の環境で実験しただけなので無保証です。

動作確認環境

  • macFUSE 4.2.3
  • Homebrew 3.3.8
  • ntfs-3g-mac 2021.8.22
  • macOS Monterey (ver. 12.1), perl v5.30.3
  • macOS BigSur (ver.11.6.2), perl v5.30.3
  • macOS Catalina (ver.10.15.7), perl v5.18.4
    ※ macOS Catalinaより前のバージョンでも、sw_vers コマンドの結果が 10以上なら mountまで走るようにしていますが、動いてくれるかはわかりません。

ざれ言

ずいぶん前に作った、余計な常駐物を導入せず、かつ無料で割りとらくちんに使えることを目指した NTFSの再マウントスクリプトですが、なぜかうまく動かなくなってから、結構な期間に渡って放置してました。
Finderでは正しく表示されないものの、コマンドラインからは使えるし、有料のアプリに手を出すのもどうかなと思いながら。

昨日 brew upgrade してる時に気付いたのですが、どうやら ntfs-3gが使えなくなっていたようです。かなり前からだったようですが、全く気付きませんでした。

それでは今はどうなっているのだろうと、macFUSEのサイトとかを調べに行きました。
osxfuse の NTFS 3Gによると、以下をやれということでした。

brew tap gromgit/homebrew-fuse
brew install ntfs-3g-mac

こいつがうまく導入できたからと言って、そうは問屋が卸してくれません。macOS Montereyで mountコマンドで確認すると、こんな感じに表示されました。

mount 実施結果

$mount
/dev/disk1s5s1 on / (apfs, sealed, local, read-only, journaled)
 :
ntfs://disk■s■/XXXXXX on /Volumes/XXXXXX (lifs, local, read-only, noowners, noatime)

今までに無い表示です。何だよ lifsって。でも ntfsなのかよ。みたいな。以前苦労した nodevも nousuidもありません。
だからと言って、ntfs-3g-mac に、素直に表示された文字列を与えても動作してくれません。
色々試したところ、以下なら動きます。

手マウント

$ sudo mount -t ntfs-3g -o umask=022 "/dev/disk■s■" "/Volumes/XXXXXX"

というわけで、以前作ったスクリプトを書き直したら Finderでも動作するようになりましたとさ。
念のため BigSurでも ntfs-3g-macを入れて確認しておきました。(こちらの mountコマンド実施結果は従来通りでした)

何となく使って問題が無さそうなので公開としました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください