Об одноплатном компьютере 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 на телевизоре.
Автор: OtherF