2015年9月3日木曜日

osxfuse + ntfs-3g + Yosemite = NTFS の読み書き

 USB3.0 が使える Windows パソコンが過去にあったので速度を体感すべく外付けハードディスクを購入して試してみた。
 はえー!はえー!
 と思ったもののすぐにメインマシンを Windows から MacBook Air (11-inch, Late 2010) へ切り替えてしまった。
 外付けハードディスクにはスマフォで撮った写真や動画データを溜め込んであるので簡単には移動ができないしある程度整理してあるのでできればそのまま使いたい。
 OS X Yosemite で外付けハードディスクの NTFS は読めることを確認したが書き込みや削除が行えないのに困って調べてみると brew なるもので使える模様。
どうやらシステムにはあまり手を加えずかつ通常ユーザで扱えるように設計されているらしいので個人的には好みである。

 とりあえずインストールをしなくては話にならないからやってみよう。

~ $ java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
~ $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/...
/usr/local/share/man/man1/brew.1
==> The following directories will be made group writable:
/usr/local/.
/usr/local/include
/usr/local/lib
/usr/local/lib/pkgconfig
==> The following directories will have their group set to admin:
/usr/local/.
/usr/local/include
/usr/local/lib
/usr/local/lib/pkgconfig

Press RETURN to continue or any other key to abort
==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig
Password:
==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig
==> /usr/bin/sudo /bin/mkdir /Library/Caches/Homebrew
==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew
==> Downloading and installing Homebrew...
remote: Counting objects: 3724, done.
remote: Compressing objects: 100% (3558/3558), done.
remote: Total 3724 (delta 37), reused 648 (delta 26), pack-reused 0
Receiving objects: 100% (3724/3724), 3.11 MiB | 483.00 KiB/s, done.
Resolving deltas: 100% (37/37), done.
From https://github.com/Homebrew/homebrew
 * [new branch]      master     -> origin/master
HEAD is now at 4fbd40a fix style problems in migrator
==> Installation successful!
==> Next steps
Run `brew help` to get started
~ $ 

 まずは brew help を実行せよとのお達しなので試す。

~ $ brew help
Example usage:
  brew [info | home | options ] [FORMULA...]
  brew install FORMULA...
  brew uninstall FORMULA...
  brew search [foo]
  brew list [FORMULA...]
  brew update
  brew upgrade [FORMULA...]
  brew pin/unpin [FORMULA...]

Troubleshooting:
  brew doctor
  brew install -vd FORMULA
  brew [--env | config]

Brewing:
  brew create [URL [--no-fetch]]
  brew edit [FORMULA...]
  https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Formula-Cookbook.md

Further help:
  man brew
  brew home
~ $ 

 なんか簡単にインストールされた。

 さて次は ntfs-3g をインストールしていくらしい。

~ $ brew uninstall osxfuse
Error: No such file or directory - /usr/local/Cellar

 玄関のチャイムが鳴ったぞ。
 一体誰だろうと思ったら mineo の D プラン用の nano SIM が届いた
 とりあえず作業はここで止めておこう。
 無事に開通したので作業再開。

~ $ brew doctor
Your system is ready to brew.

 brew に問題はなし。

~ $ brew update
Updated Homebrew from 4fbd40a4 to 39ccf013.
==> New Formulae
nyancat

 アップデートされているパッケージがある模様。
 だが今回は関係なさそうなのでスキップしようと思ったけれど ntfs-3g で引っかかるのでアップデート。


 このお手軽さは素晴らしい。
~ $ brew upgrade
~ $ brew update
Already up-to-date.
~ $ 

 バージョンチェックはコマンドラインでよく使うものと同じだな。
~ $ brew -v
Homebrew 0.9.5 (git revision 39cc; last commit 2015-09-03)

 さて本題に行こう。
~ $ brew update && brew install ntfs-3g
Already up-to-date.
Error: No available formula for ntfs-3g 
==> Searching formulae...
==> Searching taps...
homebrew/fuse/ntfs-3g
~ $ 

どうやら fuse/ntfs-3g が無いと言っている模様。

 別のサイトのやり方をやってみよう。
~ $ brew install caskroom/cask/brew-cask
==> Tapping caskroom/cask
Cloning into '/usr/local/Library/Taps/caskroom/homebrew-cask'...
remote: Counting objects: 3127, done.
remote: Compressing objects: 100% (3052/3052), done.
remote: Total 3127 (delta 89), reused 701 (delta 59), pack-reused 0
Receiving objects: 100% (3127/3127), 5.80 MiB | 517.00 KiB/s, done.
Resolving deltas: 100% (89/89), done.
Checking connectivity... done.
Tapped 1 formula (3106 files, 24M)
==> Installing brew-cask from caskroom/homebrew-cask
==> Cloning https://github.com/caskroom/homebrew-cask.git
Cloning into '/Library/Caches/Homebrew/brew-cask--git'...
remote: Counting objects: 3071, done.
remote: Compressing objects: 100% (2990/2990), done.
remote: Total 3071 (delta 100), reused 731 (delta 65), pack-reused 0
Receiving objects: 100% (3071/3071), 5.78 MiB | 698.00 KiB/s, done.
Resolving deltas: 100% (100/100), done.
Checking connectivity... done.
Note: checking out 'b30085af1e10fb6c50c5c1395849af07d67a83ac'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

==> Checking out tag v0.56.0
🍺  /usr/local/Cellar/brew-cask/0.56.0: 2802 files, 11M, built in 24 seconds
~ $ 

