meideru blog

家電メーカーで働いているmeideruのブログです。主に技術系・ガジェット系の話を書いています。

Raspberry PI 3 でMacのTime Capsuleを自作してみた

 

この前の記事の続きです。

@Time Capsule
Time Capsule(タイムカプセル)

 

以前、Raspberry PI 3とSambaを組み合わせてMacのTime Capsuleを自作したいという話を書きました。

MacのTime Machine(タイムマシン)でバックアップを取っているときに、ふと疑問に思うことがありました。Samba(サンバ)をTime Machine用のHDDにしてやれば、それでバックアップを取れるんじゃないかと・・・。今日はそんな話を記事に書きました♪(´ε` )Time MachineとはMacの「Time Machine(タイムマシン)」って便利ですよね。外付けHDDのUSBケーブルをMacに挿してやるだけで、バックアップを取ってくれます。すごいのは差分を計算してバックアップを取ってくれるので効率良く容量を使用し、いつでもバックアップを取ったときの状...

 

そして昨日、実際にやってみました!

今日は、構築した手順について記事を書きたいと思います。

目次

必要なもの

必要な物は以下のものです。

  • Raspberry PI 3
  • MicroSD
  • 外付けHDD
  • マウス(最初だけ)
  • キーボード(最初だけ)

@Raspberry PI 3 と 外付けHDD
Raspberry PI 3 と 外付けHDD

 

 

マウスとキーボードは初期設定のときだけ必要です。

初期設定が終わったら、別のPCからSSHでログインするので不要になります。

手順

アバウトではありますが、大まかな手順は以下の通りです。

  1. Rasbian(OS)のインストール
  2. IPアドレスの固定
  3. SSHの有効化
  4. 外付けHDDのマウント
  5. Sambaのインストールと設定
  6. イメージの作成
  7. ファイルサーバーにMacを接続
  8. Time Machineの設定

実際にやってみた

Rasbian(OS)のインストール

まず最初にMicroSDにRasbianというDebian系のOSをインストールします。

Raspberry PI の公式サイトからダウンロードできます。

ダウンロードしたOSをフォーマットしたMicroSDにそのまま転送します。

あとは、そのMicroSDをRaspberry PIに挿して起動し、表示される画面に従って進めるだけでOSのインストールは完了です。

@インストール画面
Raspbianをインストール

 

IPアドレスの固定

IPアドレスの固定を行います。これを行わないとDHCPでIPアドレスが自動的に変わってしまいます。

IPアドレスを固定するには、/etc/dhcpcd.confの語尾に以下の2つを書き加えましょう。

~~中略~~

# イーサネットの設定
interface eth0
static ip_address=IPアドレス/ネットマスク
static routers=ルーターのIPアドレス
static domain_name_servers=DNSサーバーのIPアドレス

# Wi-Fiの設定
interface eth0
static ip_address=IPアドレス/ネットマスク
static routers=ルーターのIPアドレス
static domain_name_servers=DNSサーバーのIPアドレス

 

例えば、イーサネットとWi-Fiを両方とも192.168.1.2に割り振りたいときは、以下の記述を追加します。

~~中略~~

# イーサネットの設定
interface eth0
static ip_address=192.168.1.2/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

# Wi-Fiの設定
interface eth0
static ip_address=192.168.1.2/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

ネットマスクやルーターのIPアドレス、DNSサーバーのIPアドレスなどは利用しているネット環境に合わせたものを記述してください。

変更したら再起動して、ifconfigコマンドを使用してIPアドレスが固定化されているか確認してみましょう。

SSHの有効化

初期設定だとSSHが有効になっていないので、有効化しましょう。

有効化するには、raspi-configから行います。コマンドで以下のように入力しましょう。

pi@raspberrypi:/ $ sudo raspi-config

実行すると、青い画面が出てくると思います。

7のAdvanced Options を選択 → A4のSSHを選択して有効化

これで完了です。設定を反映するために再起動しましょう。

外付けHDDのマウント

外付けHDDをマウントしましょう。マウントとは周辺機器をOSに認識させて使える状態にすることです。

/devに接続されているデバイスの一覧があります。ここから外付けHDDを探します。大抵はsda○(○は数字)という名前であると思います。

実際にマウントする際にはmountコマンドを使用して行います。

例えば、/dev/sda2 を dev/exhdd/hdd1という場所にマウントしたいときは

pi@raspberrypi:/etc $ sudo mount /dev/sda2 /mnt/exhdd/hdd1/

のようにコマンドを入力します。

しかし、再起動するとマウントが切れてしまいます。これを改善するために、再起動後も自動でマウントされるようにします。

自動でマウントさせるためには、/etc/fstabの語尾に書き加えます。

~~中略~~

/dev/sda2 /mnt/exhdd/hdd1/ ntfs-3g defaults 0 0

これで再起動後に/dev/sda2が/mnt/exhdd/hdd1に自動でマウントされるはずです。

因みに説明をしませんでしたが、ntfs-3gというのはフォーマットの形式です。これがインストールされていない場合は、apt-getで行ってください。

Sambaのインストールと設定

いよいよSambaのインストールです。Sambaのインストールはapt-getで行います。

pi@raspberrypi:/etc $ sudo apt-get install samba

 

次に、Sambaのアカウントを作成します。Sambaにログインするためには、OSのアカウントとは別にSambaのアカウントを作らなくてはなりません。

アカウントを作成するためには、smbpasswdコマンドを使用します。ここでは、とりあえずpiというアカウントを作りましょう。

pi@raspberrypi:/etc $ sudo smbpasswd -a pi

入力すると、パスワードを設定しろと催促されるので、それに従います。これでアカウントの作成は完了です。

因みに、-aというオプションはアカウントを追加するという意味です。

 

アカウントの作成が完了したら、Sambaの設定を行います。ここでは、先ほど作成したpiというユーザーがログインして使用できるディレクトリを設定します。

そのためには、/etc/samba/smb.confの語尾に以下の記述を追加します。

~~中略~~

[pi]
   path = /mnt/exhdd/hdd1
   valid users = pi
   writable = yes
   create mask = 0777
   directory mask = 0777

[pi]というのはpiのディレクトリを設定しているという意味です。Windowsがファイルサーバーを開くと、piというディレクトリが表示されることになります。

pathはパスですね。piというディレクトリはどこのディレクトリを使っているかという意味です。

valid users は、このディレクトリは誰が使用できるかを決める設定です。ここでは、piというユーザーのみが使用できるということにします。

writableは、書き込み可能かどうかという意味です。可能にします。

create mask と directory maskは権限の設定です。ここではすべてのユーザーに全ての権限を与えてしまいましょう。

 

次に、sambaを起動しましょう。

pi@raspberrypi:~ $ sudo systemctl start smbd.service
pi@raspberrypi:~ $ sudo systemctl start nmbd.service

 

Raspberry PI を起動するたびにコマンドを入力してSambaを起動するのは面倒ですから、自動で起動できるようにしましょう。

pi@raspberrypi:~ $ sudo systemctl enable smbd.service
pi@raspberrypi:~ $ sudo systemctl enable nmbd.service

 

以上でsambaの設定は完了です。

イメージの作成

Time Machineでバックアップするためのイメージを作成します。

イメージを作成するためには、Macに標準で付属しているディスクユーティリティーを使用します。

ディスクユーティリティーを起動して、ファイル → 新規イメージ → 空のイメージを作成

でイメージを作成します。

フォーマットはMac OS拡張(ジャーナリング)、暗号化はなし、パーティションは単一パーティション、イメージフォーマットはスパースバンドル・ディスクイメージを選択します。

サイズは入力したものがバックアップの最大のファイルサイズになります。

ひとまずデスクトップにでもイメージを作成して保存しておきましょう。

ファイルサーバーにMacを接続

Macにファイルサーバーを接続します。

Finderの「移動(上のバーにある)」の項目にあるサーバへ接続を選択します。そこでsmb://IPアドレスを入力して接続を押してください。

例えば、192.168.1.2に接続するにはsmb://192.168.1.2を入力すればいいということになります。

マウントしたら、ファイルサーバーに先ほど作成したイメージをコピーします。そして、そのイメージをクリックしてみてください。これでイメージがマウントされるはずです。ここにTime Machineでバックアップを書き込んでやります。

その前に・・・。しかし、これだと1つ問題があります。それは、Macを再起動するたびにファイルサーバーの接続とイメージとのマウントが解除されてしまうという点です。これを改善するために、自動でマウントされるように変更します。

自動でマウントさせるには、システム環境設定 → ユーザとグループ → ログイン項目 → 下の+ボタンを押して、先ほどのファイルサーバーとイメージを追加してやりましょう。

これで再起動後もファイルサーバーに自動接続、イメージを自動でマウントしてくれます。

Time Machineの設定

いよいよ最後の項目です。

Time Machineは普通のやり方だと、HDDでしか行うことができません。普通のやり方とは、システムの環境設定 → Time Machine → ディスクの選択、という方法です。これだと、自分でマウントしたイメージを選択できないはずです。

これを解決するためには、コマンドから設定をすれば良いのです。

例えば、今マウントされているbkというイメージをバックアップ先とする場合は

$ sudo tmutil setdestination /Volumes/bk/

と入力します。これでbkがTime Machineのバックアップ先となっているはずです。システム環境設定から確認してみてください。

 

以上で完成です。これで再起動後に自動でバックアップが開始されるはずです。

まとめ

とりあえず、完成しました!

@完成!
Raspberry PI 3でTime Capsuleを作ってみた

 

調べながらやってみたので、相当、時間がかかりました。システムを構築するのに4時間くらいかかったと思います(;´・ω・)

説明は相当割愛している部分がありますので、わからないことなどがありましたらコメントをください。できる限り返信させていただきます(*‘∀‘)

 

以上です!

ノシ

 - 技術系