通知センターの計算機の問題

確定申告の時期ということもあって High Sierra の通知センターにある計算機ウィジェットを使っていたところ、2本指スワイプのジェスチャーで呼び出す度に表示が一定値に固定されるという問題に悩まされました。

調べると幾つか類似の報告がある中で MacRumors のフォーラムに解決方法がありました。

http://hkitago.tumblr.com/post/171078016921

フォーラム内にもこの plist ファイルの中身を覗いてみた人がいらしたので、一応確認しました。

ファイル情報を確認すると High Sierra へ更新する前のもので、察するに前仕様で使っていたファイルが残っていて呼び出す毎に読み込んでいたのだろうかと思います。

報告を見ていると色んな数字にリセットされるようなのですが、面白かったのは MacRumors のフォーラムの2ページ目に同じ “375” になった方がいらしたことです。表示数をファイルに保存して起動毎に読み込んでいたと想像した前仕様にしては奇遇過ぎるので実際にどんな数字を保存していたのかとても気になるところです。

参考:

大文字/小文字を区別「する」から「しない」HDDへの移行方法

直前の投稿でさらっと作業内容の詳細を述べずに進んでしまった次の部分について追記します。

解決方法は「大文字/小文字を区別しない」ディスク形式にするより他無いらしく、一旦別の「大文字/小文字を区別しない」ディスクを用意してデータを往復させることにしました

情報源: photoslibraryを置くディスク形式 – hkitago software development

写真アプリのライブラリを「大文字/小文字を区別する」から「大文字/小文字を区別しない」ディスクへコピーしようとすると当然次のようなエラーを返してきます。

“写真 Library.photoslibrary”はコピーできません。コピー先ボリューム上に同じ名前の別の項目が存在しており、コピー先ボリュームはファイル名の大文字/小文字を区別しません。

そこでまず思いついたのが、TimeMachine バックアップが登場する以前に利用していた rsync コマンドでした。

http://hkitago.tumblr.com/post/169802245421

単に自分で配置したファイル群であればこのやり方で問題が無いのですが、iTunes や写真アプリのライブラリは別途データベースでファイルを管理していて整合性が取れなくなってしまう懸念があって却下しました。

次に考えたのが、ライブラリをコピーする前に実際にどのファイル名が大文字小文字違いで重複しているのかを調べて、iTunes や写真アプリ内からファイル名を変更すればデータベースもそれに応じて変更されるだろうというもので、次のコマンドを利用しました。

http://hkitago.tumblr.com/post/169756177861

iTunes ライブラリではアーティスト名やテレビドラマ名の先頭が大文字のものと小文字のものが混在していたので、アプリ内からそれぞれ変更して対応することができました。

ところが写真アプリでは、編集した写真のファイル名の拡張子を小文字にしてデータを複製するという古い iPhoto 時代の仕様が悪さをしていたようで、アプリ内からのファイル名変更ができず10枚ほどしかなかったこともあってこれらのファイルをファインダー上で順に削除しました。

そして TimeMachine の「今すぐバックアップを作成」を実行し、「大文字/小文字を区別しない」ディスク形式へフォーマット後にデータを3日ほど掛けて戻しました。

photoslibraryを置くディスク形式

Bluetooth の仕様が変更になった影響でポケゴープラスが使えなくなった問題が解決したのでようやく iPhone を iOS11 に更新し年末年始に撮り溜めていたカメラのデータを High Sierra の写真アプリに取り込もうとしたらこのようなエラーを表示しました。

この “jpegvideocomplement” を検索語に調べてみると、写真アプリのデータである photoslibrary が格納されているディスク形式が「大文字/小文字を区別」している場合に起きるということが分かりました。

http://hkitago.tumblr.com/post/169719340056


また原因を同じとして起きる問題に Live Photos (ライブフォト) を読み込めなくなることがあるようで、実際に High Sierra に更新する9月末以降のライブフォトがライブラリにありませんでした。

解決方法は「大文字/小文字を区別しない」ディスク形式にするより他無いらしく、一旦別の「大文字/小文字を区別しない」ディスクを用意してデータを往復させることにしましたが、同じディスクに置いていた iTunes ライブラリなど含めて 2.5TB ほどあるので時間が掛かって仕方ありません。

また関連して、少し前に画面撮影のデータが読み込めない問題があったのですが、


ファイル名に時間を付けないことで回避したように思えて、上述したディスク形式の問題で結局読み込めないという羽目になっています。

今回の教訓として iOS11 と High Sierra へ移行するにはディスク形式に注意すべきでしたが、単に APFS の内蔵ディスクを使う一般的な環境下であれば特に気にする必要がありません。

http://hkitago.tumblr.com/post/169719429926

ただ APFS は SSD に最適化した形式なので、外付け HDD は Mac OS 拡張 (HFS+) のままで十分かと思います。今後写真データは増えて行く一方だと予想できるので、一時的な作業場所として APFS の内蔵 SSD と保管用の HFS+ の HDD とライブラリのデータを分けて管理する必要があるのかなと感じると同時に、写真アプリは起動時にオプションキーを押すことでライブラリの切り替えが容易になっていますが、アプリ内でデータを別のライブラリに移動するような機能があると便利な気がしました。

参考:

High Sierraで不明なログイン項目を削除する

High Sierra へ移行してから気持ちが悪かった事の一つに、システム環境設定>ユーザとグループにあるログイン項目に不明な項目が30個ほど並んでいるという現象がありました。

公式のサポートフォーラムでも同様の質問があり、従来の ~/Library/Preferences/com.apple.loginitems.plist やキャッシュファイルの削除という方法が使えなくなってしまいその時点では有益な回答がありませんでしたが、一ヶ月ほど経ってもう一度確認してみると解決方法を見つけた人がいました。

http://hkitago.tumblr.com/post/166022085256

具体的には、~/Library/Application Support/com.apple.backgroundtaskmanagementagent/backgrounditems.btm をゴミ箱やデスクトップなどに移動して再起動すると直ります。

実際には参考にあるギリシャ語サイトを先に見つけましたが、投稿の日付を見るとサポートフォーラムの方が早いようで流石本家は違うなと感心。

参考:

photoanalysisdプロセスの挙動 High Sierra編

近年更新毎に何かのプロセスが悪さをしてくる MacOS ですが、引き続き photoanalysisd プロセスが昨年のものとはちょっと違った挙動をしていたので紹介します。iTunes と 写真アプリのライブラリは 4TB の外付けドライブに置いているのですが、排出しようとした時に次のようなエラーを返してきたことで発見しました。

そこで lsof コマンドを使って調べてみると、photoanalysisd プロセスが写真アプリを起動していないにも関わらず常時ライブラリの中にあるデータベースファイルを読んでいることが分かりました。これは OS の起動直後から開始しているようで、アクティビティモニタを見ても CPU 時間が圧倒的な数値を記録しています。

hkitago$ sudo lsof | grep /Volumes/TOURO\ Desk/
photoanal 497 hkitago txt REG 1,18 32768 6114807 /Volumes/TOURO Desk/写真 Library.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db-shm
photoanal 497 hkitago 29u REG 1,18 45486080 6114800 /Volumes/TOURO Desk/写真 Library.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db
photoanal 497 hkitago 30u REG 1,18 4152 6114806 /Volumes/TOURO Desk/写真 Library.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db-wal
photoanal 497 hkitago 31u REG 1,18 32768 6114807 /Volumes/TOURO Desk/写真 Library.photoslibrary/private/com.apple.mediaanalysisd/MediaAnalysis/mediaanalysis.db-shm

「強制的に取り出す」を選択すると取り出すことはできた(データベースファイルの破損も気になる)のですが問題は起きなかったので、このことから設計志向を察するにメディアファイルを外付けディスクに配置することは例外なのかと思う一方、近年の SSD の普及などから内臓ディスクの容量は小さくなっていることや、iCloud ストレージを売り出したい意図などを考えると唸ってしまうものがあります。

関連して mediaanalysisd プロセスが DarkWake (ディスプレイスリープ)時に CPU を常時 50% ほど使っていることがあったりとやはり OS アップデートは人柱になること請け合いで、当面は iTunes や写真アプリを使わない時は外部ディスクを排出しておくという措置しかなさそうです。ただ、妻のアカウントでは状況が同じにも関わらず問題が起きないので発生条件は不明なのが不思議なところで、解決方法をもう少し模索したいと思います。

参考: