Linux deploy инструкция по установке на андроид

Время на прочтение
15 мин

Количество просмотров 30K

Сегодня я покажу вам, как запустить полноценный резервный сервер на рутованном телефоне 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.

18 Nov 2012
|

android

linuxdeploy

Instructions for installing the GNU/Linux distribution via Linux Deploy for Android:

  1. Connect WiFi or another network with Internet access. Installation is carried out over the network and will not work without Internet access.

  2. Make sure that you have superuser (root) rights on the device.

  3. Install the latest version of Linux Deploy.

  4. Install the BusyBox app and start the installation with the “Install” button. By default, BusyBox is installed in the /system/xbin directory, which usually does not need to be changed. If the installation directory already contains utilities of the same name, they will not be replaced by utilities from BusyBox, which can subsequently lead to problems with Linux Deploy. To prevent this from happening, in the BusyBox settings the option “Settings” -> “Replace applets” must be selected.

  5. Launch the Linux Deploy application and go to settings. Verify that “Settings” -> “BusyBox directory” specifies the BusyBox installation directory in the previous step. If for some reason BusyBox cannot be installed on the system partition (for example, HTC has a system partition write lock), you can specify the /data/data/ru.meefik.busybox/files/bin path as the BusyBox directory. After changing the BusyBox directory, you need to update the working environment of the “Settings” -> “Update ENV”. It is useful to leave the “Settings” -> “Screen Lock” option enabled: while the application is active, the screen, WiFi and processor will not go into sleep mode.

  6. The program supports work with several profiles, where the settings for each Linux instance are stored. You can quickly switch between instances through the profile management window (opens by clicking on the icon in the header of the main window). By default, a profile is created with the name Linux. Go to the settings of the current profile (rightmost button) and set the necessary options for installing and running the GNU/Linux distribution (see description of parameters).

  7. Start the installation from the “Properties” -> “Install” button. The installation log is displayed in the main application window. Installation takes about 30 minutes on average.

  8. If the installation is complete without errors, you can start the Linux system with the “START” button. This will start the services selected in the parameters — SSH, VNC.

  9. To access the Linux console over SSH, you must install ConnectBot (or another SSH client). To access the Linux desktop, you must install a VNC client, such as VNC Viewer. The default settings for connecting to the system via VNC are: Host — 127.0.0.1, Port — 5900. The default password for SSH and VNC is changeme. You can change the password of the current user in the application settings, either from the console with the passwd command for SSH or vncpasswd for VNC. To run programs from the root user, use the sudo command (for example, sudo synaptic). By default, the root user (unless specified in the settings as the user name) does not have a password, but you can set a password for it with sudo passwd root.

  10. To stop the Linux system, all the services running under it and unmount the disks, just press the “STOP” button.

linuxonandroid

A few years ago when the first Samsung Galaxy was still considered one of the best smartphones in the world I started reading small tutorials where I was testing being able to install Ubuntu on this smartphone With the help of the same system we created our ARM version and it was an adventure trying to do it.

Well, as the years go by Better and simpler methods have emerged where they allow us to host an operating system within Android, that is why I decide to share one of those applications that can help us.

In this case we will use an application that is hosted within the Google repositories this is «Linux Deploy«I leave you the link so that you can it is install hereIt is important for me to mention that it is necessary to have root privileges so if you do not have your phone rooted, this app will not work for you.

Requirements for Linux Deploy

  • Android greater than 2.1
  • More than 5 GB of internal memory or, failing that, an SD with more than 5GB and that is class 10 or higher if the system is hosted here.
  • Download VNC from the Play store
  • Download BusyBox from Play Sotre
  • An internet connection or, failing that, a good data plan since you will download the ARM image of the system that interests you, they are usually more than 2 GB.

Well, having already installed Linux Deploy on our android, We will proceed with the application configuration.

Screenshot

Within the app we will find three menus, two at the top and one at the bottom, the one that interests us at the moment is the one at the bottom, the one in the lower right right next to «STOP».

Being inside this menu we will find several options:

  • Distribution to install
  • Architecture (it is important to know what architecture is your processor if arm, arm64 armhf or armel)
  • Download path
  • Installation type (I recommend file)
  • And finally the path (here you define whether it will be in your internal or external storage).

Made the configurations that you consider are necessary To your needs, in the following options below these we will find what type of default file system is EXT2, here I suggest leaving what it has by default.

