Сегодня я покажу вам, как запустить полноценный резервный сервер на рутованном телефоне Android с помощью UrBackup и Linux Deploy. Пластиковый мусор уже заполонил все вокруг, а в добавок к нему очередной глобальной эко-проблемой становятся еще и электронные отходы. Так зачем выбрасывать прекрасный, пусть даже потрескавшийся и поношенный, телефон?

К тому же этот старый телефон:

  1. Вероятно, даже не настолько стар (покупаете ли вы новый ПК каждые 1-2 года?).
  2. Возможно, снабжен 4-8 ядрами и ~4Гб ОЗУ, а также определенно имеет встроенный ИБП.

Подключите к нему внешний винчестер, и он станет отличным кандидатом на резервную систему для всей домашней сети!

Предупреждение: это проект из разряда «потому что могу». И поскольку здесь мы все-еще работаем с Android, то, помимо ряда ограничений, нам также потребуется обойти несколько препятствий. Это решение станет не самым простым способом создания бэкапа для домашней сети, как и не лучшим вариантом использования UrBackup. И все же! Как только настройка будет завершена, вы получите очень простой способ управления резервными копиями для нескольких машин, а также добавления хранилища.

Список ограничений этой конфигурации


Единственным вариантом файловой системы является EXT4.
Только она одновременно совместима с UrBackup и Android. К сожалению, никакого навороченного сжатия данных на уровне файловой системы.

Нельзя вызывать systemd напрямую из среды chroot
Поэтому мы установим простой стартовый скрипт для запуска службы UrBackup, а останавливать эту службу будем с помощью pkill. Кроме этого, мы добавим cronjob@reboot для ее запуска при загрузке.

UrBackup больше ориентирована на Windows
Ее разработчики предлагают полные резервные копии файлов для Linux, но та же функция в отношении создания образов пока находится на стадии беты. Мы же установим стабильную версию UrBackup, то есть резервное копирование образов для клиентов Linux не будет доступно напрямую на сервере. Тем не менее вы сможете создавать образы локально на клиенте и делать бэкап содержащих их директорий. И последнее. Создание резервных образов работает на клиентах Mac, но эта функция также находится на стадии беты. Лично у меня нет серверов под Windows, и я не особо беспокоюсь за свой ноутбук с Windows, поэтому использую UrBackup только для серверов Linux.

Мы ограничены дистрибутивами, доступными в Linux Deploy, а также версиями этих дистрибутивов
Я пробовала проделать эту процедуру с Centos 7, Ubuntu 18.04 и Debian 10. Должным образом без ошибок удалось заставить работать только Debian 10. Судя по всему, в этом случае UrBackup также предлагает больше поддержки именно для Debian (ни один другой дистрибутив не имеет доступного для ARM64 пакета .deb). Вы без проблем можете пробовать и другие доступные дистрибутивы, но тогда вам придется компилировать пакет установки из их исходного кода. (инструкции можно найти на странице скачивания).

Надежность и безопасность


Уязвимость рутованного Android
Linux Deploy создает для вашего экземпляра Linux контейнер chroot. По сути, это песочница, но когда вы даете Linux Deploy root-доступ, то расширяете размер песочницы, охватывая большинство закоулков системы телефона. Самая серьезная уязвимость будет исходить из рутованной ОС Android в связи с недостатком обновляемых патчей безопасности. Некоторые телефоны можно обновлять после получения root-доступа, но тогда после обновления придется делать рутинг повторно.

При условии, что вы отключаете все возможные разрешения и службы, а также избегаете использования интернета из ОС Android, поверхность атаки остается очень узкой (по сути, ограниченной любой оставшейся фоновой службой, не допускающей отключение). Чтобы сохранить устройство в безопасности, следует поддерживать актуальность экземпляра Debian с помощью apt update && apt upgrade и рассмотреть вариант установки антивируса, как и на любой другой сервер. И все же, эта конфигурация не отличается высокой безопасностью. Если вам нужна глубокая защита на каждом уровне домашней сети, то она вам не подойдет.

Надежность подержанного телефона
Качество сборки всех смартфонов отличается, но в общем их можно назвать очень мощными компьютерами. Если со временем производительность вашего смартфона падает, то взбодрить систему можно с помощью сброса к заводским настройкам. Также имейте в виду, что графика на смартфоне занимает существенный объем вычислительной мощности, и сервер без GUI будет скорее всего работать отлично. Если с вашим телефоном есть какие-то фундаментальные проблемы (питание, загрузка и пр.), то в качестве кандидата на резервный сервер он не сгодится. Это руководство для устройств, которые полноценно сохранили свою функциональность как смартфоны.

