「Time Machine」で一日前に戻したら、キャッシュが消えたままに?

あるアプリケーションの操作ミスで、アンインストールが出来ない状況に陥り、其のアンインストール操作の前の「Time Machine」バックアップに戻しました。その後、そのアプリケーションも含めて動作は順調なのです。


一度だけですが、スクリーン・セイバー(iTunes Artwork設定)が動作した時に、「iTunesのファイルが無いので云々」いったメッセージがでたので、iTunes関係見ると問題なく、音楽も問題なく聞こえました。「Preferences/Desktop & Screen Saver」を確認すると「iTunes Artwork」が出ていて、PreviewもTestも動きました。


他方、別のスレッドで起動ドライブの保守の論議をしていて、/var/db/dyld/のcasheが気になり見てみると、空でした。そこで「Safe Boot: 起動音が聞こえてから(shift)+(command)」の後に、再起動をかけてみましたが、


u1@mmX75:~ $ ls -l /var/db/dyld/

total 0

drwxr-xr-x 8 root wheel 272 4 24 2012 shared_region_roots

u1@mmX75:~ $


その後、何度も起動・シャットダウンをしていますが、空のままです。


他方、少し前に「Safe Boot」を挟んで/var/db/dyld/が変化するかを見たログでは、

-----------------

2013-02-22-150726

total 1135984

-rw-r--r-- 1 root wheel 282607616 2 10 20:53 dyld_shared_cache_i386

-rw-r--r-- 1 root wheel 66652 2 10 20:53 dyld_shared_cache_i386.map

-rw-r--r-- 1 root wheel 298876928 2 22 00:41 dyld_shared_cache_x86_64

-rw-r--r-- 1 root wheel 66520 2 22 00:41 dyld_shared_cache_x86_64.map

drwxr-xr-x 8 root wheel 272 4 24 2012 shared_region_roots


-----------------

2013-02-20-141851

total 1135832

-rw-r--r-- 1 root wheel 282607616 2 10 20:53 dyld_shared_cache_i386

-rw-r--r-- 1 root wheel 66652 2 10 20:53 dyld_shared_cache_i386.map

-rw-r--r-- 1 root wheel 298799104 2 10 20:53 dyld_shared_cache_x86_64

-rw-r--r-- 1 root wheel 66520 2 10 20:53 dyld_shared_cache_x86_64.map

drwxr-xr-x 8 root wheel 272 4 24 2012 shared_region_roots



となっていました。少なくとも、「x86_64」の関連ファイルが"Safe boot"により変化した様に見えます。


これらのファイルが無くても良いのでしょうか、それとも、修復する為の手法があるものでしょうか?


なお、動作は至って正常です。コメントを下さると幸いです。

Mac mini, Mac OS X (10.7.5), Mac mini(mid 2011), iMac(late 2009)

投稿日 2013/02/25 22:45

返信
返信: 11

2013/02/26 01:32 mNeji への返信

これらのファイルが無くても良いのでしょうか、それとも、修復する為の手法があるものでしょうか?


これがないのが不具合の原因かはわかりませんが、下記のコマンドを実行すれば再生成されると思います。

sudo update_dyld_shared_cache

このコマンドは、システム関連のファイルをインストールする際にも実行されるので何かをインストールするだけでも再生成されるかもしれません。

2013/02/26 01:54 HAL への返信

HALさん、早速のコメントありがとうございます。



これがないのが不具合の原因かはわかりませんが、下記のコマンドを実行すれば再生成されると思います。

sudo update_dyld_shared_cache

このコマンドは、システム関連のファイルをインストールする際にも実行されるので何かをインストールするだけでも再生成されるかもしれません。


どうも何の為に、これらのファイルがあるのかも良く判らないので、無くても良いかを含めて謎です。


自分も検索で;


・Macのアプリケーションの最適化を手動で行う裏技 ← Inforati

・・http://inforati.jp/apple/mac-tips-techniques/system-hints/how-to-optimize-macos-application-manually.html


を見つけたものの、実行に躊躇しています。

2013/02/26 02:14 mNeji への返信

実行に躊躇しています。


"man update_dyld_shared_cache" と実行して内容を確認してみてもらえればわかりますが、Appleのインストーラやソフトウェア・アップデートの実行時に動作するプロセスなので実行して何か問題が起きるとはないと思います。

#バックアップがあるなら、何かあっても元の状態に戻せる訳ですし・・・

何事も経験ですよ。とりあえず試してみればそれが原因か、別に原因があるのかはっきりします。

#具体的にどう必要なものかはわかりませんが、それを再生成することで不具合が直ったならそれが必要ってことなのでしょう(大雑把)。

2013/02/26 03:47 HAL への返信

HAKさん:


"man update_dyld_shared_cache" と実行して内容を確認してみてもらえればわかりますが、Appleのインストーラやソフトウェア・アップデートの実行時に動作するプロセスなので実行して何か問題が起きるとはないと思います。

#バックアップがあるなら、何かあっても元の状態に戻せる訳ですし・・・

これを拝見した直後、TextWranglerの新版がでたので更新しました。念の為に、再起動かけて「/var/db/dyld」を見ましたが、ゼロのままでした。



何事も経験ですよ。とりあえず試してみればそれが原因か、別に原因があるのかはっきりします。

#具体的にどう必要なものかはわかりませんが、それを再生成することで不具合が直ったならそれが必要ってことなのでしょう(大雑把)。

そうですね。ただ、正しい状態が如何なのかが判らないと、いつまでたっても不安が拭えなとも感じます。本来なら、「Safe Boot」後のrebootでクリアされたcaceが作り直されのでは無いでしょうか(HT1564)。


切りのいい所で、二種類程のコマンドを試してみます。

2013/02/26 21:38 mNeji への返信

時間が取れたので、「sudo update_dyld_shared_cache -root /」コマンドを実行してみました。


恐る恐るRestartし、/dev/db/dyld/のリストを取ると;


---------------------

2013-02-27-142027

total 1135808

-rw-r--r-- 1 root wheel 282497024 2 27 14:18 dyld_shared_cache_i386

-rw-r--r-- 1 root wheel 66647 2 27 14:18 dyld_shared_cache_i386.map

-rw-r--r-- 1 root wheel 298897408 2 27 14:18 dyld_shared_cache_x86_64

-rw-r--r-- 1 root wheel 66515 2 27 14:18 dyld_shared_cache_x86_64.map

drwxr-xr-x 8 root wheel 272 4 24 2012 shared_region_roots


のようにゼロではなくなりました。前回の記録と微妙に違いますが……。


副作用が在るかどうか、少し様子を見てみます。

2013/02/26 22:49 mNeji への返信

試しに「Safe boot」して、Restartすると、


---------------------

2013-02-27-152053

total 552024

-rw-r--r-- 1 root wheel 269M 2 27 14:18 dyld_shared_cache_i386

-rw-r--r-- 1 root wheel 65K 2 27 14:18 dyld_shared_cache_i386.map

-rw-r--r-- 1 root wheel 65K 2 27 14:18 dyld_shared_cache_x86_64.map

drwxr-xr-x 8 root wheel 272B 4 24 2012 shared_region_roots


のように、x86_64のcacheが消失してしまいます。


面倒になって来たので「sudo update_dyld_shared_cache -force -root」を実行すると、即座に;


---------------------

2013-02-27-153254

total 1135960

-rw-r--r-- 1 root wheel 270M 2 27 15:31 dyld_shared_cache_i386

-rw-r--r-- 1 root wheel 65K 2 27 15:31 dyld_shared_cache_i386.map

-rw-r--r-- 1 root wheel 285M 2 27 15:31 dyld_shared_cache_x86_64

-rw-r--r-- 1 root wheel 65K 2 27 15:31 dyld_shared_cache_x86_64.map

drwxr-xr-x 8 root wheel 272B 4 24 2012 shared_region_roots


とアップデートされるようです。上のコマンドをスクリプトにしました。


少なくとも自分の場合、どこかが不調なのだろうなぁ。

2013/02/26 23:57 mNeji への返信

のように、x86_64のcacheが消失してしまいます。


当方OS X Mountain Lion 10.8.2ですが同様なのでそういう仕様なのだと思います。


少なくとも自分の場合、どこかが不調なのだろうなぁ。


具体的にどう不調なのでしょうか?

#スクリーンセーバも「一度だけ」とあるので今は問題ないのですよね?

2013/02/27 01:15 HAL への返信

HALさん:


当方OS X Mountain Lion 10.8.2ですが同様なのでそういう仕様なのだと思います。


そうですか。すると「HT1564、Mac OS X:セーフブート、セーフモードとは?」に記されているる;


Mac OS X 10.5.6 以降:(/var/db/dyld/) に格納されているダイナミックローダの共有キャッシュが削除されます。キャッシュに問題がある場合は、起動時 (特にソフトウェア・アップデート後)、青い画面が表示されます。コンピュータを再起動すると、通常はキャッシュが再び作成されます。

は、Lion以降については改訂されたのでしょうかね。でも、HT1564には「OS X Lion」は明示してあります。確かに「Mountain Lion」は在りませんね。


段々と、キャッシュの役割が理解できなくなってきました。


具体的にどう不調なのでしょうか?

#スクリーンセーバも「一度だけ」とあるので今は問題ないのですよね?

まだcacheが回復して来て、使った時間が少ないのですが、

・スクリーンセーバはその後、問題在りません。

・コマンドでcaceをアップデートして、「ClipMenu」が動作しなくなりました。Alfredで代行の予定。

・その他は、時間を掛けて、観察の予定。



今までは、保守には純正だけを利用するという方針でした。いよいよ、保守ツールを導入する必要が在るかも知れません、ふぅ〜。

2013/02/27 01:24 mNeji への返信

段々と、キャッシュの役割が理解できなくなってきました。


私は最初から個々のキャッシュの役割なんて把握していませんが、使用する上で支障を感じたことはありません。

# OS X Mountain Lionだと、/System/Library/Caches/com.apple.xpchelper.cache がないと動作に支障が出ることがあるので注意が必要ですが・・・

TimeMachineで復元できない機能について: Apple サポートコミュニティ


いよいよ、保守ツールを導入する必要が在るかも知れません


と判断される理由がわかりません。

2013/02/27 01:55 HAL への返信

私は最初から個々のキャッシュの役割なんて把握していませんが、使用する上で支障を感じたことはありません。

# OS X Mountain Lionだと、/System/Library/Caches/com.apple.xpchelper.cache がないと動作に支障が出ることがあるので注意が必要ですが・・・

私も、HT1564を良く読まなかった頃は、cacheについて考えた事も在りませんでした。


上で紹介された/System/Library/Caches/は、/var/db/dylb/とは別物ですね。参考に現在の自分のlistを出しておきます。


u1@mmX75:/System/Library/Caches $ ll

total 320

-rw-r--r-- 1 root wheel 41K 9 25 22:24 com.apple.Components2.SystemCache.Components

-rw-r--r-- 1 root wheel 58K 4 24 2012 com.apple.Components2.SystemCache.QuickTimeComponents

-rw-r--r-- 1 root wheel 8.6K 2 25 11:12 com.apple.IntlDataCache.le

-rw-r--r-- 1 root wheel 43K 2 25 11:12 com.apple.IntlDataCache.le.kbdx

drwxr-xr-x 3 root wheel 102B 2 25 11:11 com.apple.bootstamps/

drwxr-xr-x 3 root wheel 102B 2 25 11:11 com.apple.corestorage/

drwxr-xr-x 4 root wheel 136B 2 25 11:11 com.apple.kext.caches/

u1@mmX75:/System/Library/Caches $



と判断される理由がわかりません。

そうですね。言うならば、「漫然とした不安」みたいなものですので、現時点では説明が不可能です。

2013/02/27 19:42 mNeji への返信

昨日から/var/db/dyld/を復帰させて(update_dyld_shared_cache -root -force)から様子を見ていますが、特に問題はありません。


ひょっとして、/var/db/dyld/の効果は、最近のマシン性能の向上とともに、有名無実になっているのかも知れません。一応、時々/var/db/dyld/を確認して、/var/db/dyld/でのデータが無くなったら、今度は放置して様子を見る様にします。


今回の事が切っ掛けで、計らずも;

・"Safe Boot"のする事を確りと理解できた。

・"Console.app"の見方のこつが身に付いた。

といった効果を得る事ができました。


石頭の私に丁寧にご教授くださった、HALさんに感謝いたします。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

「Time Machine」で一日前に戻したら、キャッシュが消えたままに?

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。