2014/05/12

QNAPでTimeMachineが失敗する...

DIY Time Machine WallpaperDIY Time Machine Wallpaper / FHKE

QNAPのNASを使用していますが、最近TimeMachineバックップが成功しません。
TimeMachineには公式に対応しているNASですし、ファームウェアも現在最新の4.0.7です。でもMacがMavericksになってからは、特に調子が悪いような気がしています。

試行錯誤しているうちに、失敗の症状もバリエーション出まくりでわけわかんなくなんてきまして。初回だけは成功することもあれば、初めから固まることもあり。もう嫌気がさして3ヶ月くらいTimeMachineを止めてしまっていたのですが、先日Windows機が突然死するという事態に出くわし、システムバックアップの便利さを痛感したため、やっぱりなんとかしてバックアップはとっておきたいと思った次第です。

QNAPのバカ。もう知らない。
そんなわけで、「TimeMachineサーバー」の機能は使わずに、フツーのNASとしての共有フォルダ、つまりAFPマウントとかして使っている領域にシステムバックアップを取るのをアレコレ試行錯誤した経緯です。つまりQNAPもTimeMachine非対応NASであるかのごとくいじって、システムバックアップとろう、という試行錯誤。

0. 下準備

調べてみると、バックアップ先にするディスクイメージ名の規則が決まっており、バックアップするMacのホスト名とMACアドレスが必要らしいので、用意しておきます。
蛇足ながら、ホスト名はターミナルで
$ hostname
で返される文字列です。HOGE.localだったらHOGEの部分。
MACアドレスはLANに接続しているネットワーク機器固有のアドレス。
$ ifconfig -a
で返される文字列に含まれています。
多くの場合、有線LANは“en0”で無線LANは“en1”になってるようですが、環境次第です。”01:23:45:AA:BB:CC”みたいな感じで記述されてます。

1. バックアップ先にするディスクイメージをつくる

リモートには直接イメージを作れないらしいので、まずはローカルのホームディレクトリとかデスクトップとか、適当な場所につくります。
こんな感じのコマンド。
$ sudo  hdiutil create -size (SIZE) -fs HFS+J -type SPARSEBUNDLE -volname (VOLUMENAME) (HOSTNAME)_(MACADDRESS).sparsebundle
(大文字)のところは、環境固有の値になります。
  • (SIZE) - イメージのサイズ。バックアップするMacの容量の1.5倍くらいがいいっていわれてました。
  • (VOLUMENAME) - なんでもいいですが、この名前でイメージがマウントされます。’TimeMachine’とかすることが多い模様。
  • (HOSTNAME)_(MACADDRESS) - ディスクイメージのファイル名。0.で取得したホスト名とMACアドレスを使います。MACアドレスは、’:’を抜いたものになります。
具体的にはこんなかんじになります。
$ sudo  hdiutil create -size 256g -fs HFS+J -type SPARSEBUNDLE -volname TimeMachine HOGE_012345AABBCC.sparsebundle
これで、HOGE_012345AABBCC.sparsebundleなるディスクイメージファイルが作成されます。

2. ディスクイメージのマウント

1.で出来上がったイメージ、例でいうHOGE_012345AABBCC.sparsebundleをNASの共有フォルダに持っていきます。この辺はFinderでやりました。

QNAPユーザなら言わずもがなやもしれませんが、適当なNASの共有フォルダに移動させたのちに、作ったディスクイメージをマウントしてあげます。
私は通常SMBではなくAFPで使っていますが、“Public”って名前の共有フォルダの下に適当なフォルダを作ってディクスイメージを移動しました。

その後、移動先でイメージをダブルクリックします。すると1.で指定したVOLUMENAME、例でいうとTimeMachineという名前でイメージがマウントされます。

3. イメージをTimeMachine先のディスクにする

つぎに、非対応NASでTImeMachineするために、下記のコマンドを打ちます。
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
すると、あら不思議。「TimeMachine環境設定」の「ディスクを選択」に、従前のイメージがあらわれます。…となっていたハウツー記事があったのですが、私の環境では現れません。どうやら、この辺りはTimeMachineのバージョンなどによって違いがあるような気配です...。

もっと言えば、このコマンドはAFP(Appleのファイル共有)を使用する場合は不要と書いてある記事もありました。
さらにもっと言えば、0.のイメージ名をホスト名とMACアドレスで作成すること自体が、AFPの場合は不要って書いてある記事も見つけました。つまりイメージ名もなんでもいいんだと。
この辺、オーソライズされた情報が見つけられなかったので、必須なのかどうかはよく解りませぬが、今回は私がやったことを全部書いておこう…ということで書き添えます。
検証するモチベーションがもうないので...若い誰かがきっとやってくれる...後は頼んだ...

4. あらためて、イメージをTimeMachine先のディスクにする

tmutilなるコマンドを使って、マウントしているイメージをTimeMachine先に指定します。
$ sudo tmutil setdestination /Volumes/(VOLUMENAME)
VOLUMENAMEは、1で指定したもの。例で言うとTimeMachineです。

もしここでエラーになった場合は、/Volumesの下を確認してみましょう。ダブルクリックなどしてマウントされたものは/Volumesの下にマウントされていきますが、名前がかぶっていたりすると、勝手にTimeMachine–1などと思いがけないものになってしまったりします。こうなったら今後のためにも、他とかぶらないような名前を付け直すしかなさそう。

うまくいくと、TImeMachine環境設定のバックアップ先ディスクとしてVOLUMENAMEがセットされた状態になってます。

…これって、TimeMachineどうこうっていうか、フツーにディスクイメージをマウントしているだけじゃないかという気がフツフツ。そんなところからも、ホスト名やMACアドレス云々はやはり要らないような気がするとです。

5. レッツTimeMachine