Безопасность батареи
Постоянное подключение смартфона к сети может сократить срок службы батареи, но само по себе это не опасно. Вообще перезаряжать литиевые аккумуляторы вредно, но в телефонах используются контроллеры заряда, которые останавливают зарядку, когда батарея заполняется. (Подробнее об управлении питанием можно почитать здесь). Причиной же вздутия зачастую служит заводской дефект или чрезмерный нагрев. Если у вас б/у телефон, и вздутие батареи не наблюдается, то скорее всего брака в нем нет.

Для избежания перегрева устройства следует разместить его в хорошо вентилируемом месте, отслеживать загрузку сервера, а также использовать качественную зарядку. Если телефон вдруг нагреется до горяча, отключите его и подумайте об увеличении интервалов между бэкапами, чтобы снизить нагрузку. Если телефон горячий постоянно, то лучше будет подыскать для сервера другое устройство. Как и с любым обычным сервером, добавьте в список его периодического обслуживания аппаратные проверки.

План


Если вы все еще здесь, то вот наш план действий:

  1. Получить root-права на телефоне. Я не стану вдаваться в подробности по этому пункту, а просто направлю вас к инструкции Magisk (англ.), где все это подробно расписано.
  2. Установка Linux Deploy и развертывание Debian Buster.
  3. Установка UrBackup Server.
  4. Подключение клиентов.

Учтите, что в этом руководстве я буду принимать очень специфичные решения в отношении конфигурации, большинство из которых нацелены на наладку работы с Debian и Android в среде chroot.

Требования


Рутованный телефон Android
В моем случае используется Pixel 4a (8ЦПУ/6Гб ОЗУ). Конкретная модель телефона большого значения не имеет, но при этом у каждой могут быть свои особенности. Если ваш телефон выпущен в течение последних пяти лет, то он наверняка имеет достаточные характеристики. Если же вы о них не знаете, то лучше уточните. Я рекомендую не менее 4 ЦПУ и 2 Гб ОЗУ. Этого должно быть достаточно для большинства домашних сетей, но вам нужно будет оценить требования в соответствии с планируемым объемом резервного копирования. Также учитывайте, что часть ресурсов будет забирать Android система хоста.

Опять же направлю вас к Magisk для рутинга телефона. Вот некоторые советы:

— Убедитесь, что используете файл boot.img, связанный с текущей версией загрузчика вашего телефона.

— Если устройство работает на Android 11, и процедура Magisk не сработала, понизьте версию ОС до Android 10 и повторите попытку. Я убил целый день, воюя с Android 11 на своем Pixel 4a.

— Если вы не хотите использовать именно Magisk, будьте ОЧЕНЬ осторожны с другими аналогичными инструментами. Как показывает практика, многие приложения на рынке оказываются шпионскими или вирусными. Могу посоветовать еще CF-Auto-Root, но скачивать этот инструмент нужно только с проверенного ресурса.

Приложение Linux Deploy
Это приложение, которое будет выполнять на вашем Debian-сервере среду chroot.
Скачайте последнюю версию с GitHub. Версия в Play store больше не обслуживается.

Приложение BusyBox
Это приложение предоставляет утилиты Unix для Linux Deploy. На рынке доступно несколько вариантов Busy Box, но именно данная версия совместима с Linux Deploy.
Скачайте ее с GitHub. Версия в Play store больше не обслуживается.

Кабель зарядки
Собственно, для зарядки телефона.

Хост для подключения к серверу через SSH
Технически он может находиться на том же телефоне, если установить приложение Termux или SSH, но установка определенно пройдет проще с полноценной клавиатуры.

Дополнительное оборудование (рекомендуется)


Несмотря на то, что, в принципе, бэкапы можно сохранять на SD-карте, делать это НЕ желательно. SD-карты медленнее, менее надежны и не могут обрабатывать процедуру записи в течение длительного времени. Если вы планируете сделать резервную копию на SD-карту, то сразу имейте в виду, что в течение года она даст сбой (а при большом объеме данных даже в течение месяца).

