Mac mini + MacBook 2台を外付けSSD2台でTimeMachineバックアップするようにした

TL;DR

自宅で稼働しているMac miniMacBook (以下Laptop) 2台をMac miniにつなげた外付けSSDでTimeMachineバックアップするようにしたという話です。

経緯

元々は使用していたLaptopが1台だけだったため、Mac miniの中にディレクトリを作ってそこをLaptopのTime Machineバックアップ先にして、Mac miniは外付けSSDでバックアップするという形にしていました。しかし使用するLaptopの数が最近増えたことでそうもいかなくなってきたのでLaptopも直接Mac miniに接続している外付けSSDにバックアップすることにしました。

構成

構成はなんの変哲もありませんがこんな感じです。Mac miniとLaptopは家庭内ネットワークに無線でつながっており、Mac miniと外付けSSDはUSBで有線接続されています。

やったこと

Mac miniを外付けSSDでTime Machineバックアップするのは書くまでもないと思うので割愛します。

下記はLaptopをMac miniにつなげた外付けSSDにTime Machineバックアップする手順です。

1. 外付けSSDを買ってくる

まずは外付けSSDを買わなければ話が始まりません。上述のように元々Mac miniをTime Machineバックアップしていた外付けSSDが1台あったので、2台のLaptopをバックアップする方の外付けSSDを買います。

ヨドバシ.com: https://www.yodobashi.com/product/100000001005971132/

買ってきました。

気にした点として、USB-Cで接続したかったのでそれが可能なものにしました。容量についてはLaptop2台をバックアップすることから2TBを選択。メーカーについては最近のSSDのメーカー事情はよく知らないので、まあWestern DigitalならHDD時代によく使っていたしという根拠のない信頼感から選びました。

2. 外付けSSDをAPFSフォーマットする

外付けSSDの中にディレクトリを複数作りそれぞれをLaptopのTime Machineバックアップ先にしたかったので、Disk Utilityを立ち上げてSSDをAPFSフォーマットします。SSDMac miniにつなげた際にメーカー独自のバックアップツールか何かのdmgなどがありましたが、使わないので気にせずフォーマット。

外付けSSDの名前とかは特にこだわりがないので買った時のままでヨシ。

※既に使用中なのは後からスクショを撮ったからなので気にしないでください

3. 外付けSSDの中にディレクトリを作りTime Machineバックアップ可能な共有先に設定する

フォーマットが終わったらLaptopのバックアップ保存先ディレクトリを作ります。今回は2台のLaptopを保存したいので2つ。

その後環境設定を開いて共有設定からFile Sharingを選んで(ONになっていなければONにして)先ほど作成したSSD内のディレクトリを追加します。Mac miniを普段使いするためのユーザとは別でそれぞれのディレクトリに接続可能なユーザを別途作成して当該ディレクトリに対するRead&Write権限を設定しておき、TimeMachineバックアップでの接続ユーザとしてはそのユーザを使用するようにするとよりセキュアですが、現状私以外にこれらのマシンに触る人はいないのでここでは割愛します。複数人が触る可能性のある環境の場合この辺りは気をつけましょう。

Shared Foldersにディレクトリを追加したらその項目を右クリックするとAdvanced Options...という項目があるのでそれを選びます。

出てきたウィンドウの一番下の項目にTime Machine backup destinationとして共有というような項目があるので、そこにチェックを入れます。今回は2TBのSSDに2台のLaptopのバックアップをとりたかったので一応1つのディレクトリあたり1000GBまでとしています。

Mac mini側での作業は以上です。

4. LaptopのTime Machineバックアップ先に指定する

今までの手順を実施後にLaptopのTime Machine設定を開くと先ほど作成したディレクトリがバックアップ先として指定可能になります。

後は普通にTime Machineバックアップ設定を行なってください。

終わり。

セルフQ&A

一台の外付けSSDに3台のマシンをバックアップすれば良いのでは?

いや、自分もそうしたかったんですが、Mac miniのバックアップ先としてUSB接続の外付けSSDを指定する場合、SSD全体がTime Machineバックアップ先として設定されてSSD内の特定のディレクトリを指定とかができなかったんですよね。誰か方法を知っていたら教えてほしい。

SSDよりHDDの方が容量単価が安いのでは?

それはそう。ただ駆動音とか物理的な大きさとか万が一落とした時の耐衝撃性とかを考えると、そんなに大容量が必要なわけでもないしSSDで良いかなと。

NASで良くない?

それな。

Setup zsh on macOS

What

macOSzshを使うことにしたのですが、ゼロから自分で設定を構築するよりもある程度こなれた設定を採用したい、そこで調べたところzsh + preztoというのが構築も簡単で必要十分そうだったので、これの設定を行いました。

Why

使うツールは基本的にデフォルト設定で使うタイプなのでずっとbashを使っていたのですが、macOSがデフォルトのShellをzshに変えたので追随することにしたというのがきっかけです。

How

zshmacosに元々入っているものを使いました。 まずはpreztoを git clone してきて必要最小限の設定を行います。

$ zsh
# preztoのダウンロード
$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
# 設定ファイルのシンボリックリンクを貼る
$ setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
# デフォルトのShellをzshに変更
$ chsh -s /bin/zsh

.zshrc にとりあえずこれだけという設定を書いておきます。

alias ls='ls -lG'

プロンプトの見た目は情報量が多いものが良かったので powerlinesteeef か迷いましたが、落ち着いた色合いの steeef にしました。 .zpreztorc に以下を追記。

zstyle ':prezto:module:prompt' theme 'steeef'

ref

Insert Final Newlineの設定をしようという話

TL;DR

ほとんどのエディタに存在するInsert Final Newlineの設定を、基本的にはしておきましょうという話です。

Why?

POSIXでLineの定義が 0個以上のNewLineでない文字と末尾のNewLineの集合 となっており、TextFileがLineの集合だからです。

ref: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206

ファイルの末尾が改行で終わっていないとCLIdiff を実行した際に \ No newline at end of file という表示が出たり cat を実行した際に以下のようにファイルの内容の右にpromptが表示されてしまったりします。

Terminal:~ user% cat foo.txt
barTerminal:~ user%

GitHubではPull RequestのFiles changed上で赤いアイコンが表示されますね。

f:id:kyo_nanba:20200506115059p:plain

What?

おそらく皆さんが使っているエディタには "ファイルを保存した際に末尾に改行がなければ追加する" という設定があると思います。これを設定しましょう。

How?

VSCode, Emacs, Vim, IntelliJ-based IDEsの設定を記載しておきます。この4つを選んだのは私がよく使うエディタだからという理由です。

VSCode

f:id:kyo_nanba:20200506115153p:plain

Emacs

(setq require-final-newline t)

Vim

デフォルトがそうなっていると思います。

IntelliJ-based IDEs

f:id:kyo_nanba:20200506115233p:plain

ref

MacOSを再インストールしようとした際にrecovery serverに接続できなかった場合の対応方法

状況

最近MacbookProのキーボードの調子が悪かったので修理に出そうと思い、その前にMacOSを再インストールしようとしたところ以下のエラーメッセージが出てインストールを開始することが出来ませんでした。

The recovery server could not be contacted.

原因

調べたところどうやらマシンの時刻とサーバの時刻が合っていないことが原因の模様。

根拠としては以下。

  • こちらのgistに全く同じ状況に対応した内容が載っていた
  • 確かにマシンの時刻を見たところ現在時刻と時間が合っていなかった
  • 実際に試してみたところ解決した

対応

⌘+Rを押しっぱなしでマシンを起動すると表示される画面(OSの再インストールやDisk Utilityの起動などができる画面のこと)では左上のメニューから Utility → Terminal が起動できるので、これを起動して以下のコマンドを実行することでAppleのNTPサーバと同期させます。

ntpdate -u time.apple.com

上記コマンドが成功した後でもう一度再インストールを試みると、今度はうまくいきました。

参考記事