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:

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

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

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

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

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

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

Вся система в сборе выглядит следующим образом:

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

ссылка на оригинал статьи http://habrahabr.ru/post/169159/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *