Ubuntu для linux deploy

Linux Deploy — Ставим Ubuntu на Android

Уже больше недели в почтовом ящике лежало письмо от Сергея Чудакова (CSRedRat) с предложением описать великолепную программу — Linux Deploy. Сама программа для телефонов и планшетов с Android, но она позволяет сделать очень интересную вещь — установить Ubuntu на Android!

Похожие программы, автоматизирующие процесс установки и запуска GNU/Linux под Android, уже встречались, вот только данная программа бесплатна, с открытым исходным кодом, а также вполне стабильно работает.

А работает Linux Deploy следующим образом: Приложение создает образ диска на флеш-карте, монтирует его и устанавливает туда дистрибутив ОС (поддерживается установка ОС прямо на раздел карты или в каталог раздела с файловой системой ext2/ext3/ext4). Приложения из новой системы запускаются в chroot окружении параллельно со штатной работой платформы Android. Все вносимые изменения на устройстве обратимы, приложение и созданные им компоненты можно полностью удалить.

Отмечу, что процесс установки отображается в виде текстовых отчетов в главном окне приложения. Во время установки программа сама настраивает рабочее окружение, которое включает в себя базовую систему, сервер SSH, сервер VNC и графическую среду на выбор. Также через интерфейс программы можно управлять параметрами сервера SSH и VNC.

Характеристики Linux Deploy:

  • Поддерживаемые ОС: Debian, Ubuntu
  • Сборка под архитектуру: armel, armhf
  • Тип установки: loop-файл, раздел SD-карты, директория
  • Поддерживаемые файловые системы: ext2, ext3, ext4
  • Интерфейс управления: SSH, VNC, X
  • Окружение рабочего стола: XTerm, LXDE, Xfce, GNOME, Unity, KDE
  • Поддерживаемые языки: русский, английский

Установить Linux Deploy

Установить приложение Linux Deploy вы всегда сможете из Google Play: play.google.com.

Инструкция по использованию, а также интересные подробности тут: 4pda.ru. Кстати, тему на форуме создал сам автор приложения, так что обо всех ошибках и предложениях можно писать прям там.

Ну а я уже устанавливаю на свой планшет Ubuntu. 🙂 Как пишут в сети, в среднем установка занимает 30 минут.

Источник

Практическое применение Linux Deploy на десктопах

Несмотря на то, что изначально Linux Deploy задумывался как приложение для Android, со временем появляются и другие варианты его применения. С появлением Linux Deploy CLI стал доступен ряд возможностей, открывающих новые сферы применения этого инструмента.

Linux Deploy CLI — это приложение с интерфейсом для командной строки, предназначенное для автоматизации процесса установки, конфигурирования и запуска GNU/Linux дистрибутивов внутри контейнера chroot. Приложение может работать как в обычных десктопных Linux-дистрибутивах, так и на мобильных платформах, основанных на ядре Linux, при условии соблюдения необходимых зависимостей (все зависимости могут быть собраны статически). Приложения из Linux-дистрибутива запускаются в chroot окружении, работают параллельно с основной системой и сопоставимы с ней по скорости. Поскольку работа Linux Deploy базируется на системном вызове ядра Linux, то в роли «гостевых» систем могут выступать только дистрибутивы Linux.

Приложение может работать в двух режимах: с правами суперпользователя (chroot) и без них (proot). В обычном режиме доступны все поддерживаемые типы установки: установка в файл, на раздел диска (логический диск), в POSIX совместимую директорию и в оперативную память (tmpfs). В режиме proot доступна установка только в директорию, а также появляется ряд ограничений:

  • все пользователи внутри контейнера имеют полный доступ ко всей файловой системе контейнера, а владельцем всех файлов и каталогов является текущий пользователь;
  • нет доступа к привилегированным операциям с системой, например, не работает ping, ulimit и т.п.;
  • приложения могут работать только с номерами сетевых портов выше 1024;
  • если приложение в своей работе использует системный вызов chroot, то его необходимо запускать через специальную утилиту fakechroot, например fakechroot /usr/sbin/sshd -p 2222.
Читайте также:  Thinkpad yoga 12 linux

Приложение поддерживает автоматическую установку (базовой системы) и начальную настройку дистрибутивов Debian, Ubuntu, Kali Linux, Arch Linux, Fedora, CentOS, Gentoo, openSUSE и Slackware. Установка Linux-дистрибутива осуществляется по сети с официальных зеркал в интернете. Также поддерживается импорт любой другой системы из заранее подготовленного rootfs-ахрива в формате tar.gz, tar.bz2 или tar.xz. Приложение позволяет подключаться к консоли установленной системы (контейнеру), а также запускать и останавливать приложения внутри контейнера (есть поддержка различных систем инициализации и собственных сценариев автозапуска). Каждый вариант установки сохраняется в отдельный конфигурационный файл, который отвечает за настройку каждого контейнера. При необходимости, контейнеры можно запускать параллельно. Можно экспортировать конфигурацию и сам контейнер как rootfs-архив для последующего развертывания этого контейнера без повторной установки и настройки.

Вообще, идея Linux Deploy возникла из желания получить легкий и удобный инструмент для быстрого развертывания Linux-дистрибутива, который можно было бы использовать для целей разработки, тестирования или обучения, а затем быстро удалить его, не внося изменения в основную (хост) Linux-систему и не рискуя ее целостностью. Благодаря программе PRoot стало возможным создавать контейнеры для запуска Linux-приложений без прав суперпользователя (root), а также использовать программную эмуляцию QEMU для запуска приложений с отличающийся от хоста архитектурой без необходимости поддержки модуля binfmt_misc на уровне ядра.

Так вышло, что на моей основной работе с 2011 года используются компьютеры с Debian. Местные разработчики периодически нуждаются в системе для запуска и тестирования своих веб-приложений (в основном Java, PHP, Python). Для этих целей обычно использовались виртуальные системы либо на базе VirtualBox, либо в местном «облаке» Proxmox, либо Docker. Основным недостатком VirtualBox является его требовательность к ресурсам компьютера, большой размер VDI образа диска, относительно невысокая скорость работы и вероятность поломки образа VM при неправильном выключении системы. Недостатком при использовании «облака» можно назвать необходимость самому администратору обслуживать запросы пользователей на создание таких систем, а также расходование ресурсов «облака» на второстепенные задачи. Для работы с Docker требуются права суперпользователя.

В этом месяце был проведен эксперимент, PHP-разработчикам их виртуальный сервер был заменен на LD-контейнер. Были подготовлены два контейнера на базе Debian: Apache + PHP + OCI8 и Apache + PHP + MySQL + PhpMyAdmin. Контейнеры были размещены на общем сетевом диске в локальной сети, размер каждого контейнера составил около 150 МБ.

Что от этого получил администратор:

  • один раз подготовленный контейнер может быть развернут на компьютере разработчика одной командой без участия администратора;
  • работа с контейнером не требует прав суперпользователя, поэтому отсутствует риск поломки основной системы.

Что получил разработчик:

  • развертывание, запуск и управление системой в контейнере осуществляется без участия администратора одной командой;
  • развертывание контейнера из заранее подготовленных архивов осуществляется по сети менее чем за минуту;
  • запуск и остановка контейнера (Веб-сервер + БД) происходит мгновенно, не нужно ждать запуска операционной системы;
  • нет риска повредить контейнер, если забыл его отключить при выключении компьютера, т.к. образ системы представляет собой обычный каталог без собственной файловой системы;
  • компьютер работает быстрее, т.к. ресурсы тратятся только на запускаемый софт в контейнере, а не на всю операционную систему (в нашем случае это порядка 50 МБ, вместо 500 МБ в VirtualBox).
  • проверка работоспособности ПО прямо из каталога IDE без необходимости заливать его на сервер, для этого достаточно подключить к контейнеру необходимый каталог основной системы.
Читайте также:  Почему нет иконки windows 10

А теперь более подробно о том, как этого добиться. Далее будет приведена инструкция по подготовке и развертыванию LD-контейнера.

Для запуска контейнеров без прав суперпользователя необходимо установить PRoot:

Загрузка и установка Linux Deploy CLI:

Создание конфигурации с именем «linux» для развертывания базовой системы Debian Wheezy (64 бита):

Посмотреть сохраненную конфигурацию:

Запуск развертывания новой системы:

Подключение к консоли контейнера под пользователем root (для выхода команда exit):

Далее можно установить и настроить необходимый софт в контейнере, однако следует учитывать описанные ранее особенности. Например, для запуска Apache нужно поменять его порт (файл /etc/apache2/ports.conf) на 8000, установить пустой параметр APACHE_ULIMIT_MAX_FILES=» » (файл /etc/apache2/envvars), а сам apachectl запускать из-под обычного пользователя (не root).

Настройка автозапуска на базе системы инициализации SysV:

Параметры: INIT_LEVEL — уровень инициализации SysV, INIT_USER — из-под какого пользователя запускать сервисы (по умолчанию это root), INIT_ASYNC — запускать сервисы параллельно.

Подготовка конфигурации, экспорт ее и экспорт контейнера в rootfs-архив (поддерживаются tar.gz, tar.bz2 и tar.xz архивы):

Экранирование «\$» позволяет сохранять в конфиг имена переменных, а не их значения. Таким образом при импорте конфига эти переменные будут автоматически заменены на соответствующие значения, которые могут отличаться от текущих. Теперь есть два файла (linux.conf и linux.tgz), которые можно использовать при импорте контейнера на другом компьютере:

Подключить к контейнеру каталог основной системы (каталог

/www подключить в /var/www контейнера):

Запуск контейнера (для SysV выполняются сценарии /etc/rcN.d/SXXname start):

Остановка контейнера с освобождением ресурсов (для SysV выполняются сценарии /etc/rc6.d/KXXname stop):

В итоге получилось решение, которое удовлетворяет потребностям как разработчиков, так и администраторов. Исходные коды приложения Linux Deploy доступны под лицензией GPL версии 3.

Источник

Ubuntu для 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).

Читайте также:  Как настроить x lite для windows

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.

  • 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
  • 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

    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):

    Источник

    Оцените статью