■プロローグ
先日、我がMacbook Pro 13' Late 2011のHDDを「WD Black2」に換装した。
OS起動スピードが約4倍速く(8分→2分)なり、とても満足していた。
しかし、換装後しばらくして思わぬ落とし穴にハマったので、後世のために記しておく。
■環境
・MacBook Pro (13-inch, Late 2011)
・OS X Yosemite 10.10.1
■事象
・Finderで /Applications フォルダにアクセスしようとすると、
フォルダアイコンがグレーアウトしており、内容を見ることができない。
・Finderのサイドバーの「アプリケーション」をクリックしても、
同じくフォルダ内容を見ることができない。
→以前、手動でインストールしたアプリの更新、削除などが一切出来なくなってしまった。
■対応経緯
・始めは、アクセス権周りを疑った。※1
→「カスタム」が悪いのかと思って、GUIで「読み/書き」に変更した。
$ ls -lde@a /Applications/
drwxrwxr-x@ 130 root admin 4420 11 29 16:47 /Applications/
com.apple.metadata:_kTimeMachineNewestSnapshot 50
com.apple.metadata:_kTimeMachineOldestSnapshot 50
0: user:root allow add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown
1: group:everyone deny delete
$
$ ls -lde@a /Applications/
drwxrwxr-x@ 130 root admin 4420 11 29 16:47 /Applications/
com.apple.metadata:_kTimeMachineNewestSnapshot 50
com.apple.metadata:_kTimeMachineOldestSnapshot 50
0: user:root allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity
1: group:everyone allow list,search,readattr,readextattr,read security
→相変わらずアクセスできなかったので、却下。元に戻した。
$ sudo chmod =a# 0 "user:root allow add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown" /Applications/
WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.
To proceed, enter your password, or type Ctrl-C to abort.
Password:
$ ls -lde@a /Applications/
drwxrwxr-x@ 130 root admin 4420 11 29 16:47 /Applications/
com.apple.metadata:_kTimeMachineNewestSnapshot 50
com.apple.metadata:_kTimeMachineOldestSnapshot 50
0: user:root allow add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown
1: group:everyone allow list,search,readattr,readextattr,readsecurity
$
$ sudo chmod =a# 1 "group:everyone deny delete" /Applications/
$ ls -lde@a /Applications/
drwxrwxr-x@ 130 root admin 4420 11 29 16:47 /Applications/
com.apple.metadata:_kTimeMachineNewestSnapshot 50
com.apple.metadata:_kTimeMachineOldestSnapshot 50
0: user:root allow add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown
1: group:everyone deny delete
・次に、EA(Extended Attribute:拡張属性)を削除してみた。※2
$ ls -lde@a /Applications/ /Users/ /System/ /Library/
drwxrwxr-x@ 130 root admin 4420 11 29 16:47 /Applications/
com.apple.metadata:_kTimeMachineNewestSnapshot 50
com.apple.metadata:_kTimeMachineOldestSnapshot 50
0: user:root allow add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown
1: group:everyone deny delete
drwxr-xr-x+ 70 root wheel 2380 11 17 01:07 /Library/
0: group:everyone deny delete
drwxr-xr-x+ 4 root wheel 136 11 10 05:51 /System/
0: group:everyone deny delete
drwxr-xr-x 7 root admin 238 11 9 23:23 /Users/
$ xattr -l /Applications/
com.apple.metadata:_kTimeMachineNewestSnapshot:
00000000 62 70 6C 69 73 74 30 30 33 42 2D 63 C3 7F 00 00 |bplist003B-c....|
00000010 00 08 00 00 00 00 00 00 01 01 00 00 00 00 00 00 |................|
00000020 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000030 00 11 |..|
00000032
com.apple.metadata:_kTimeMachineOldestSnapshot:
00000000 62 70 6C 69 73 74 30 30 33 41 BA 0F 06 67 00 00 |bplist003A...g..|
00000010 00 08 00 00 00 00 00 00 01 01 00 00 00 00 00 00 |................|
00000020 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000030 00 11 |..|
00000032
$
$ xattr -d com.apple.metadata:_kTimeMachineNewestSnapshot /Applications/
$ xattr -l /Applications/
com.apple.metadata:_kTimeMachineOldestSnapshot:
00000000 62 70 6C 69 73 74 30 30 33 41 BA 0F 06 67 00 00 |bplist003A...g..|
00000010 00 08 00 00 00 00 00 00 01 01 00 00 00 00 00 00 |................|
00000020 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000030 00 11 |..|
00000032
$ xattr -d com.apple.metadata:_kTimeMachineOldestSnapshot /Applications/
$ xattr -l /Applications/
$
$ ls -lde@a /Applications/ /Users/ /System/ /Library/
drwxrwxr-x+ 130 root admin 4420 11 29 16:47 /Applications/
0: user:root allow add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown
1: group:everyone deny delete
drwxr-xr-x+ 70 root wheel 2380 11 17 01:07 /Library/
0: group:everyone deny delete
drwxr-xr-x+ 4 root wheel 136 11 10 05:51 /System/
0: group:everyone deny delete
drwxr-xr-x 7 root admin 238 11 9 23:23 /Users/
$
→効果なし。これは(めんどくさかったのと、多分無くても問題無いから)戻してない。
・最後に、ようやく真相に辿り着く。※3
ファイル・フォルダの作成日時が「1984年1月24日 17:00」になっているじゃないか。
→この場合にFinderがアクセスできなくなることを確認したので修正!(Safariのダウンロードファイルと勘違い?)
$ ls -ldUT /Applications/ /Users/ /System/ /Library/
drwxrwxr-x+ 130 root admin 4420 1 24 17:00:00 1984 /Applications/
drwxr-xr-x+ 70 root wheel 2380 6 13 07:57:34 2014 /Library/
drwxr-xr-x+ 4 root wheel 136 9 10 07:23:08 2014 /System/
drwxr-xr-x 7 root admin 238 9 10 05:47:35 2014 /Users/
$ ls -ldT /Applications/ /Users/ /System/ /Library/
drwxrwxr-x+ 130 root admin 4420 11 29 20:15:06 2014 /Applications/
drwxr-xr-x+ 70 root wheel 2380 11 17 01:07:58 2014 /Library/
drwxr-xr-x+ 4 root wheel 136 11 10 05:51:14 2014 /System/
drwxr-xr-x 7 root admin 238 11 9 23:23:32 2014 /Users/
$
$ setfile -d "$(date -v-1y +'%m/%d/%Y %H:%M:%S')" /Applications/
ERROR: Unexpected Error. (-5000) on file: /Applications/
$
$ sudo setfile -d "$(date -v-1y +'%m/%d/%Y %H:%M:%S')" /Applications/
Password:
$ ls -ldUT /Applications/ /Users/ /System/ /Library/
drwxrwxr-x+ 130 root admin 4420 11 29 21:00:24 2013 /Applications/
drwxr-xr-x+ 70 root wheel 2380 6 13 07:57:34 2014 /Library/
drwxr-xr-x+ 4 root wheel 136 9 10 07:23:08 2014 /System/
drwxr-xr-x 7 root admin 238 9 10 05:47:35 2014 /Users/
$
$ sudo setfile -m "$(date +'%m/%d/%Y %H:%M:%S')" /Applications/
$ ls -ldT /Applications/ /Users/ /System/ /Library/
drwxrwxr-x+ 130 root admin 4420 11 29 21:01:36 2014 /Applications/
drwxr-xr-x+ 70 root wheel 2380 11 17 01:07:58 2014 /Library/
drwxr-xr-x+ 4 root wheel 136 11 10 05:51:14 2014 /System/
drwxr-xr-x 7 root admin 238 11 9 23:23:32 2014 /Users/
$
→めでたく、/Applicationsフォルダに元どおりアクセスできるようになりましたとさ。
■考察
・/Applicationsフォルダの作成日時が「1984年1月24日 17:00」になってしまったタイミングを
TimeMachineで追いかけたところ、HDDを WD Black2 に換装して、
TimeMachineからのフルリストアを実行したタイミングに一致した。
400GB程のデータ容量であるHDDのフルリストアは24時間以上もかかったが、
必ず起こるわけではないにしろ、このような不整合が発生するリストアは
かなり信頼性に欠ける気がする。(前評判通り、といった感じもした)
■エピローグ
当初、アクセス権の異常ばかり疑っていた私はひたすらディスクユーティリティで
アクセス権の修復を実行していたが、作成日時の異常はチェックできるはずもなく。
今回の手順で復旧はできるものの、他にも作成日時異常のファイルが存在して
いたりして…と思うとうんざり。時間のあるときに、Appleにクレーム電話しようかな。
■引用
※1:http://tkamada.blogspot.jp/2012/06/macos-xls-l.htmlより
※2:http://d.hatena.ne.jp/naokton/20111208/1323347463より
※3-1:http://indesigner.blog101.fc2.com/blog-entry-182.htmlを見て、初めてFinderがそんな仕様だということを知りました。THE アホ仕様。
※3-2:https://discussionsjapan.apple.com/thread/10113155に同じ目に遭っている人がいることを、対処後に気づきました。もっと早く気付けば無駄な時間を過ごさずにすんだのに。。。
※3-3:https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/SetFile.1.htmlにて、ファイル・フォルダの作成日時/変更日時の設定コマンド"setfile"の使用方法を確認。OS X独自コマンド…かな?