Mac OS X で ext4 マウントする方法(ext4fuse)
先日、諸事情によりメインマシンを Ubuntu on ThinkPad X220 から MacBook Pro に乗り換えたんですが、Mac OS X で ext4 パーティションのマウントがうまく出来なかったのでその記録。
環境:
- MacBook Pro (Retina, 13-inch, Mid 2014)
- Mac OS X 10.9.4
- ext4fuse 0.1.3
追記:
2014/08/31現在では、ext4fuseは32bitを超えるBlock numberをサポートしていないようです。テラバイト級のパーティションでは32bitを超えるので注意が必要です。自分の場合は、ファイルと同じ名前のディレクトリが見えて、ファイルを開くと謎のディレクトリを開こうとしてエラーになる、みたいな怪奇現象が発生しました。
ext4fuseのREADMEの最後に書かれていました。orz
結論
ext4fuse をインストールして、operator グループに自分のユーザを追加すればOK。
すなわち、
brew install ext4fuse sudo dscl . append /Groups/operator GroupMembership <your-user-name>
あとは、mount コマンドの代わりに ext4fuse コマンドでマウントできます。
ext4fuse <device> <mount-point>
device は、物理ディスクならば diskutil コマンドで調べられます。
mount-point は任意のパスです。空のフォルダでないとダメです。
例えば /dev/disk2s3 を ~/mnt にマウントする場合は、
ext4fuse /dev/disk2s3 ~/mnt
となります。
経緯
もともと Ubuntu ユーザなので、どうせ homebew で e2fsprogs やら fuse やら入れればマウント出来るんやろ?みたいな感じで考えてたんですが、適当にインストールしてやってみてもうまくいかず。
数日後、落ち着いたところで再チャレンジ。今度はやみくもにコマンド打ちまくるのではなく、ググりながら情報を集め、ext4fuse を使えば良さそうだという情報が多かったので試してみるも、やはりうまくいかず。
どういうことかというと、
$ sudo ext4fuse /dev/disk2s3 ~/mnt Password: $ ls -l ~/mnt ls: mnt: No such file or directory $
となってしまって、マウントまではエラーなく通っているように見えるのですが、マウント先を ls すると見えない、という状態。
色々調べたあげく、github にある ext4fuse のソースツリーから最新版をダウンロードして自分でビルドしてみよう、ということに。
でソースツリーに含まれる README を開いてみると、なんと Mac OS X での使用方法が一番最初に載ってるじゃないっすか!?
それによると、まず brew でインストールして、Leopard 以降の場合は operator グループにユーザを追加せよ、とのこと。
こんなもん、普段 何も考えずに brew でサクッと入れちゃう人たちには全くわからん。わかるわけがないでしょう。
というわけで後に続く人たちのための備忘録でした。
蛇足
USB接続のハードディスクをマウントしたかったので、最初は VirtualBox 上の Ubuntu に認識させれば楽勝!!とか思って VirtualBox の USB フィルタをごにょごにょしてゲストOSにUSBデバイスを認識させようとしていたのですが、それもうまくいかず。
何と VirtualBox では USB 3.0 コントローラに対応していないとか。。。
MacBook だと USB 3.0 しかないのでツライ。。。