Внешний HDD/SSD с USB-кабелем
Размер и скорость записи выбирать вам, но я бы больше внимания уделил надежности, а не объему памяти и скорости. Быстродействие сыграет существенную роль только при большом хранилище (от 100 до 1000Гб). В этом случае польза от высокой скорости записи отразиться на своевременном завершении резервного копирования. Что касается надежности, то здесь большое значение имеет бренд. При использовании дешевых дисков будьте готовы к ошибкам ввода/вывода прямо посреди процесса создания резервных копий. Если вы заранее не уверены, какой конкретно объем хранилища вам потребуется, я рекомендую дождаться Части 2, чтобы отформатировать ваш диск в логический том. Логические тома позволяют легко добавлять объем хранилища, не озадачиваясь переносом данных. Можно начать с небольшого объема раздела и расширить его позднее.

USB Hub/Dock
Концентратор должен быть микро-USB или USB-C, в зависимости от того, каким разъемом оборудован телефон. При этом он должен иметь минимум один порт USB для подключения внешнего винчестера и один порт для зарядки, но я также советую выбрать такой, в котором будет ethernet-адаптер. Вы можете работать с сервером по WiFi, но ethernet-соединение будет быстрее и надежнее.

Ethernet кабель
В случае работы с сервером по ethernet.

Шаг 1. Установка Linux Deploy и развертывание Debian Buster


A. С рутованного телефона перейдите на GitHub и скачайте .apk пакеты для Linux Deploy и BusyBox. Установите эти приложения.



B. После установки откройте BusyBox. Выберите Install. По завершению обратите внимание, куда установилась BusyBox. В данном случае мы видим, что установка произведена в /system/xbin. Этот путь вам потребуется позже.



C. Откройте Linux Deploy и перейдите в настройки через иконку в нижнем правом углу.



c. Настройте следующее:



Architecture
Все телефоны Android построены на AARCH64/ARM64. Убедитесь, что указано «arm64» (или «aarch64» для других дистрибутивов).

Installation path
По умолчанию им может быть ${EXTERNAL_STORAGE}/linux.img. Это ваша SD-карта, и вы можете оставить все так, если хотите (работает для Raspberry Pi). Однако, если SD-карты в телефоне нет, или она неверно отформатирована, то установка провалится. Я рекомендую устанавливать во внутреннее хранилище, как сам делаю в этом примере. Полагаю, что вы не станете использовать телефон для чего-то еще, поскольку он должен будет оставаться подключенным постоянно.

Image size (MB)
Я советую не менее 15Гб (15 000Мб), но следует убедиться, что у системы Android останется достаточно места для корректного функционирования. Пространство будет взято из внутреннего хранилища, значит у вас может не быть доступно 50Гб, как в моем случае.

Init system
Если для этого процесса не установить sysv, то cronjobs не будут запускаться при загрузке.

MOUNTS
Если в дальнейшем вы не собираетесь расширять хранилище, то можете смонтировать внешнее блочное устройство здесь, добавив его путь в точки монтирования. Если же расширение хранилища в ваши планы входит, тогда вы можете подождать публикации Части 2, чтобы разбить его на разделы и отформатировать в логический том.

Все, что вы смонтируете здесь, будет непосредственно доступно при загрузке, но не будет доступно для разбиения по разделам и форматирования. Тем не менее учитывайте, что имя вашего блочного устройства (/dev/block/sdX) при перезагрузке телефона может измениться, в случае чего вам понадобится проверить/изменить конфигурацию. Если же вы смонтируете логический том, то его имя уже не изменится, и о проверке вам беспокоиться не придется.

Как найти путь к внешнему блочному устройству?
На Android блочные устройства находятся в /dev/block/sdX (в противоположность /dev/sdX). Чтобы выяснить, какое из sdX устройств является внешним блочным устройством, подключите его и выполните на сервере команду lsblk. Затем просмотрите все устройства и обратите внимание, какое из них совпадает с вашим (в плане объема/существующих разделов). Если вы подключили устройство после загрузки, то оно скорее всего окажется последним.

Примечание: после того, как блочное устройство будет смонтировано, перед последующим физическим отключением его необходимо будет сначала размонтировать или отключить сервер. Отсоединение без размонтирования скорее всего приведет к утрате содержащихся на нем данных.

D. Вернитесь обратно на экран приветствия и выберите верхнее левое меню. Далее выберите Settings и промотайте вниз до PATH variable. Именно здесь нужно установить путь установки BusyBox из шага 1.B. После установки PATH variable выберите Update ENV.



E. Вернитесь на экран приветствия и выберите верхнее правое меню. Жмите Install. Перед вами отобразится живой лог установки. По завершению в конце лога будет прописано deploy. Выберите START в нижнем левом углу экрана. Теперь у вас на телефоне запущен сервер Debian!



Шаг 2. Установка сервера UrBackup


A. Подключитесь к только что развернутому серверу по SSH.

IP-адрес будет тот же, что и у телефона, порт будет 22, а авторизоваться вы сможете с помощью учетных данных, установленных в шаге 1.с. Оставшаяся часть руководства предполагает, что вы авторизованы как корневой пользователь. Свой IP можете увидеть, открыв Linux Deploy:



B. Обновите систему:

apt update && apt upgrade -y && apt install wget

C. Скачайте пакет .deb для UrBackup:

wget https://hndl.urbackup.org/Server/2.4.13/urbackup-server_2.4.13_arm64.deb

Это последняя стабильная версия на момент написания. Возможные обновления можете посмотреть на странице скачивания.

D. Установите пакет:

apt install -f ./urbackup-server_2.4.13_arm64.deb

В ходе установки система спросит, где должна размещаться резервная директория.
Запомните ее путь для следующего шага. Если вы уже смонтировали хранилище в шаге 1.c, установите в качестве этого пути точку монтирования.

E. Создание директории для бэкапа.

В этом примере я установлю директорию как /mnt/backup. Если вы смонтировали хранилище ранее, то директория уже будет существовать. Если же нет, создайте ее:

mkdir -p /mnt/backup

Обновите разрешения:

chown urbackup /mnt/backup

chgrp urbackup /mnt/backup

(Так UrBackup сможет производить запись в эту директорию.)

F. Установка скрипта запуска.

В среде chroot мы не сможем вызывать systemd, поэтому потребуется запускать эту службу вручную:

/usr/bin/urbackupsrv run --config /etc/default/urbackupsrv --no-consoletime

Но вместо того, чтобы вводить это постоянно, мы просто создадим скрипт:

nano /usr/bin/urbackupsrv-start

Скопируйте его в файл:

#!/bin/sh

/usr/bin/urbackupsrv run --config /etc/default/urbackupsrv --no-consoletime

Сохраняемся и выходим.

Определите разрешения:

chmod 755 /usr/bin/urbackupsrv-start

G. Запустите службу:

urbackupsrv-start

Это приведет к появлению лога запуска сервера. Нажатие CTRL-C остановит службу, поэтому откройте еще одну сессию SSH.

Для остановки службы нужно будет просто ее завершить:

pkill urbackup

H. Добавление cronjobs.

Поскольку мы не можем «активировать» службу UrBackup стандартным способом, то установим задачу cron для запуска при загрузке. В добавок к этому, если вы в дальнейшем отключите внешнее хранилище или перезагрузите телефон, то разрешения для резервной директории могут отмениться. Чтобы гарантировать их установку при загрузке мы добавляем cronjobs:

Откройте crontab:

crontab -e

Добавьте эту задачу:

@reboot chown urbackup [full/path/to/backup_directory] && chgrp urbackup [full/path/to/backup_directory] && urbackupsrv-start

Сохраните и выйдите.

I. Перейдите в веб-интерфейс.

В браузере перейдите на порт 55414 сервера: YOUR_SERVER_IP:55414



Все работает!

Шаг 3. Подключение клиентов


A. В нижней правой части окна состояния кликните Add new client:



B. Выберите Add new Internet client/client behind NAT и введите имя клиента:



Им должно быть имя хоста нового клиента.

C. Установка клиента.

  • Для клиентов Windows:

Скачайте установщик по ссылке «Download preconfigured client installer for Windows» и следуйте его инструкциям.

  • Для клиентов Linux:

Обратите внимание на «Default authentication key» вверху. Он вам понадобится.



Авторизуйтесь на клиенте и запустите скрипт установки (НЕ запускайте скрипт, предоставленный сервером):

TF=$(mktemp) && wget "https://hndl.urbackup.org/Client/2.4.11/UrBackup%20Client%20Linux%202.4.11.sh" -O $TF && sudo sh $TF; rm -f $TF

(Проверьте наличие последних версий клиентов здесь).

В процессе установки скрипт попросит выбрать механизм сохранения снимков состояния. Введите 2 для «LVM — Logical Volume Manager snapshots»:



Подробнее
На телефоне с Android единственной реальной альтернативой будет Dattobd. BTRFS в данном случае не поддерживается, а пренебрежение механизмом сохранения снимков системы очень нежелательно (вам придется останавливать на время резервного копирования все службы, взаимодействующие с файлами, выбранными для бэкапа).

Я попробовал использовать dattobd, но постоянно сталкивался с разными ошибками. Учитывайте, что вам нужно будет установить dattobd и на сервер, и на клиентов. При этом сервер и клиенты должны быть с ним совместимы. Для установки dattobd на устройство Android (ARM64) вам придется скомпилировать исходный код, в чем я не преуспел. Тем не менее у вас может оказаться другой случай, в зависимости от модели телефона или используемого дистрибутива. Мне также не удалось установить его в Ubuntu 20.10, при том что с Ubuntu 20.04 все получилось отлично.

По завершению установки убедитесь, что клиент запущен:

service urbackupclientbackend status

Если не запущен, запустите:

service urbackupclientbackend start

В завершении подключите клиента к серверу:

urbackupclientctl set-settings -k internet_mode_enabled -v true -k internet_server -v "YOUR_SERVER_IP" -k internet_server_port -v "55415" -k computername -v "YOUR_CLIENT_NAME" -k internet_authkey -v "YOUR_DEFAULT_AUTHENTICATION_KEY"

Убедитесь, что именем хоста, настроенным на шаге 3.B, является YOUR_CLIENT_NAME, а ранее сгенерированным сервером ключом YOUR_DEFAULT_AUTHENTICATION_KEY.

D. Настройка сервера.

Вернитесь в веб-интерфейс. Здесь вы можете обнаружить, что клиент не подключен. Кликните Settings в верхней панели навигации:



В Settings перейдите на вкладку Internet и убедитесь, что установлено следующее:



Если у вас все клиенты локальные, то можете убрать галочки Do image backups over the internet и Do full file backups over the internet.

Промотайте вниз и кликните Save.

E. Настройка директории резервного копирования:

Здесь же в Settings кликните Client settings. Отметьте Separate settings for this client, а в строке Default directories to backup вкладки File Backups укажите директории для резервного копирования.

Можно добавить несколько директорий через ;.



Здесь также настравиваются интервалы резервного копирования.

Кликните Save внизу.

Для клиентов Linux это также можно настроить из командной строки клиента:

urbackupclientctl add-backupdir -d FILE_PATH

Перезапустите сервер:

pkill urbackup

urbackupsrv-start

F. Вернитесь в веб-интерфейс.

Теперь клиент должен быть подключен. В блокеFile backup status может отобразиться No paths to backup configured, но это нормально. Такое сообщение будет отображаться до завершения первого резервного копирования. Также имейте ввиду, что если вы подключили клиента Linux, то бэкапы образов поддерживаться не будут. Тем не менее вы можете просто сделать резервный образ с клиента Linux и указать директорию этих образов для резервного копирования сервером.

Можно запускать первое резервное копирование!



Продолжение следует...


Если вы уже подключили хранилище и довольны конфигурацией, то на этом все. Если же вы хотите добавить хранилищу гибкость, то жду вас в Части 2. LVM (менеджер логических томов) позволяет добавлять или удалять хранилище без необходимости переноса данных на другое устройство хранения. Вы можете просто добавить нужный объем хранилища или удалить его неиспользуемую часть, которую хотите задействовать где-то еще. В Части 2 мы в основном будем работать с LVM. Это хоть и не сложно, но все равно является определенным процессом.

Советы


ОС Android
1. Отключите разрешения для всех служб, для которых это возможно. Разрешения кроются в различных местах настроек, так что уделите время их поиску. Также отключите или деинсталлируйте все приложения, какие можете. Это позволит снизить общую нагрузку на ОС Android.

2. Будьте осторожны с обновлениями Android. При успешном выполнении они скорее всего отменят root-доступ к устройству, и рутинг придется делать повторно. Если же вы хотите произвести обновление, то сохраните резервную копию файла .img, который Linux Deploy создала для контейнера Linux. Если в итоге вы полностью зачистите телефон, то достаточно будет переустановить Linux Deploy и сопоставить ее с резервным образом.

3. Поскольку вы не сможете обновлять телефон часто, то следует ограничить использование ОС Android. Не заходите в браузеры и не скачивайте лишние приложения, чтобы ограничить связь устройства с интернетом. Вы можете (даже рекомендуется) поддерживать версию Debian обновленной и использовать интернет по необходимости.

Linux Deploy
1. Когда телефон блокируется, Android переводит его в режим простоя. Это замедляет производительность ЦПУ. Чтобы экран был активен постоянно, перейдите в настройки приложения Linux Deploy и отметьте пункт Wake Lock. Найти его можно, нажав на верхней левой иконке настроек и перейдя в Settings. Обратите внимание, что эта функция действует только, когда приложение открыто.

2. Если вам потребуется перезагрузить образ контейнера, просто убедитесь, что расположение целевого образа (.img) установлено в Installation path в Properties. Найти этот пункт можно через нижнюю левую иконку настроек. Убедитесь, что указанный в свойствах дистрибутив совпадает с дистрибутивом файла .img. Если он не совпадает, Linux Deploy перезапишет файл .img с настройками из Properties. Затем вернитесь на основной экран и выберите из верхнего правого меню Install.

Деинсталляция UrBackup (Linux Server/Client)
Для деинсталляции сервера UrBackup выполните:

apt-get remove --purge urbackup-server

Для деинсталляции клиента UrBackup выполните:

uninstall_urbackupclient


Удаление клиента UrBackup (неотложное)
Если вы удалите клиента из веб-интерфейса сервера, то увидите уведомление «This client is going to be removed… Clients are removed during the cleanup in the cleanup time window». Это означает, что он еще не удален, и вам придется подождать, пока сервер не запустит плановую очистку, в ходе которой и произведет удаление. Такой вариант может вас не устроить, если вы работаете над устранением неисправности, и требуется неотложное повторное добавление клиента. Для ручной очистки остановите службу UrBackup из CLI:

pkill urbackup

Выполните очистку:

urbackupsrv cleanup -a 0%

И снова запустите UrBackup:

urbackupsrv-start


Ошибки резервного копирования
1. «Volume group „root“ not found»
Если вы делаете бэкап директорий внутри контейнера, то в логах сервера может возникнуть ошибка «Volume group „root“ not found», и создание резервной копии также закончится с ошибками. Ничего страшного, если ваши бэкапы остаются нетронутыми. Так как клиент UrBackup запускается из контейнера, он не сможет проследить свой путь до корня хоста.

2. Мгновенный сбой; без логирования ошибок
Если резервное копирование дает мгновенный сбой, то скорее всего проблема с подключением. Проверьте машину клиента и убедитесь, что UrBackup на нем работает без сбоев. Логи клиента располагаются в /var/log/urbackup.log. Также можете проверить service urbackupclientbackend status. Если вы не можете определить причину проблемы, деинсталлируйте и повторно установите клиента.

3. «ERROR: No permission to access [Backup Directory]»
Если вы смонтировали внешнее устройство хранения напрямую и столкнулись с ошибками разрешений, то вам может потребоваться запустить службу от лица root-пользователя. Сначала проверьте разрешения директории бэкапа для пользователя и группы. Если вы не можете изменить разрешения для пользователя “urbackup” и группы “urbackup”, как в шаге 2.E, то сможете определить запуск UrBackup от лица root-пользователя. Для этого измените последнюю строку файла конфигурации (/etc/default/urbackupsrv) с urbackup на root и перезапустите сервер.

4. Ошибки ввода/вывода
Если вы не отсоединяли внешнее устройство хранения и получили ошибки ввода/вывода в процессе резервного копирования, то возможно это устройство повреждено или работает со сбоями. Если перезапуск телефона не решает проблему, скорее всего время подыскать новое блочное устройство.

5. Прочие ошибки
Если вы отклонились от руководства и не выбрали в качестве механизма резервного копирования “LVM”, убедитесь, что клиент и сервер совместимы с выбранной вами альтернативой. К примеру, если на клиенте установлен dattobd, а на сервере нет, резервное копирование провалится.

Остались вопросы по UrBackup? Нужна помощь? Обратитесь к полноценному руководству Administration Manual. Это щепетильный проект, и для каждого телефона возникнут свои сложности, так что, помимо обсуждения в комментариях, можете почитать форумы сообщества UrBackup.