メニューバーから「今すぐバックアップを作成」してみます。

もし、途中で固まってしまった場合は…というか私はばっちり固まってしまったのですが、どうやらSpotlight機能のindex作成が悪さをしていることがある模様です。
sudo mdutil -i off /Volumes/(VOLUMENAME)/Backups.backupdb
とすると、index作成をオフにできるんですと。これでホントに固まってたのが動き出しました。びっくり。(...ってか、これは明白にバグじゃね?) 私はSpotlightを使ったことないですし、今後も使う気がないので丸ごとオフにする設定を探してみました。
/etc/hostconfig
というファイルにSPOTLIGHT=-NO-と書き加えればいい模様。ホントにオフになったのかどうかは分からないものの、それ以来変なことは起きてないので、それでいいやー。(だんだんとモチベーションが...)

6. その後、どうするの?

初回バックアップは終わったものの、今の状態はNASをマウントして、さらにディスクイメージをマウントしてある状態です。...これからどうなんのコレ?
ずっと家で使うようなiMacとかなら、マウント状態のまま運用しても問題なさそうですが、私はMacBook Airで持ち歩くのでマウント状態を維持できません。

試しに一度マウントを解除してみてTimeMachineを動かしてみると案の定、ディスク接続されるまで動かんよ的なことを言われる。...まぁ、そりゃそうです。
つまり、バックアップをするためには
  1. NASマウント
  2. イメージマウント
  3. 「今すぐバックアップ」!
のような手順が必要になるということです。
TImeMachineはONのまま放置しておくと一時間ごとというせわしなさでバックアップをとろうとするので、それよりは基本はOFFにしておいて、好きなタイミングでバックアップをとれるコレも悪くないのかしら。などと思ったりもして、これで使っていくことにします。

7. さらにその後

TimeMachineは順調に動くものの、バックアップとるときの3ステップが案の定邪魔くさくなってきました。そこでスクリプトを書いてみました。エラー処理も無いいい加減なものなので、とてもそのままは載せられませんが、ざっくりと
  • mount_afp(NASをマウントして…)
  • hdiutil attach(イメージをマウントして…)
  • tmutil startbackup(今すぐバックアップ!)
  • hdiutil detach (イメージをアンマウントして…)
  • umount(NASをアンマウント)
などと実行していくようにすれば、ワンクリックで実行できるようにはなったので、これで良しとしようと思います。
ディスクイメージをコピーしちゃえばバックアップのバックアップ?も気軽にできますし、これはこれでステキな環境かもしれないと思いはじめていたり。

デロリアン トミカ
by カエレバ

2014/05/07

SSDの壊れ方

60g hdd and 60g ssd60g hdd and 60g ssd / osde8info

SSDが壊れました。
2年近くは動き続けてくれたので、納得できないこともないのですが、寿命があると言われつつも、なんとなーく動き続けるHDDに比べると短いもんですね。しかも、壊れたのがとても解りづらかったです。

環境

Windows7。メインとして使っていたわけではないものの、いわゆる「録画機」として常時スリープで毎日1〜2時間くらいは起動するような使い方です。ThinkPadのX200sという古いモデルを自分でSSD換装したもの。
録画自体は外付けドライブに書き込んでいたのですが、SSD自体はお金をけちって64Gという小容量にしたので、書き込みのローテーションってやつもあまりできなさそうですので、短寿命に一役買ってしまったものと思います。

症状

やっかいなことに何事も無く起動します。運が悪かった(?)だけかと放置していると、そのままフリーズします。マウスのカーソルだけが動かせるものの、クリックやキー入力は受け付けてくれません。電源長押しで落とすしかなくなります。…で、再起動すると、また何事も無く起動して、しばらくはフツーに動いている。

録画機だけに普段はWindows Updateを止めてあるのですが、念の為に古めの復元ポイントから復旧したものの、症状は変わらず。
ですので、どうやらハードの問題っぽいと思い、チェックディスクをやったりCrystalDiskInfo でS.M.A.R.T.情報ものぞいてみましたが異常は見つからず。

そういえば!

最近はMacをメインで使っているのですが、リコールがかかったMacBook Air 2014モデルです。で、公式のリコール発表前にがっつり故障に遭遇した私だよ。
その時も、マウスカーソルを動かすこと以外ができなくなって、電源を長押しして落とすしかないという同じような症状だったことを思い出しました。
SSDの末期にありがちな症状なんですかね。ちょっと調べてみたものの確たることはわかりません。(ただし、リコールの時は2度と起動しなかったのですけど。)

換装

どのご家庭にでも引き出しに1つは余っているであろう2.5インチHDDで換装します。こういうときは瞬殺で差し替えできるThinkPadでよかったと心から思えます。
Windows7のディスクでブート。気まぐれで、Windows7標準でついてる機能のシステムバックアップをNASにとってたことを思い出して、そこから復旧を試みると…20分もかからずに元通り。おおお。素晴らしいですやん。

結論:バックアップ重要!

…さすがにSSD→HDDになると、操作中のストレスはすごいんですが。そんなことよりもWindows7のバックアップが、かなり使えたことに感動しました。最近Windowsを触らなくなったこともあり、Windows7の復旧作業ってはじめてだったのですが、実にスムーズでした。
前述のリコール騒動のときにも、MacのTimeMachineに感動したのですが、勝るとも劣らない印象。Microsoftは、もっとアピールしてくれてもいいのに。

あと、SSDはちょっとコワイですね。またMacBookも正式な(?)寿命で突然固まるのかと思うと戦々恐々です。ThinkPadのように自前で簡単に修復ってのも難しそうですしねぇ。。

レノボ・ジャパン ThinkPad X240
by カエレバ
にほんブログ村 IT技術ブログ IT技術メモへ