Linux на Android: способы установки и запуска

Ошибка «permission denied» при попытке запустить скрипт в Termux — самый частый сигнал того, что Linux-окружение на Android установлено, но файловая система или права настроены неверно. Проблема решается командой termux-setup-storage и проверкой, что скрипт лежит в доступной директории, а не на защищённом разделе. Это типичный сценарий: Linux на смартфоне работает, но требует понимания ограничений платформы.

Android сам построен на ядре Linux, поэтому запуск полноценного дистрибутива — не эмуляция «с нуля», а надстройка поверх существующего ядра. Ниже разберём рабочие способы: от терминала без root-прав до полноценного графического рабочего стола, а также типичные ошибки и их решения.

Как Android и Linux связаны технически

Android использует ядро Linux, но не содержит привычного окружения GNU: нет стандартной библиотеки glibc, нет привычной иерархии каталогов вроде /usr/bin, а вместо bash по умолчанию работает урезанная оболочка. Поэтому «установить Linux на Android» означает развернуть пользовательское окружение дистрибутива — Ubuntu, Debian или Arch — поверх существующего ядра.

Для этого применяются два подхода. Первый — chroot, требующий root-прав: система запускается в изолированном корневом каталоге с прямым доступом к ядру. Второй — proot, который эмулирует chroot через системный вызов ptrace и работает без root, но с небольшой потерей производительности. Именно proot лежит в основе большинства современных решений.

Способы запуска Linux на Android

Выбор метода зависит от того, есть ли у вас root-доступ и что вы планируете делать: писать скрипты в терминале или работать в графической среде.

  • 📱 Termux — эмулятор терминала с собственным пакетным менеджером, не требует root, подходит для консольных задач.
  • 🐧 proot-distro — надстройка над Termux для установки полноценных дистрибутивов (Ubuntu, Debian) без root.
  • 🖥️ VNC + графическое окружение — запуск рабочего стола XFCE или LXQt с просмотром через VNC-клиент.
  • 🔓 Linux Deploy — chroot-установка с root-доступом, максимальная совместимость и производительность.
  • 📦 UserLAnd, Andronix — приложения с готовыми сценариями установки для новичков.

Для большинства задач — программирование, серверы, автоматизация — достаточно связки Termux + proot-distro. Полноценный chroot оправдан, только если нужен доступ к железу или запуск сервисов, чувствительных к изоляции.

📊 Какой способ запуска Linux на Android вы используете или планируете?
Termux с proot-distro
Linux Deploy с root
UserLAnd или Andronix
Только выбираю вариант

Установка Termux и базового окружения

Скачивайте Termux только из F-Droid или с официального репозитория проекта на GitHub — версия в Google Play давно не обновляется и содержит устаревшие пакеты, из-за которых установка дистрибутивов завершается ошибками. Это единственная критичная деталь, которую нельзя пропустить.

После установки откройте приложение и обновите пакеты:

pkg update && pkg upgrade

Затем предоставьте доступ к хранилищу, чтобы обмениваться файлами между Android и Linux-окружением:

termux-setup-storage

Система запросит разрешение на доступ к файлам — подтвердите его. После этого в домашнем каталоге появится папка storage со ссылками на общие директории смартфона.

☑️ Подготовка Termux к работе

Выполнено: 0 / 4

Установка дистрибутива через proot-distro

Установите утилиту и посмотрите список доступных дистрибутивов:

pkg install proot-distro

proot-distro list

Для установки, например, Ubuntu выполните:

proot-distro install ubuntu

proot-distro login ubuntu

После входа вы окажетесь в полноценном окружении Ubuntu с пакетным менеджером apt. Обновите его и ставьте нужные инструменты — python, git, nginx и другие пакеты работают так же, как на обычном сервере. Вам не нужен root на телефоне: внутри proot-окружения вы и так являетесь суперпользователем.

⚠️ Внимание: proot не даёт доступа к реальному железу. Команды вроде systemctl не работают, поскольку systemd не может запуститься в такой изоляции. Сервисы запускайте напрямую, например nginx вместо systemctl start nginx.

Графический рабочий стол на смартфоне

Консоль покрывает не всё — для браузера или IDE понадобится графика. Схема такая: внутри дистрибутива ставится лёгкое окружение рабочего стола и VNC-сервер, а картинка выводится в VNC-клиент на Android.

