anchor
テラバイトクラスの内蔵ディスクが残り容量20GBを切る危機!〜ディスクの中身を整理してみたのでその手順を公開
先日見つけたこんな記事が身につまされた。
MacBookのディスク容量が残り2GBという信じられない状況になっていたので、いろいろと削除して70GBまで復活させた道のりを記録してみる。 - Gadget Girl
実は私の愛機、MacBook Proも昨年内蔵ディスクを1TBのHDDに換装、AppleTVのメディアサーバーとなっているMac mini/Intelとライブラリを同期してファイル管理をユーティリティで簡単にできるようにした。
MacBook Pro大増量化計画発動!〜交換したディスクは500GB外付けバックアップディスクに
かつてはおにぎり型iMacに40GBの内蔵ディスクが入っていたのを見て
「このディスクが満杯になることなど永久に無いに違いない」
と思ったのに1年も経たないうちにディスク空き容量が無くなってしまったのと同じように、この無限容量に見えた1TBディスクも先日ふと気がついたら動画エンコード作業中に残り容量が20GBを切っていたことに気がついた。
これは危機的状態である!
ここでディスクの空き容量が足りないというのはどれくらいの空き容量のことを言うのかというのと、その場合どういう問題が出るかについて。
MacのようなUNIX系のOSはディスクにSwapという仮想メモリの領域を確保して、ハードに挿してある物理メモリに収まりきれない処理データをハードディスクに書き出しておくという動きをする。
Swapの正体は普通のファイルだ。
このファイルは当然書き出しするメモリの内容が多ければどんどん増えていく。
不要になったメモリの残骸はどんどん削除するようにしてくれればいいのだが、この中身も断片化しているのでシステムは大事を取って疑わしきは原則削除しないという動きをする。
つまりSwapはどんどん増えていく。
かつてはこのSwapは80MBからスタートしてふたつ目は256MB、3つ目は512MBなんてのどかな時代があったが、今は3つ4つぐらいからスタートしてGB単位でどんどん増えていく。
もしディスク空き容量が10GBぐらいしか無くて、そこに6GB、7GBという調子でSwapができていったらどうなるか?
MacのHFS+のファイルシステムはファイルの断片化を防ぐために空きスペースを使って、ファイルの書き込み位置を移動とかしょっちゅうやっているわけだが、空きスペースが無いのでそんなこともできない。
結果Macではあまり発生しないはずの断片化がどんどん起こる。
さらにGUIのインターフェイスは操作の画面を表示するためにグラフィックなどのキャッシュをどんどん貯めていく。
それもメモリが足りないと書き出しスペースが心細くなるので、やはりSwapを整理するためにSwapのリードアウトと削除を長時間かけてやり始める。
このために虹色のボールがぐるぐる回り始めていつまでたっても操作できない、フリーズしたような動きをし始める。
またMacBook Proのようなモバイルを使っている場合、ハイバネーションに備えて常にスリープメモリに実メモリの内容をバックアップしている。
これはバッテリが切れた時に作業中の内容が失われるのを防ぐためにメモリの中身をバックアップして強制的にスリープに入る機能がLionあたりから標準で稼働しているためだ。
この機能を有効にしているとこのスリープメモリに8GBの物理メモリを積んでいる場合は、常に8GB分のバックアップを取り続けている。
(最近の世代のOSXはコマンドを使わないとこの機能が無効化できなくなっている)
この書き出しも空き容量の領域に更新ファイルを書いて、旧ファイルを削除するということを繰り返しているので、もし空き容量が10GBしかないとこの更新も断片化した空きスペースを探しもっての作業となるので、これも虹色ボールの原因になる。
要するに何か切り替えたり操作するたびにいちいち虹色ボールがぐるぐる回ってひどい時は数分、数十分待たないと次のステップに進めないということになってしまう。
iPhoneなんかでも同じことだが、空きスペースはたっぷり持っておいた方が操作は快適になる。
それでこれらのSwapやハイバネーションメモリなどの数字を考えると「空き容量不足」というのはどれくらいのことをいうのかは自ずと計算できそうだ。
Swapが最大何個できるかを監視していて、それプラス数個分の余裕、あるいは実メモリの数倍の容量…
ここらあたりの数字を切っている場合ディスク空き容量不足と考えていい。
一般的には250GB〜500GBの内蔵HDDを積んでいる時に、やはり残容量10GBを切ったらもうピンチだと考えていい。
人によってはディスクスペースの25%を切ったら切迫状態で10%を切ったらピンチという人もある。
もし1TBのディスクを積んでいたら10%は
100GB
ということになる。
これが適正な数字かどうかは分からないが、要は内蔵ハードディスクの空き容量はやはりたっぷり確保しておけということだ。
それで上述のように10GB台まで空き容量が減ってしまった我が愛機のMacBook Proの内蔵ハードディスクはやはり、危機的状態だということだ。
以前は常時90〜100GB位の空き容量を確保していたのだが、ここのところ急激にディスク空き容量が減っていた。
それで何が空きスペースを圧迫しているのかをまず特定することにした。
上記記事では昨日紹介した
Magicanを使ってディスク空き容量を確保する方法も試したが、昨日の記事の通りこの方法で確保できた空き容量は1.4GBに過ぎない。
これだってそれなりの数字だが100GBの目標に対しては焼け石に水な感じがしないでもない。
Magicanを使ってディスクの無駄なスペースをスキャンした結果確保したのは1.4GB
ほとんどがPowerPCバイナリとキャッシュで削除済みアプリのゴミで
これ自体は結構大きな数字だが100GBという目標には遠く及ばない
まず上記記事に習ってこれも先日紹介した「このMacについて」のストレージの項目で調べたところディスクの使用状態が分かった。
やっぱり圧迫しているのはムービーデータなどだが、これはその領域を確保するためにこのHDDを入れたのだから除外するとして、それ以外では「その他」の項目が大きなスペースを占めている。
先日取り上げた「このMacについて」を使ってディスクの中身を見ると
ムービーデータについで目を引くのが「その他」という項目
(このキャプチャーはある程度作業が進んだ後なのでもう85GBも空き容量を確保してしまっている)
この「その他」という項目の内訳を詳しく知るために
やはりこういう目的では一番洗練されていると思われるDaisyDiskを使って調べてみた
「その他」にはシステムそのものの他に各種バックアップ、キャッシュ、
Swap、そしてVMWareの仮想ディスクが含まれることが判明した
このあとシステム領域の不要ファイルの削除の手順も紹介するが
100GB目標を達成する上でもっと効果的だったのはVMWare Fusionの
仮想ディスクを外付けハードディスクに退避させたことだったのは言うまでもない
これで空き容量を85GB確保したので目標の9割は達成されてしまった
ここでこの記事は終わってもいいくらいだ
ここでこの記事を終わってもいいくらいだと書いてしまったが、本当にここで終わったら前置きが長い割にはしり切れとんぼ感があまりにも強いので、もう少し試してみることにした。
上記記事でこのサポートコミュニティまとめ記事が紹介されていて、これがなかなか有用なのだがコマンドを使って不要なファイルを探すというのがやはり一般的なユーザには馴染みにくいと思う。
ハードディスクの空き容量が極端に少なくなる場合の対処方法- Apple サポートコミュニティ
そこでコマンドを使わないでGUIでこの領域を探す手順を以下にキャプチャーで紹介した。
ここで紹介されているいくつかの項目のうち、
「ああ確かにあるある」
と思ったのは以下の項目。
Time Machineのローカルスナップショット (/.MobileBackups)
Lionよりデフォルトで有効になったローカルスナップショット。
これはモバイルの場合最近変更されたファイルの履歴を内蔵ディスクに保存する、いわばローカルTime Machineのような機能。
もちろん内蔵ディスクの全域をバックアップするわけではなく差分だけをバックアップしていくのだが、それでもそのバックアップ領域は数GB〜十数GBになるはず。
どういうファイルを変更したかでそのサイズは劇的に変わる。
そこらの事情と、初期のLionではやはりバックアップ作成中はシステムが重くなる癖があったので私の場合この機能は切ってある。
(こちらのスナップショットを殺してみる〜やっぱり重いぞLion!?を参照)
この機能が切ってある場合/.MobileBackupsというディレクトリが無いのを確認すれば問題無い。
切っていない場合はこのディレクトリが異常なサイズになっていないか確認する
スリープ時に作成されるsleepimageファイル (/private/var/vm/sleepimage)
これは上述したモバイルでバッテリ切れになった時に、メモリの中身を保存して強制ハイバネーションに入るためのメモリバックアップ。
これは/private/var/vm/sleepimageに物理メモリの実サイズプラスαのスリープイメージができているはずだ。
この機能を切っている場合はこのファイルを削除する。
切っていない場合は削除してもまたすぐに生成されるので意味は無いが、実メモリのサイズに比べて何倍もの巨大サイズに肥大化している場合はやはり異常なので削除してみるのは手だと思う。
ハイバネーション時の実メモリのバックアップはこの/private/var/vm/sleepimage
この場合8GBの物理メモリに対して8.59GBのスリープイメージができているのは正常
これが異常に大きくなっている場合は削除してみる
ちなみのその下に並んでいるのが仮想メモリのSwapの実体で
これが結構デカいのだがこれはいじり様が無いので黙って見過ごすしかない
iOSデバイスのバックアップファイル (~/Library/Application Support/MobileSync/Backup)
iPhone、iPad、iPod touchなどiOSのデバイスを使っていて、これをiTunesを使って同期、アップデート、バックアップなどを一度でもやったことがある人はこの対象になる。
iCloudを使っている場合はそちらにバックアップがあるはずなので、ローカルでバックアップを持つ必要が無い。
またクラウドは信用できないので、ひとつはバックアップを持っておきたいという場合も、過去の履歴分だけたくさんバックアップを持っている必要は無い。
問題無く稼働した一番新しいバックアップだけがあれば、それより古いファイルは必要ない。
Terminalを起動せずコマンドを使わず作業をするためにこういう準備が必要
不可視ファイルを見えるようにするユーティリティを使い不可視ファイルをFinderに表示させる
私はMainMenuを使っているがこういうアプリはいくつかある
~/Library/Application Support/MobileSync/Backupのサイズを調べるとここだけで11.6GB
これが結構デカい
これの削除はiTunesから実施する
設定の「デバイス」に入って過去のバックアップ履歴を確認し
不要な物を「バックアップを削除」ボタンで削除する
iOSデバイスのアップデートファイルが残っていたら削除(~/Library/iTunes/iPhone Software Updates)
これは元記事には無い追記だが、iPhoneなどのiOSのアップデートをダウンロードしたままアップデートを延期した場合、アップデートファイルがMac側に残ってしまう。
これは意図的に削除してやらないと自然に消えないようだ。
場所は~/Library/iTunes/iPhone Software Updatesの中にあるのでここをチェックすればいい。
Daidy Diskでサイズの大きいファイルを探していて発見したiOSのアップデートファイル
これ一個で軽く1GBを超えている
これはユーザ領域の~/Library/iTunes/iPhone Software Updatesにあり不可視ファイルでもない
レゴアイコンのアップデートファイルがあるのでこれを削除する
一個でサイズが1GBを超えているのでいくつも貯めてると
結構ディスクサイズを圧迫している可能性がある
以上の手順を実施したところさらに11GBディスク空き容量を確保できた
一応目標の100GBに近い数字まではいったので目標達成とした
他に私の場合は該当しなかったが、以下の場合は過去の経験からいって結構あり得ると思ったので紹介しておく。
コアダンプファイル/cores
システムがクラッシュした時、テクニカルサポートのデバッグ用に主にメモリの内容をテキストに書き出すコアダンプファイルが残っているケース。
最近のOSXはカーネルレベルでクラッシュする「カーネルパニック」をほとんど出さなくなった。
操作不能になるクラッシュはたいていはその上のアプリやシステムUIサービスなどのGUIのサービス部分でしか起こらないので、コアダンプファイルってほぼ吐き出さなくなった。
これはWindowsでいうところのmini dumpまたはcrash dumpと同じような物で、システムが勝手に再起動するとか、落ちるとかいう時にその原因を究明するのに有効なログになる。
これを見ることで少なくともクラッシュがハード原因で起きているのか、システム原因で起きているのかなどを切り分けできる。
だが素人ユーザで最近クラッシュも起きていないというのなら、このファイルは残しておいてもあまり意味がない。
コアダンプファイルは不可視領域の/coresの中にある
ここを覗いて空っぽなら問題ない
ログ、アーカイブログの削除 /private/var/log
以前サーバメンテナンスの記事のところで書いたかもしれないが、Macのシステムログなどは/private/var/logに入っている。
コンソールを起動したら見えるあのログだ。
そういう物が大量に溜まっていると、またこれが数GB容量を食っているなんてこともある。
これは削除するユーティリティがいくつかあるが、愛用のMain Menuではなぜか削除コマンドが効かないので手動で整理してしまってもいいかもしれない。
全削除しても再起動すれば新しいログファイルは生成されるしアーカイブドログだけならただ削除するだけでも問題無い。
ルートユーザのゴミ箱 (/private/var/root/.Trash)
Compressorなどの一部のアプリの書き出しが失敗した時に、そのテンポラリファイルがルートユーザのゴミ箱に移動されて削除できなくなるという問題が起きるらしい。
これは昔のバージョンのMacOSでCDRの焼き込み失敗でできた暫定ファイルが不可視状態のままでどんどん積み上がっていくというバグがあったが、こういう問題は他のアプリでも起きるかもしれない。
ルートユーザを有効にしてユーザID=rootでログインすれば「ゴミ箱を空にする」で削除できるかもしれない。
ただ私はrootでログインし直すのがめんどくさかったので、これはTerminalを起動して以下のコマンドを打った。
sudo du /private/var/root/.Trash
Terminalを起動してsudo du /private/var/root/.Trashとコマンドを打ったが
「そのようなディレクトリは存在しない」との返信
実際lsコマンドで確認したが.Trashというディレクトリは生成されていなかったので問題無い
プリンタがらみの問題で /private/var/spool/cups/tmp 内に大量のファイルが残っていた
プリンタのタスクが失敗した場合タスクがプリントキューから削除できれば問題無いが、これが共有プリントの失敗とか何らかの理由で中断して上記プリンタスプールのテンポラリディレクトリに残ってしまう場合があるらしい。
/private/var/spool/cups/の中はシステム領域なので
不可視ファイルを表示する設定にしても中を覗くことはできない
だが「情報を見る」でそのサイズを確認することはできる
この場合フォルダ全体で25KBしかサイズが無いので問題は無い
Norton AntiVirusが /private/var/tmp 内に大量のファイルを作成していた
これはNortonに限ったことではないが、ウイルス対策ソフトが定義ファイルの置き場所として/private/var/tmpに仕掛かり中のファイルを残してそのままになってしまうケースが稀にある。
それ以外のネットから何かを落としてくるタイプのアプリはブラウザも含めてその可能性があるのだが、たいていは大した問題になならないがなぜかウイルス対策ソフトではこれがどんどん溜まることがあるようだ。
これもチェックは簡単で/private/var/tmpのサイズを「情報を見る」で確認すればいい
私の場合8KB程度で問題無かったがここが異常にデカい場合は何か起こっていると考えるべき
QuickTimeがらみの不可視ファイルがデスクトップ (/Users/username/Desktop) 内に残っていた
これもQuickTimeがらみで何かをエンコードしようとしてそれが失敗して、そのテンポラリーファイルがデスクトップに不可視ファイルとして残ったというケースで、昔のCD-R、DVD-R書き出し失敗のケースと似ている。
対策は不可視ファイルを表示する設定にして、デスクトップのファイルのリストを見ればいい。
.QT-0384-c51a6aa3-bfffdf2c-00とかドットで始まるファイル名で異常にデカいファイルがあればそれはゴミだから削除すればいい。
不可視ファイルを表示する設定にしてデスクトップを
カラム表示にすればドットで始まるファイルネームが上にくる
正常ならここには.DS_Storeと.localizedというファイルがあるだけのはずだが
.QTなどで始まるGB単位のファイルがある場合は何かの書き出し、
エンコードの失敗の時にできたゴミだから削除していい
2013年5月13日