Raspberry Pi в качестве Time Capsule для Mac OS

в 12:52, , рубрики: apple, diy или сделай сам, mac os x, Raspberry Pi, time capsule, метки: , ,

Raspberry Pi в качестве Time Capsule для Mac OS

Об одноплатном компьютере Raspberry Pi узнал чуть больше полугода назад и сразу появилось желание использовать его в качестве домашнего медиасервера. Но ожидание своего заказа в течении 4 месяцев и блуждание по Интернету навели на мысль использовать Raspberry Pi в качестве хранения резервных копий MacBook Pro, т.е., настроить RPi (Raspberry Pi) таким образом, чтобы система Mac OS X по локальной Wi-Fi сети создавала свои резервные копии автоматически.

Данная статья является попыткой создать пошаговую инструкцию по настройке RPi для использования в качестве Time Capsule.

В процессе настройки необходимо будет пройти следующие шаги:

  • подключение и настройка внешних USB дисков
  • установка поддержки файловой системы HFS+
  • настройка автоматического монтирования жестких дисков при включении/перезагрузке RPi
  • установка и настройка Avahi и Netatalk демонов
  • настройка Mac OS X

Подключение и настройка внешних USB дисков

Диск, отформатированный под файловую систему HFS+ необходимо подключить к внешнему питанию (или через активный USB хаб), затем подсоединить к RaspberryPi. Я использовал подключение через активный USB-хаб, так как при подключении портативного диска WD My Passport 1TB без дополнительного питания, RPi перезагружался и неправильно монтировал диск.

Предварительно установив операционную систему на RPi и настроив локальную сеть, подключаемся через SSH и определяем наш диск с помощью команды sudo blkid:

pi@raspbmc:~$ sudo blkid
/dev/zram0: UUID="5d50a251-be5b-45be-af7a-51e1ef903041" TYPE="ext2" 
/dev/mmcblk0p1: UUID="FC65-D8D3" TYPE="vfat" 
/dev/mmcblk0p2: UUID="05ccd8fa-099d-4d6e-9ea3-dc8f77dd0127" TYPE="ext4" 
/dev/sda1: LABEL="EFI" UUID="70D6-1701" TYPE="vfat" 
/dev/sda2: UUID="43c5813f-7bce-374e-b111-b1b7e74464c7" LABEL="timeR" TYPE="hfsplus"

В моем случае, timeR с файловой системой hfsplus называется sda2. Уникальный идентификатор UUID можно запомнить, в дальнейшем пригодиться.

Устанавливаем поддержку файловой системы HFS+:

pi@raspbmc:~$ sudo apt-get install hfsplus hfsutils hfsprogs

Создаем точку (папку) монтирования диска:

pi@raspbmc:~$ sudo mkdir /media/timemachine

и монтируем наш диск sda2 в режиме чтения/записи:

pi@raspbmc:~$ sudo mount -o force /dev/sda2 /media/timemachine

Проверяем:

pi@raspbmc:~$ mount
/dev/mmcblk0p2 on / type ext4 (rw,noatime)
proc on /proc type proc (rw)
devpts on /dev/pts type devpts (rw,noexec,nosuid,relatime,gid=5,mode=620)
/dev/mmcblk0p1 on /boot type vfat (rw,noatime)
/dev/sda1 on /media/EFI type vfat (rw,nosuid,nodev,sync,noatime,uid=0,gid=0,shortname=mixed,dmask=0077,utf8=1,showexec,uhelper=udisks)
/dev/sda2 on /media/timemachine type hfsplus (rw,force)

отлично, sda2 подмонтировалось в режиме rw — чтения/записи.

Для автоматического монтирования диска, необходимо внести изменения в файл /etc/fstab:

pi@raspbmc:~$ sudo nano /etc/fstab

В самый конец добавляем:

UUID="43c5813f-7bce-374e-b111-b1b7e74464c7"  /media/timemachine hfsplus rw,force,exec,auto,users 0 0

Указываю идентификатор UUID, чтобы можно было подключить диск к любому порту USB RPi.

Чтобы удостовериться в правильности монтирования, перезагружаю RPi:

pi@raspbmc:~$ sudo reboot

С помощью команды, проверяю, чтобы жесткий диск подключился в режиме rw.:

pi@raspbmc:~$ mount

Если, по какой-либо причине, диск не подключается в режиме чтения/записи (rw), то необходимо произвести проверку диска:

pi@raspbmc:~$ sudo fsck.hfsplus -f /dev/sda2

Установка и настройка Avahi и Netatalk демонов

Устанавливаем дополнительные пакеты, необходимые для работы Avahi и Netatalk:

pi@raspbmc:~$ sudo apt-get install avahi-daemon libavahi-client-dev libdb5.3-dev db-util db5.3-util libgcrypt11 libgcrypt11-dev

Закачиваем последнюю версию Netatalk на RPi любым удобным для Вас способом с сайта netatalk.sourceforge.net:
Я скачивал с сайта на MacBook, распаковывал архив и папку копировал на RPi:

MacBook-Pro:~ other$ scp -r /Users/other/Downloads/netatalk-3.0.2 pi@192.168.1.99:~/

Для сборки Netatalk необходимо установить дополнительные, связные пакеты, без которых компиляция может завершиться с ошибкой:

pi@raspbmc:~$ sudo apt-get install make gcc binutils

Заходим в папку на RPi с исходниками Netatalk и выполняем следующие команды:

pi@raspbmc:~/netatalk-3.0.2 ./configure --with-init-style=debian --with-zeroconf
pi@raspbmc:~/netatalk-3.0.2 make
pi@raspbmc:~/netatalk-3.0.2 sudo make install

Настраиваем Netatalk, редактируя файл /usr/local/etc/afp.conf:

pi@raspbmc ~ $ sudo nano /usr/local/etc/afp.conf

Можно заменить содержимое afp.conf указанной ниже настройкой:

;
; Netatalk 3.x configuration file
;

[Global]
; Global server settings
uam list = uams_guest.so, uams_dhx.so, uams_dhx2.so

;[Homes]
basedir regex = /home

; [My AFP Volume]
; path = /path/to/volume

[Time Machine Raspberry]
path = /media/timemachine
time machine = yes

После редактирования перезагружаем демоны:

pi@raspbmc ~ $ sudo /etc/init.d/netatalk start
pi@raspbmc ~ $ sudo /etc/init.d/avahi-daemon start

И добавляем их в автозагрузку:

pi@raspbmc ~ $ cd /etc/init.d/
pi@raspbmc ~ $ sudo update-rc.d netatalk defaults

На этом работа с Raspberry Pi закончена.

Настройка Mac OS X

Теперь необходимо немного настроить Вашу операционную систему Mac OS X, для этого в Терминале вводим команду:

MacBook-Pro:~ other$ Defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1 

Вот и все! В боковой панели Finder должно появится новое устройство, у меня оно называется raspbmc:
Raspberry Pi в качестве Time Capsule для Mac OS

Заходим в системные настройки Mac OS X, и подключаем диск для резервного копирования. Дополнительно, необходимо будет ввести имя пользователя и пароль RPi. Через некоторое время Mac OS X начинает создавать резервную копию:
Raspberry Pi в качестве Time Capsule для Mac OS

После создания резервной копии, была проверена работоспособность запуском программы Time Machine:
Raspberry Pi в качестве Time Capsule для Mac OS

Пятидневный период работы Time Capsule из RPi показал себя с хорошей стороны. Mac автоматически находит диск для резервного копирования и работает с ним.

За все время была обнаружена одна проблема, когда в квартире отключали электроэнергию. После включения, диск к RPi монтировался в режиме read-only, в результате чего TimeMachine отказывалась сохранять бекапы.
Проблема решилось ручной проверкой диска с помощью команды:

pi@raspbmc:~$ sudo fsck.hfsplus -f /dev/sda2

где /dev/sda2 — диск для резервных копий.

Вся система в сборе выглядит следующим образом:
Raspberry Pi в качестве Time Capsule для Mac OS

Один диск используется для бекапов Time Machine, второй — для хранения видео и музыки, которую воспроизводит RPi на телевизоре.

Автор: OtherF

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js