Previous  Index  Next


2019 年 8 月 20 日




anchor

MacBook ProとMac miniのHDD、SSHDを2TBに増量したところTime Machineが容量不足で失敗するようになった〜RAIDでとりあえず切り抜ける

(なお、口絵写真と本文は関係ありません)

先日Mac miniのSSHDが飛んだのをきっかけにSSHDを2TBに増量、併せてMacBook ProのFusionDrive化したストレージを256GB/SSD+1TB/HDDから256GB/SSD+2TB/HDDに容量を増量した。

容量を増量したことで空き容量に余裕が出てきたので、外付けHDDに退避させていたムービーなどの大容量ファイルを内蔵ディスクに戻してMacBook ProとMac miniでミラーリングしたところ、両方でTime Machineのバックアップが失敗するという問題が起きた。

Mac miniのTime Machine用外付けHDDは1TBだったので2TBのバックアップが失敗するのは当然だったが、MacBook Proの方は2TBを超えないようにしていたがそれでもやはり2TBのTime Machineバックアップは2TBのHDDにはできないらしい。





Mac mini、MacBook ProともにTime Machineが失敗するようになった
原因は容量不足でMac miniの方は2TBのバックアップは1TBには入らない
という単純な問題だったからバックアップディスクを買ってくれないケチな会社に
持ち込んでいた私物の2TBディスクを持ち帰って解決した
問題はMacBook Proの方




MacBook Proの方のTime Machineボリュームは前から2TBだったが
2TBのTime Machineバックアップは2TBのHDDには入らないということらしい
そこでこれまでのRAID構成を全面的に見直してTime MachineバックアップHDDと
ファイルバックアップHDDをそれぞれ1TBHDDとRAIDを組んで冗長性バックアップを再構築した




これまでは2TBのTime Machineバックアップと2TBのSeagate、
2TBのバックアップはディスク、1.4TBのRAIDバックアップでファイルによっては
3重のリダンダンシーを確保していたが3重は意味がないと判断してこれを再構成することにした




Time MachineとSeagateはそれぞれ1TBのHDDとコンタードRAIDを組んで3TBとした
バックアップHDDはUSBハブの口数の関係で320GBしか増量できなかったが
当面のファイルバックアップはなんとかなるのでしばらくしたらハブの増量、
HDDの増量で順次対処することにして今は目先のバックアップを作成することを優先した




こうしてストレージに退避させているファイルの冗長性と
Time Machineバックアップが3日かかってやっと再構築できた


実は先日MacBook Proが突然電源が落ちて起動できなくなるという問題が起きたことを先日書いた。

その時にまだTime Machineバックアップが取れていなかったので、結構ヒヤリとした。

Macのバックアップに関してはOS Xに移行した割と早い時期、まだMacがTime Machineを実装する前からCarbonCopy Clonerを使って起動ボリュームの起動可能な全域バックアップを常時作るという安全策をずっと実施してきた。

CarbonCopy ClonerTime Machineの運用は、合計するとかれこれもう15年以上は続いていると思う。

だからOS Xのバックアップなしの運用というのはこれまでほぼやったことがないし、実際このバックアップがあったおかげでデータが救われたことが何度もあった。
MacユーザでTime Machineバックアップを取っていない人には、他の何を犠牲にしてもいいからとにかくTime Machine用の外付けHDDだけは一刻も早く購入しろと薦めてきた。

その自分がこのディスク増量のタイミングでバックアップ無しの状態でMacBook Proが起動できないというトラブルに巻き込まれるなんて不覚を取った。
実は本当にバックアップが完了するまではヒヤヒヤだった。


コンタードRAIDのTime Machineバックアップなんて、ディスクが片方故障したら使えなくなるじゃないかという問題もあるが、故障したらそのディスクを交換してまたバックアップを取ればいいんだし今は目先バックアップを作ることが最優先課題で、いずれそのうち3TBのHDDも購入することでその問題はおいおい対応する。


そういえば私はMacの運用でバックアップが必要ないなんて一言も言ったことがないし、むしろ今回のようにTime Machineボリュームが死ぬと呼吸ができないぐらいの不安に陥るほどの小心者だ。

なのに「このMacサイトに書いてあることを実行したらディスクのデータが全部飛んだ」という逆恨みをされたことが一度や二度はある。

