スキップしてメイン コンテンツに移動

[Mac]Time Machineのバックアップ先をWindows共有フォルダに設定する


こんばんは。もっくんです。

2台あったWindowsのデスクトップを1台にまとめるついでに、ずっと放置していたMacのバックアップ環境を構築してみました。Finderでコピペするだけでいいんですが、どうせなら「Mac全体を自動的にバックアップします。」という謳い文句のTime Machineを使いたい。

Apple純正のTime CapsuleやUSBの外付けHDDという手もあったんですが、ノートの機動性を落としたくなかったし、なによりタダでできそうなWindows共有フォルダにネットワーク越しにバックアップする方法を取ることにしました。

実際の流れは下記のようになります。
  1. ネットワーク共有フォルダを作成する
  2. 空のディスクイメージを作成する
  3. ネットワーク共有フォルダにディスクイメージをコピーする
  4. ネットワーク共有フォルダのディスクイメージをマウントする
  5. マウントしたディスクイメージをTime Machineのバックアップ先に指定する

1.ネットワーク共有フォルダを作成する

この手順はそこまで面倒ではないので、簡単な手順だけ。
  1. Windows全体の設定でファイル共有を有効にする(Windowsで作業)
  2. Macと共有(Macから見えるように)したいフォルダを作成する(Windowsで作業)
  3. 共有したいフォルダに共有設定をする(Windowsで作業)
  4. 共有フォルダに接続(Macで作業)
詳細はこちらの記事が画像付きでわかりやすい。
http://blog.goo.ne.jp/beosound/e/7d6d0d0a8f76035f880001eda06c4247

2.空のディスクイメージを作成する

いわばこのディスクイメージがバックアップ先のHDDの代わりとなる。
  1. アプリケーション > ユーティリティ > ディスクユーティリティを起動
  2. 画面上部の ファイル > 新規 > 空のディスクイメージをクリック
  3. 設定画面の各欄は以下のように設定

名前:

TimeMachineVolume(なんでもよい)

保存先:

デスクトップ(ローカルのわかりやすい場所)

ボリューム名:

TimeMachineVolume(なんでもよい)

ボリュームサイズ:

カスタム > 300GBを指定

ボリュームフォーマット:

Mac OS 拡張(ジャーナリング)

暗号化:

なし

パーティーション:

ハードディスク

イメージフォーマット:

スパースバンドル・ディスクイメージ※2

※1:バックアップしたいMacのHDDの容量よりも大きなサイズを指定。先に一番下の「イメージフォーマット」を設定してからこの欄を変更すること。
※2:中に保存されているデータの量に応じて自動で拡張される形式。ボリュームサイズが300GBでもバックアップ前はデータが空なので500MBくらい。

これで作成するとTimeMachineVolume.sparsebundleが作成され、保存したデータ量に応じて伸縮する論理的な300GBのHDDを作ったことになる。ちなみに作成直後は自動でマウントされて(開かれて)デスクトップ上にTimeMachineVolumeという外付けHDDのようなアイコンが出るのを確認できる。このTimeMachineVolume.sparsebundleをコピーするのでTimeMachineVolumeのディスクは取り出しておく。

3.ネットワーク共有フォルダにディスクイメージをコピーする

簡単なので手順だけ。
  1. 共有フォルダに接続(Macで作業)
  2. Finderでドラッグ&ドロップ
以上。

4.ネットワーク共有フォルダのディスクイメージをマウントする

簡単なので手順だけ。
  1. 共有フォルダに置いたTimeMachineVolume.sparsebundleをダブルクリックする
  2. デスクトップ上にTimeMachineVolumeという外付けHDDのようなアイコンが出るのを確認する
以上。

5.マウントしたディスクイメージをTime Machineのバックアップ先に指定する

実はこの時点でWindowsの共有フォルダ上のディスクイメージ上にファイルは保存できる。残念ながらTime Machineの設定画面では保存先には選択できない。

そこで、ターミナルでの作業が必要になります。
  1. ターミナルの起動
  2. マウントパスの確認
  3. ls /Volumes
    ※この結果で"TimeMachineVolume"、"TimeMachineVolume-1"、"TimeMachineVolume 1"というようなパスがある。
  4. Time Machineのバックアップ先を"TimeMachineVolume"に設定する
  5. sudo tmutil setdestination -p /Volumes/TimeMachineVolume
    ※"TimeMachineVolume"にマウントされている場合
  6. バックアップを実行する。
Time Machineの設定画面で120秒待つか、上部のTime Machineアイコンから「今すぐバックアップを作成」を選択し、バックアップが動くことを確認する。

なお、再起動や電源を落とす際にマウントを解除しないように。マウントしたままにすれば再起動後に自動的にマウントして、バックアップを実行してくれる。という感じでタダでTime Machineでのバックアップ環境が構築できた。自宅では今まさにバックアップが動いている。これでクリーンインストールの準備ができた。より快適な環境を構築するために、今度はクリーンインストールに挑戦したい。

コメント

このブログの人気の投稿

[Python]個別銘柄の時系列データをGoogle Financeから取得するプログラム

今日書いたのはこれ。 Google Finance から証券コードを指定して日別の価格情報を取得するプログラムです。 米国市場に上場している銘柄であればCSVでダウンロードでますが、日本の銘柄はできなかったので作りました。 多くの人はYahoo!Japanから取得しているようなので、あえてGoogle Financeから取得してみました。 ちなみに使えるのは東証に上場している銘柄のみです。(おそらく) このプログラムと 日経225構成銘柄一覧取得プログラム を組み合わせれば、日経225構成銘柄の時系列データが取得できてしまいます。 #!/usr/local/bin/python # -*- coding:utf-8 -*- from BeautifulSoup import BeautifulSoup import urllib2,re,datetime,sys class googleFinance2CSV(object): def __init__(self,ticker): ''' 引数で渡されたticker(=証券コード)の時系列データを Google Financeから取得してCSV形式で保持する CSVの列は'Date','Open','High','Low','Close','Volume' ''' self.ticker = ticker self.url = 'http://www.google.com/finance/historical?q=%s&num=200' % str(self.ticker) self.csv = str() soup = BeautifulSoup(urllib2.urlopen(self.url)) tablesoup = soup.find("table", {"class":"gf-table historical_price"}) for trsoup in tablesoup.findAll("tr&qu

[Python]redis-pyでRedis Pub/Sub実装

前から面白そうと思っていたRedisのPub/Sub機能。 redis-pyでどう実装すれば使えるか確認してみた。 ■Pub/Subについて http://ja.wikipedia.org/wiki/出版-購読型モデル ■pub.py from redis import StrictRedis def publish(channel,msg): """ redis-pyにはPUBLISHするためのメソッドがないので、 Redisのコマンドをそのまま実行する為のクラスを使う。 """ sr=StrictRedis() """ 第1引数にRedisのコマンド、第2引数以降は そのコマンドの引数をそのままセット """ sr.execute_command("PUBLISH",channel,msg) if __name__=="__main__": # チャネル"hoge"に"Hello"というメッセージを出版(Publish) publish("hoge","Hello") ■sub.py from redis import Redis def listen(channel): r=Redis() ps=r.pubsub() ps.subscribe(channel) while True: for i in ps.listen(): print i["data"] if __name__=="__main__": # チャネル"hoge"を購読(Subscribe) listen("hoge") ■実行方法・実行結果 (ターミナル1-準備) [user@localhost ~]# python sub.py 1 # => チャネ