Типовой порядок действий внутри Ubuntu под proot:

apt update

apt install xfce4 tightvncserver

vncserver :1

После запуска сервера подключитесь любым VNC-клиентом к адресу localhost:5901. Точный порт зависит от номера дисплея: для :1 это 5901. Если подключение не устанавливается, проверьте, что сервер запущен и пароль VNC задан при первом старте.

Альтернатива — Termux:X11, который выводит графику напрямую без VNC-прослойки и даёт более отзывчивый интерфейс. Способ требует установки отдельного приложения-компаньона и чуть более сложной настройки.

СпособRootГрафикаСложность
Termux + proot-distroНе нуженЧерез VNC / X11Низкая
Linux DeployНуженVNC, XServerСредняя
UserLAndНе нуженVNC встроенНизкая
Termux (только консоль)Не нуженНетМинимальная

Типичные ошибки и их решение

«Bad interpreter» или «permission denied» при запуске скрипта. Возможная причина — файл лежит в разделе, смонтированном с флагом noexec, например в общем хранилище Android. Переместите скрипт в домашний каталог Termux или внутрь proot-окружения и проверьте права: chmod +x script.sh.

Ошибки apt при установке пакетов. Часто помогает смена репозиториев на актуальные зеркала через termux-change-repo и повторное обновление. Также проверьте дату и время на устройстве — при большом рассинхроне ломается проверка сертификатов HTTPS.

⚠️ Внимание: не запускайте команды с sudo rm -rf по системным путям в Termux «для очистки». Даже без root можно удалить собственные данные окружения и файлы в общем хранилище, к которому выдали доступ.

Процессы убиваются при сворачивании приложения. Android агрессивно завершает фоновые задачи. Выполните в Termux команду termux-wake-lock, а в настройках батареи смартфона отключите оптимизацию для Termux. Путь к этой настройке зависит от оболочки производителя — ищите раздел «Батарея» или «Фоновая активность» в параметрах приложения.

Почему нельзя просто установить «настоящий» дистрибутив вместо Android

Загрузчик большинства смартфонов заблокирован, а ядро собрано под конкретное железо с проприетарными драйверами. Полная замена ОС возможна на ограниченном числе устройств через проекты вроде postmarketOS, но требует разблокировки загрузчика, кастомного recovery и готового порта под вашу модель. Для большинства пользователей proot/chroot-окружение — практичный компромисс без риска окирпичить устройство.

Ограничения и производительность

Proot добавляет накладные расходы на каждый системный вызов, поэтому файловые операции и компиляция идут медленнее, чем на обычном ПК. Для редактирования кода, скриптов, SSH-клиента и небольших серверов скорости хватает; тяжёлые сборки и базы данных будут заметно тормозить.

Оперативная память — второй узкий момент. Графическое окружение, браузер и Android-приложения одновременно легко исчерпают 4–6 ГБ. Закрывайте лишние приложения перед запуском рабочего стола и выбирайте лёгкие окружения вроде XFCE или LXQt вместо GNOME.

Часто задаваемые вопросы

Можно ли установить Linux на Android без root-прав?

Да. Связка Termux + proot-distro или приложения вроде UserLAnd работают без root и покрывают большинство задач: консольные утилиты, программирование, серверы и даже графический рабочий стол через VNC.

Будет ли работать Docker в Termux?

Полноценный Docker в proot-окружении обычно не работает, так как ему нужны возможности ядра (cgroups, namespaces), недоступные без root и специальной сборки. Для изоляции используйте отдельные proot-дистрибутивы.

Как перенести файлы между Android и Linux-окружением?

После выполнения termux-setup-storage общее хранилище доступно в Termux через ~/storage/shared. Изнутри proot-дистрибутива этот путь тоже виден, если при входе используется привязка каталогов, которую proot-distro настраивает автоматически.

Опасно ли это для смартфона?

Установка Termux и proot-дистрибутивов не затрагивает системные разделы и безопасна: удаление приложения полностью убирает окружение. Риски появляются только при root-методах и разблокировке загрузчика — они могут аннулировать гарантию и привести к потере данных.

Какой дистрибутив выбрать для начала?

Ubuntu или Debian — у них самая предсказуемая работа apt и больше всего инструкций под архитектуру ARM. Arch подойдёт тем, кто уже знаком с ним на ПК, но потребует больше ручной настройки.