「このサイトに書いてある通りに実行した」というが私はバックアップを取らずにクリティカルなことをやってもいいなんて一言も書いたことがないし、リスクがある作業はリスクがあると書いてきたと思う。

よく読みもしないで失敗したら人のせいにして、しかもバックアップを取っていないことまでこちらの所為にされては適わない。

もう昔のことだし、今は誰も読んでないような地味なサイトになってしまったからどうてもいいが繰り返し強調すると

「他の何を犠牲にしてもいいから外付けHDDをすぐに購入してTime MachineなどでMacの内蔵ディスク全域のバックアップを今すぐ構築しろ」

そしてHDDやSSDは長年使っていると歩留まりで必ず一定の割合は死ぬので

「バックアップは必ず複数持て」

ということも言っておきたい。











2019 年 8 月 11 日




anchor

MacBook Proが突然ダウン…電源ボタンを押しても無反応に…バッテリーケーブル差し直しで治る?

今朝の出来事、バックアップディスクからMacBook Proにバックアップのファイルを数十GB戻していた作業中、突然
「ヒューーッ」
と言ってMacBook Proの電源が落ちる。

電源ケーブルはちゃんと刺さっていてLEDも光っている。
念のためにバッテリーのチェックLEDも確認したがバッテリーは満充電の状態で正常に点灯している。

しかし電源ボタンを押してもうんともすんとも言わず…起動を示すLEDも光らない。

先日交換したHDDが原因かとも一瞬思ったが、起動ボリュームが認識できないのではなく電源ユニット自体が稼働していないのでファームウエアを読み込むところにも行ってない。

要は石が焼けたか、電源ユニットが完全にお亡くなりになったかのような感じだ。

ハードウエアの故障かどうかを切り分けたいが、とにかく電源が入らないとどうしようもない。

もう10年目に突入するので、ついに寿命でお亡くなりになったか…
と覚悟を決めかけたが、一応悪あがきをしてみようということで開腹手術を敢行。





底板パネルを外して起動テスト…するもやはり電源を入れても
ファンも回転せず通電している様子がない
電源ケーブルを抜いてバッテリー駆動でも全く無反応
ここでふと思ったのはファームウエア起動には内部電源が必要だが
この世代のMBPは内部電池をバッテリーで代用しているので
電源ケーブルを抜いた状態でバッテリーケーブルも抜いて電源ボタン押し下げ
バッテリケーブルを差し直しでリセットできるかもと試したところこれがビンゴだった




起動後初回にGUIに入った時にはCPUが91℃にもなっているのに
ファン回転数が2000rpmから上がらないところからNVRAMも
やられているかもしれないと思いPRAMクリア(コマンド+option+P+R)で
起動し直したところちゃんとファン回転も上がるようになった




電源ボタンが無反応の間もバッテリーLEDは点灯していた
バッテリーそのものの不具合というよりもファームウエアの読み取りに問題が起きたか…


結論から言うと熱暴走の可能性もあるが、当時の室温はそんなに異常に高くなかったことからバッテリーかNVRAMかのメモリ内容が破損して起動状態が維持できなくなり、再起動もできなくなったということのようだ。

電源ケーブル、バッテリケーブルを抜いて起動の操作をしてバッテリケーブルを差し直したら起動できるようになったので、その操作でリセットされたようだ。

その後何度か再起動したり、コールドブート、大容量ファイルの転送などの負荷をかけているが再発がないのでどうやら治ったらしい。


が、MacBook Proが今壊れたらとても困ることになるでの、ここはMacのリダンダンシーを確保するべきだと感じた。

要するにそろそろ新しいMac買えという天の啓示か?



2019 年 8 月 6 日




anchor

ログオフ時、あるいはfsckコマンドやAppleJackをかけるとCoreStoragePhysical:: issueUnmap: unmap retuned e00002c7というメッセージが大量に出る

先日来書いているようにMacBook ProのFusionDriveの片割れのHDDを2TBのSeagateに換装したところ、システム終了時とfsckをかけた時にCoreStrageのメッセージが大量に出るようになってしまった。

メッセージの内容は以下のとおり
CoreStoragePhysical:: issueUnmap: unmap retuned e00002c7

CoreStorageの物理ドライブのUnmapの問題「unmapがe00002c7を返してきている」
というような意味合い。

これはどういうことかググってみたがぴったり同じケースが見当たらない。

一つだけ、MavericksでFusionDriveを使用していたら虹色ボールの回転が止まらなくなったという事例がフォーラムに質問があり、これはFusionDrive化したディスクが不適切なドライブを使用していたためBad Blockができているというエラーを返してきているという回答があった。

参照
macbook - Mavericks unusable (beach ball) when CoreStorage fails - Ask Different





シングルユーザモードに入ってfsckコマンドを実行したところ
Trimメニューで上記のメッセージを連打してくるようになった
ディスクを交換するまではこんなメッセージはみたことがなかった




Trimメニューの返り値でメッセージが出ているのでDisk Sensei
Trimを有効にしているのが関係しているのか確認したがそういうことでもなさそうだ




よく似た例で上記のFusionDrive不適合でBadBlockができている
というケースがあったがよく見ると返り値がチョット違う
ググった事例はe00002caだが今回連打しているのはe00002c7




e00002caのケースではFusionDriveを構成しているドライブにBadBlockができているため
ということだったのでDisk Senseiにドライブエラーが出ていないかを確認したが
特に修復不可能なBadBlock、不良セクターなどの情報はなかった




上はSSDの情報でこちらはHDDの情報
同じく問題はなさそうだ


そもそもこのUnmapとはなんぞやという話だがVMWareの話だがこちらに解説があった
iDATEN(韋駄天)| vSAN6.7Update1新機能 UNMAPを設定してみよう

TrimメニューとセットでFS上では削除されているがディスク上に残っている使用領域を削除するTrimとその領域のマッピングを解除して再使用可能にするUnmapでセットになっているということらしい。

今回その再利用できるスペースのマッピング解除の過程で「e00002c7」を返してきているということだが、このエラーコードもググるとネットワーク系のハンドシェイクに失敗みたいなエラーしかでてこない。

それでググって出てきたフォーラムで紹介されていたBadBlockを検出するコマンドを試してみた。

コマンドは以下。
sudo dd if=/dev/rdisk0 of=/dev/null bs=64k
root権限でdisk0を頭から順番に64k単位で読み出していくというような意味合いのコマンド。

ddは本来はデータのコピーやバックアップをするコマンドだが、この場合書き出し先のof=以下がnullになっているので、読みだすだけで書き出さないコマンドになっている。
disk0がrdisk0になっているのは、通常の割込み処理ありの読み出しではなく頭から順番通りに読みだすということ。

bsはブロックサイズの指定ということになる。

読み出して行って読み出しができない不良ブロックがあれば、エラーが出る筈という目論見でこのコマンドをかけてみよということだ。





で、やってみたんだけど相当な時間がかかってtransfer成功…つまりドライブには異常がないということになる


結局なんなのかよくわからないしエラーなのかどうかすらわからないのだが各種チェックでも異常がないということなので、もう気にしないことにした。

どのみちダメならそのうち内蔵ドライブが死ぬことで問題が判明するだろうから、その時にまた報告することにする。



2019 年 8 月 4 日




anchor

FusionDrive化したMacBook ProのHDDを2TBに交換する2〜再インストールしたらTerminalのセキュリティ対策が無効になった〜bashrcのルールが変わったYosemite以上の対策法

先日MacBook Proの内蔵HDDを2TBに換装して、256GBのSSDと2TBのHDDのFusionDrive化した。

結果は良好で、コマンドを間違えて一回は失敗したがやり直したら起動も順調でネットワーク設定や同期設定などすべて交換前の状態を復元できて前の環境に復帰した。

本当にTime Machine様様だな。
昔は一度OSをインストールしなおしたら初期設定などの環境の復元に何日もかかったのに、今はTime Machineワンクリックで1TBのユーザファイルも1日で復元できる。

ユーザ領域にあるものはだいたい問題ないのだが、それ以外の領域にあるものはYosemite以降Macのアクセス権が小難しくなったので復元は逆に面倒になった。

例えばTerminalなどのシェルの環境変数。

私の場合、Terminalに変なスクリプトを食わせられないように自分が承認しないバッチファイルは自動起動できない安全策を講じている。
詳細はこちら。
Terminalを自動起動して悪意あるコードを実行されるリスクを回避するコード

これはTerminalのbashのbashrcに追記する形で設定している。
以前のバージョンはbashrcは
~/.bashrc
にあってテキストエディタなどで自由に編集できたのだが、macOSのセキュリティの考え方が変わってbashrcは今ではユーザ領域にはない。