In the final options in «GUI» we enable the box and here we can configure which desktop environment to be installed in the distribution.

Screenshot

Here we have two options:

The first is to download the image of the system that we want to installWe must look for this on the net when saving it we must identify in which route it is Since the we must indicate in the section of «Installation path» finally we only proceed to return to the main screen and in the upper right menu, we will select the option «Install».

The second option is to leave everything as is in the configuration and let Linux Deploy take care of the following:

We return to the main screen and In the upper right menu, we will select the option «Install» here will proceed to connect to the internet to download everything necessary to create the system image, we just have to wait for the process to finish. This process can take from 30 minutes onwards since it depends on the download speed of your internet connection.

Once the installation is finished, we just have to start the system With the help of the lower menu where is «Start».

Now we just have to go to VNC that we download from the Play Store and we will place the IP address that appears on the Linux Deploy main screen and with that we are already within our Linux distribution on Android.

Finally, if you have a Bluetooth keyboard and mouse, you will have a better experience, although I must emphasize that I have in my hands a Pwn Phone would be much better, but I don’t have the budget to be able to afford a smartphone of this caliber.

The content of the article adheres to our principles of editorial ethics. To report an error click here.

How To Install Kali Linux on Android using Linux deploy.

Kali Linux continues to be a popular operating system for white hat hackers, security researchers and pen testers. It is a penetration testing Linux distribution (distro) mainly used by digital forensics and cryptographers because it offers a wide range of tools to support investigations and incident response mechanism. Kali’s advanced penetration testing tools and its ease of use means that it should be a part of every security professional’s toolbox.

While Kali Linux is only made available for a few Android devices, there is now a way to flash the system using change root (chroot) on almost any modern handset that runs on Android OS (You can also flash the latest Android ROMs if you don;t have one, although you would have to unlock your bootloader, install twrp and root your phone to do that). The developers of Linux Deploy have made it extremely easy to get any number of Linux distributions installed in a chroot environment (virtualized environment) using a simple GUI builder. 

Let’s get started with installing Kali Linux on any Android devices.

Prerequisites

  • A device running Android 2.1 and above, rooted (Learn How To Root Your Phone Here).
  • At least 5 GB free space on internal or external storage. (You can also learn how to increase your internal memory of you have less space on your device).
  • A fast, wireless internet connection.
  • Full battery
  • Patience.

Standard Packages of Kali Linux

Standard packages contains anything and everything I found useful. This list if divided into 3 parts:

1. Kali Specific

Kali Linux is a special build from Debian. Kali Linux inherits a lot of the issues from Debian Linux. This section shows you how to resolve of those. They are not specific to Kali Linux only and you might be leave them as it is, but I found that if I see an error my OCD kicks in and I have to make it go away…

2. Useful utilities and Software’s

A collection of utilities and software’s I found useful. These are day to day software’s that are available in most other Linux distributions or at least I think they should be made available as part of a default installation.

3. Enhancements and accessibility

Kali Linux is made to boot up fast and low of resources. But if you have some more CPU and GPU power to spare, you might want to try to make it look more colorfu

Steps to Install Kali Linux in any Android device

Step 1. The first step is to download and install Linux Deploy app in your Android device. The latest update Linux Deploy v2.6.0 supports Android 5.0 and above versions. That means, even newer devices can now take advantage of Linux Deploy.    

Step 2. Launch the app after the downloading and installation process. On the screen, you may see a download button at the bottom. Tap on it to download an additional package (Navigation drawer).

Linux Deploy
Linux Deploy