~ $ brew cask install osxfuse
==> We need to make Caskroom for the first time at /opt/homebrew-cask/Caskroom
==> We'll set permissions properly so we won't need sudo in the future
Password:
==> Downloading http://downloads.sourceforge.net/project/osxfuse/osxfuse-2.8.0/o
######################################################################## 100.0%
==> Running installer for osxfuse; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are i
==> installer: Package name is FUSE for OS X (OSXFUSE)
==> installer: Upgrading at base path /
==> installer: The upgrade was successful.
🍺  osxfuse staged at '/opt/homebrew-cask/Caskroom/osxfuse/2.8.0' (6 files, 8.5M)
~ $ 

~ $ brew install homebrew/fuse/ntfs-3g
==> Tapping homebrew/fuse
Cloning into '/usr/local/Library/Taps/homebrew/homebrew-fuse'...
remote: Counting objects: 31, done.
remote: Compressing objects: 100% (31/31), done.
remote: Total 31 (delta 0), reused 27 (delta 0), pack-reused 0
Unpacking objects: 100% (31/31), done.
Checking connectivity... done.
Tapped 26 formulae (80 files, 324K)
==> Installing ntfs-3g from homebrew/homebrew-fuse
==> Installing dependencies for homebrew/fuse/ntfs-3g: pkg-config, gettex
==> Installing homebrew/fuse/ntfs-3g dependency: pkg-config
==> Downloading https://homebrew.bintray.com/bottles/pkg-config-0.28.yosemite.bo
######################################################################## 100.0%
==> Pouring pkg-config-0.28.yosemite.bottle.2.tar.gz
🍺  /usr/local/Cellar/pkg-config/0.28: 10 files, 612K
==> Installing homebrew/fuse/ntfs-3g dependency: gettext
==> Downloading https://homebrew.bintray.com/bottles/gettext-0.19.5.1.yosemite.b
######################################################################## 100.0%
==> Pouring gettext-0.19.5.1.yosemite.bottle.tar.gz
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local.

OS X provides the BSD gettext library and some software gets confused if both are in the library path.

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

    LDFLAGS:  -L/usr/local/opt/gettext/lib
    CPPFLAGS: -I/usr/local/opt/gettext/include

==> Summary
🍺  /usr/local/Cellar/gettext/0.19.5.1: 1921 files, 22M
==> Installing homebrew/fuse/ntfs-3g
==> Downloading https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2015.3.14.tgz
==> Downloading from https://www.tuxera.com/opensource/ntfs-3g_ntfsprogs-2015.3.
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/ntfs-3g/2015.3.14 --exec-prefix=/usr/
==> make
==> make install
🍺  /usr/local/Cellar/ntfs-3g/2015.3.14: 87 files, 2.0M, built in 2.2 minutes
~ $ 

 ntfs-3g がインストールされているかを確認してみる。
~ $ brew list
brew-cask gettext ntfs-3g pkg-config
~ $ 

 ntfs-3g はもともとある /sbin/mount_ntfs を置き換えて使うようだ。
~ $ sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.original
Password:
~ $ sudo ln -s /usr/local/sbin/mount_ntfs /sbin/mount_ntfs

~ $ ls -l /sbin/mount_ntfs
lrwxr-xr-x  1 root  wheel  26  9  3 18:46 /sbin/mount_ntfs -> /usr/local/sbin/mount_ntfs
~ $ 

 準備もできたので先ほどの USB3.0 の外付けハードディスクを接続してみて書き込みができるかを確認してみた。
 mount_ntfs 自体を使っていなかったので再起動は不要と判断した。
できた。できた!
 もちろんこのあとフォルダごと削除もできました。
 これでいままで通りにスマフォで撮影した写真や動画データのバックアップができる。
 MacBook Air はたまに持ち歩くので iTunes ライブラリを入れることができないのが残念である。
 といっても iTunes はそんなに立ち上げることはないんだけど。
 どちらかというと iFunbox のほうが多いかもしれない。

参考サイトは以下の通りです。
http://qiita.com/ganta/items/f9cc7189e3efe417262f
 こちらのサイトでは権限を変更している箇所がありましたが変更せずに実施してますので注意注意。
 英文サイトで見かけて ntfs-3g がインストールできなくて困ってましたがこちらのサイトで無事に解決することができました。
 感謝です。

 これにて無事完了。
~ $ brew --config
HOMEBREW_VERSION: 0.9.5
ORIGIN: https://github.com/Homebrew/homebrew
HEAD: 39ccf013b69758d276d725bf36ee3dbd6da08bdb
Last commit: 3 hours ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_REPOSITORY: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_BOTTLE_DOMAIN: https://homebrew.bintray.com
CPU: dual-core 64-bit penryn
OS X: 10.10.5-x86_64
Xcode: 6.4
CLT: N/A
Clang: 6.1 build 602
X11: N/A
System Ruby: 2.0.0-p481
Perl: /usr/bin/perl
Python: /usr/bin/python
Ruby: /usr/bin/ruby
Java: 1.8.0_40

 MacBook Air を更新すればこんな苦労はしなくてすむし別件でのコンパイル時間を考えれば  USB3.0 ポートが載った MacBook Pro にすべきという案があるんだけれど懐事情がw

0 件のコメント:

コメントを投稿

MELSECNET/HのリモートI/O局経由のMODBUS(R)通信について

http://fa-faq.mitsubishielectric.co.jp/faq/show/13661  別ネットワークの先にぶら下げるってどういうことだろう。