ユーザ領域直下にはシェルのコマンド履歴を記録する.bash_historyだけがあってbashrcが無くなってしまった
Terminalなどを起動した時に振る舞いを決定するbashrcは
不可視領域に移動してユーザには触らせない方針になったようだ




Terminalの振る舞いを決めるbashrcは/private/etc/bashrcに移動した
そしてこの領域はrootのアクセス権がないと書き換えやファイルの移動すらできない




そこでbashrcの追記はTerminalでやることにした
suでrootになってecho '(追加したい構文全文)' >> /etc/bashrcとすると
bashrcの末尾にカッコの部分の構文が追記できる
more /etc/bashrcで追記できたかどうか確認することもできる




見るだけならCotEditorなどのテキストエディタで確認することもできる
bashrcの末尾に先ほどのコードが追記されているのがわかる




ただスペースなどの解釈がテキストエディタとTerminalでは違うようで
四角い枠に凹みができてしまった




これを直すのにテキストエディタでは上書きができないので結局Terminalでviを使うことにした
suでrootになってvi /etc/bashrcと打つとviのエディット表示でbashrcの中身を表示できる
ただviを使うのは久しぶりなので使い方を忘れてる…


viの使い方に関しては便利なまとめサイトを見つけた。
viエディタの使い方

ただこういうサイトって何年か経つと消えてしまうことが往々としてあるので、念のためにバックアップ
viの使い方

必要な部分だけ書いておくと
カーソル位置から挿入で編集モードに入る=i
編集モードから抜ける=esc
一文字削除=x
一行削除=dd
セーブせずに終了=:q!
セーブして終了=:wq!(保存して終了は!をつけろという警告が出たのでリンク先の記述とは違うが)

こんなところかな‥





suでviを使い編集した結果表示がちゃんとなった
別に枠がずれてても機能には影響はないのだがやっぱり見た目が悪いから直せて良かった


2019 年 8 月 3 日




anchor

FusionDrive化したMacBook ProのHDDを1TB→2TBに交換する手順〜まずは論理ドライブを解消しないとね

先日Mac miniの内蔵SSHDが壊れたので1TBから2TBのSSHDに交換した話を書いたが、こうなったら相方のMacBook Proも一気に2TBに上げてしまえということになった。

iTunesのライブラリを共有しており、その管理用に別途ファイルサーバーを立ててリモート管理するよりMacBook Proでファイルを管理して、Mac miniには同期するだけという風にしたほうが手間も少ないしバックアップもそれぞれ取っているのでリダンダンシーが強化されて万一の故障の時も安心。

実際、今回Mac miniのストレージが飛んでデータが死んでも全く慌てなかったのは、Mac miniのTime Machineと、MacBook Proのバックアップ、Time Machineにそれぞれ同じデータが残っているので、不幸に不幸が重なっても大丈夫というシステムができていたから。

それであちらが2TBになったのならMacBook Proも2TBにした方が無駄なスペースが活用できるし同期も楽…ということで同じくSEAGATEの2TBの今度はHDDを購入した。

口絵のSeagate Barracuda 2.5インチ 2TB 内蔵ハードディスク HDD 6Gb/s 128MB 5400rpm ST2000LM015というやつですね。
今度は間違えて並行輸入品注文ではなくちゃんと国内から購入したので2週間ではなく2日ほどで届いた。

SSHDではなくHDDにしたのは、いうまでもなく256MBのSSDと相方にしてFusionDrive化していたHITACHIの1TB HDDと換装するため。





注文後2日で届いたSeagateの2TB HDDと手術前のMacBook Pro
これを内蔵HDDと交換するがまずFusionDrive化して
論理ドライブを組んでいるCoreStorageを解除する




その前にTime Machineのバックアップディスクとつないで最新状態のバックアップを取っておく




この日のバックアップ量は340MB、交換後にこの時点の状態に戻すため




バックアップが完了したらTerminalを起動して論理ドライブの名前を確認する
コマンドはdiskutil cs listでEnter
論理ドライブのツリーが表示されるが一番上の
Logical Volume Groupの名前が次のコマンドに必要なのでコピーしておく




この論理ボリュームのグルーピングを解消するコマンドは
diskutil cs delete (先ほどの論理ボリューム名)となる
実行してEjecting Logical Volumesと出てプログレスが始まったら正しい動き




完了したらFinished CoreStorage operationと出る




ここでもう一度CoreStorageボリュームを表示させるdiskutil cs listというコマンドを打つ
これでNo CoreStorage logical volumes foundと表示されたらFusionDrive解除は完了




論理ドライブ解消に成功したのでこれより開腹手術に移る
術式はオフビート(システムシャットダウンする)1TBHDD摘出並びに2TB移植手術とする
まずは埃を相当吸い込んでいるのでファン周りを中心に埃の除去を開始する




HITACHIの1TBHDD摘出
これをSeagate 2TBHDDに置換する




実のところこの世代のMacBook Proのディスク交換は別に難しいところはどこにもない
あえて言うならばディスク固定用のビスが星型レンチになっているので
交換作業用の星型ドライバーの用意が事前に必要だということぐらいだ




固定ビスとディスク引き出し用の「ベロ」を新しいディスクに付け替えたら
固定用のシャーシでディスクをしっかり固定する
あとは蓋を閉めたら完了なので術式の所要時間は15分ほど
ここまでは極めて順調だったが問題はこのあとに起きた




今回は少し手順を変えて外付けハードディスクにインストールした
OS Xから起動してディスクの統合をすることにした




Disk Utilityで見ると分離された256MBのSSDと2TBの内蔵HDDが見えている
2TBの方はまだフォーマットしていないのでドライブとしては
見えているがボリュームはマウントされていない




これを「消去」メニューでフォーマットする
名称未設定の2TBボリュームとしてマウントされることを確認




再びTerminalを起動してドライブの名称を確認する
コマンドはdiskutil listでドライブ、パーティションがすべて表示される
この場合サイズからdisk0が256MBのSSD、disk1が入れ替えた2TB HDDだとわかる




このディスクを統合するコマンドは以前FusionDrive化のエントリで書いた時と同じ
diskutil cs create (まとめたあとのドライブの名称) disk0 disk1と打つ
Adding disk* to Logical Volume Groupeと続いてプログレスが出れば動作は成功




論理ドライブのツリーが表示されたらそのグループドライブのUUIDをコピーして引き続き
diskutil coreStorage createVolume (グループドライブのUUID) jhfs+ (希望のボリュームの名前) 100%
と打たなければいけないのだがこのコマンドの時はdiskutilの後の
csが必要ないのを忘れていてコマンドをミスってしまった
するとcs coreStorageというコマンドは見つかりませんという警告が出て失敗する
参考までに失敗例も書いておく




実はこの失敗状態でもボリュームの形にはなってDisk Utilityを開くと
「FusionDriveのリンクが切れています。リビルドしますか?」と警告が出て
修復をクリックするとFusionDriveの修復に成功する
「なんだ!Disk Utilityでもボリュームの統合ができるんじゃない!便利〜」
と思っていたらシステムインストール後、Time Machineバックアップも
全部戻した時点で起動、終了時にエラーが出るようになってfsckをかけると
orphaned block(孤児ブロック)がどんどん増えるという大変な状態になってしまった
放置するとそのうち起動できなくなるに違いないのでやはり統合は
ズボラしてDisk Utilityでやるのではなくコマンドでやらないといけないようだ




ほぼ1日を無駄にして再びFusionDriveを解除、論理ドライブの統合をやり直した
今度は正しくdiskutil coreStorage createVolume (グループドライブのUUID) jhfs+ (希望のボリュームの名前) 100%
と打ったところFormatting file system for Logical Volumeという表示が出てボリュームの統合に成功した




インストーラディスクから起動してYosemiteをインストール開始




インストールが完了したらTime Machineディスクに接続してユーザファイル全域を復元開始




全域復元の所要時間は14時間ほど…さすがテラともなると復元は1日仕事
一回失敗しているので都合二日かかっている


こうしてMacBook Pro 2TB化の二日目が過ぎ去ろうとしていた。

このまま物語は後半へとなだれ込む!
手術にも成功したがその疲れからか、不幸にも黒塗りの高級車に追突してしまう。 後輩をかばいすべての責任を負った三浦に対し、車の主、暴力団員谷岡に言い渡された示談の条件とは…。

次回乞うご期待!







Previous  Index  Next



site statistics



青木さやか