Step 3. Now, look for the navigation drawer (it could be the three dots beside the download button, or the hamburger button. Inside, tap on Distribution option and change it to Kali Linux instead of Linux. At this point, you’ve pretty much covered the important stuff. 

You also have an option of choosing your architecture, verify that the Kali mirror is correct, set your installation type and location on your Android device, etc. Generally speaking, the defaults provided by Linux Deploy are reasonable to begin with.

Step 4.  Now scroll up and click on the Install button at the top of there. Depending on your Internet connection speed, this process could take a while.

Step 5. Starting of services such as SSH and VNC for easier remote access. All of this is automatically done by hitting the “Start” button. You should see Linux Deploy setting up your image with output similar to the following:

Linux Deploy
Linux Deploy

Now you can use either a SSH or VNC client to access your Kali instance.

Step 6. Now, download and install VNC Viewer App on your Android from the Google Play Store. After that, launch the app and fill up the settings as displayed on the screenshot below:

VNC-Viewer
VNC Viewer

Step 7. Now click on the Connect button, and that’s pretty much it. You are now done. Kali Linux is now installed in your Android smartphone. You can enjoy the dummy hacking environment on your phone.

Conclusion

Some devices reported strange error after Installing Kali Linux. If you faced any such error, it could be a ROM issue. Try with other devices if you failed. Let us know if you encountered any strange error whose solution you can’t find in Linux forums, and we will try to provide you solution.

FAQs

Ajinkya

Ajinkya has close to a decade of experience covering consumer technology and previously worked with Android Authority, Android Headlines, Anandtech and lot more. Ajinkya loves all things technology and is also an avid DIYer at heart. Ajinkya has a background in IT and Deep Passion for Everything Android and Google. His specialties lay in Smartphones of all budgets, Accessories, Home Automation and more.

It’s easy to forget that Android is a Linux-based operating system sometimes. But it is, and it retains some of that openness and flexibility that attracts people to the Linux platform.

As an example, you can actually install a full Linux distro on your Android device. We’ll demonstrate how to install Ubuntu on Android using an app called Linux Deploy, which will install the Linux desktop environment, but you can use this same method to install Debian or various other Linux distros.

Note: you’ll need to root your Android device before starting this process.

First, install BusyBox. This is a toolkit that unlocks your Android phone for various Linux commands that are essential to getting Ubuntu up and running. You won’t need to actively use this after installing it.

You’ll also need VNC Viewer, a remote desktop app that creates the window within which Ubuntu will run on your Android device. This is what you’ll ultimately be using to get Linux up and running.

Finally, you need to install Linux Deploy, which you’ll use to install Ubuntu (or one of several different versions of Linux, for that matter).

After installing Linux Deploy, open it and tap the icon with the three sliders (bottom-right corner).

Here you can select the Linux distro you want to install. (Just tap “Distribution,” then select the distro name – we went with Ubuntu.)

install-linux-deploy-android-settings-1

After that, scroll to the GUI section at the bottom, tap the “Enable” box and make sure “VNC” is selected under “Graphics subsystem.”

install-linux-deploy-android-enable-gui

Once you’ve done that, you can also go into “GUI Settings” to set the resolution of Linux once it runs. Unless you have a tablet, the default 1920 x 1080 resolution on most smartphones is probably too high to practically use Linux, so we recommend lowering it to 1024×576 or 1152×648.

install-linux-deploy-android-resolution

Finally, scroll back up about halfway until you find “User name” and “User password.” Make a note of them, or replace them with your own.

install-linux-deploy-android-user-name-password

Those are all the settings you need to tweak. Go back to the Linux Deploy home screen, tap the three-dotted menu icon at the top-right and tap “Install.”

install-linux-deploy-android-install

The installation may take from one to several minutes, depending on the speed of your smartphone.

Once it’s finished (denoted by the “<<<deploy” message at the bottom of the install log), tap Start at the bottom-left corner, then “OK.” Once you see the message “<<< Start” at the bottom of the log, Linux is deployed and running.

Run Linux on Android

But in order to actually see and use Linux, you need to use VNC Viewer. Open VNC Viewer, tap the green “+” icon at the bottom-right, then in the “New connection” box enter “localhost” as an address, and give the connection a name of your choice. (We went with “Linux.”) Click “Create.”

install-linux-deploy-android-new-connection

Tap the new connection in VNC Viewer to open it, and your Linux build should open up!

install-linux-deploy-android-ubuntu-running

It won’t have anything installed on it by default, but you can go to the Terminal and sudo apt-get install various software like you normally would in Linux.

Conclusion

That’s it. You now have a fully functional Linux distro on your Android device.

install-linux-deploy-android-root-browser

If at any point you decide that you don’t want Linux any more, it’s not a case of uninstalling Linux Deploy. Instead, you’ll need to use a file explorer with root access (we used Root Browser), find the directory “/data/user/0/ru.meefik.linuxdeploy/env” and delete it. (You can change the default Linux install directory in Linux Deploy’s settings menu).

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox

Robert Zak

Tech writer at Make Tech Easier. Enjoys Android, Windows, and tinkering with retro console emulation to breaking point.

Linux Deploy

Copyright (C) 2012-2019 Anton Skshidlevsky, GPLv3

This application is open source software for quick and easy installation of the operating system (OS) GNU/Linux on your Android device.

The application creates a disk image or a directory on a flash card or uses a partition or RAM, mounts it and installs an OS distribution. Applications of the new system are run in a chroot environment and working together with the Android platform. All changes made on the device are reversible, i.e. the application and components can be removed completely. Installation of a distribution is done by downloading files from official mirrors online over the internet. The application can run better with superuser rights (root).

The program supports multi language interface. You can manage the process of installing the OS, and after installation, you can start and stop services of the new system (there is support for running your scripts) through the UI. The installation process is reported as text in the main application window. During the installation, the program will adjust the environment, which includes the base system, SSH server, VNC server and desktop environment. The program interface can also manage SSH and VNC settings.

Installing a new operating system takes about 15 minutes. The recommended minimum size of a disk image is 1024 MB (with LXDE), and without a GUI — 512 MB. When you install Linux on the flash card with the FAT32 file system, the image size should not exceed 4095 MB! After the initial setup the password for SSH and VNC generated automatically. The password can be changed through «Properties -> User password» or standard OS tools (passwd, vncpasswd).

The app is available for download in Google Play and GitHub.

Get it on Google Play
Get it on Github

Features

  • Bootstrap: Alpine, Arch, CentOS, Debian, Fedora, Kali, Slackware, Ubuntu, Docker or from rootfs.tar
  • Installation type: image file, directory, disk partition, RAM
  • Supported file systems: ext2, ext3, ext4
  • Supported architectures: arm, arm64, x86, x86_64, emulation mode (ARM ~ x86)
  • Control interface: CLI, SSH, VNC, X11, Framebuffer
  • Desktop environment: XTerm, LXDE, Xfce, MATE, other (manual configuration)
  • Supported languages: multilingual interface

FAQ

Do not work update operating environment or errors appear in debug mode: «Permission denied», «Socket operation on non-socket» or other.

Install compatible BusyBox in /system/xbin, add path /system/xbin in «Settings -> PATH variable», update the operating environment «Settings -> Update ENV». Before upgrading the environment, it is desirable restart the device. After that, the container options must be selected «Properties -> File system -> Auto» and «Propetries -> Image size (MB) -> 2000», because «busybox mke2fs» is not supperted an option «-t» to specify type of file system and not supperted image greater 2 GB. Now you can start a new installation «Menu -> Install».

Making an image on sdcard return an error «Read-only file system».

If you are using SuperSU utility you need to uncheck «mount namespace separation» in SuperSU settings. See documentation.

Installing an application on Google Play fails with the message «Unknown error code during application installation: -24».

You need to remove the application directory: /data/data/ru.meefik.linuxdeploy

Performance

SD card read / write speed (10 class) on Android (Samsung Galaxy S II) for file systems vfat, ext2, ext4:

  • vfat: read speed 14.1 MB/s; write speed 12.0 MB/s
  • ext2: read speed 14.9 MB/s; write speed 3.9 MB/s
  • ext4: read speed 14.9 MB/s; write speed 16.6 MB/s
  • ext2 (loop): read speed 17.0 MB/s; write speed 7.4 MB/s
  • ext4 (loop): read speed 17.2 MB/s; write speed 8.8 MB/s

Installation time and use space on disk (Debian wheezy/armhf on Samsung Galaxy S II):

  • Without GUI ~ 0:12 / 260 MB
  • XTerm ~ 0:14 / 290 MB
  • LXDE ~ 0:19 / 450 MB
  • XFCE ~ 0:20 / 495 MB
  • GNOME ~ 0:55 / 1.3 GB
  • KDE ~ 1:20 / 1.3 GB

Links

Source code:

  • Linux Deploy App: https://github.com/meefik/linuxdeploy
  • Linux Deploy CLI: https://github.com/meefik/linuxdeploy-cli

Donations:

  • E-Money: https://meefik.github.io/donate
  • Google Play: https://play.google.com/store/apps/details?id=ru.meefik.donate

Понравилась статья? Поделить с друзьями:

Это тоже интересно:

  • Linux mint как установить с флешки пошаговая инструкция
  • Linh chi f инструкция по применению
  • Linux bakso damla инструкция на русском
  • Linear actuator 24v инструкция на русском языке
  • Lintratek усилитель сотовой связи инструкция по применению

  • Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии