Как запускать несколько рабочих окружений Linux одновременно с помощью X
Введение
Одна из сильных сторон Linux — гибкость. Даже если вы активно используете систему долгое время, X Window System (коротко «X») всё ещё хранит полезные трюки. Одна из таких возможностей — запуск нескольких полных рабочих окружений одновременно без виртуализации: каждое окружение живёт на своём дисплее X, и вы переключаетесь между ними через виртуальные терминалы.
Кратко: когда вы видите графику в Linux — за этим, скорее всего, стоит X.org. Он управляет выводом на экран и запуском клиентских приложений графической подсистемы.
Ключевая идея
- Виртуальные терминалы (virtual terminals) — это консоли, доступные по Alt+Ctrl+F1…F6.
- Дисплеи X начинаются с F7 и дальше: F7 обычно — первый графический дисплей (:0), F8 — второй (:1) и т.д.
- Каждый дисплей X может запускать свою сессию рабочего стола и набор программ независимо от другого.
Это значит, что без выхода из сессии, перезапуска приложений или запуска виртуальной машины вы можете иметь, например, одновременно Gnome и Window Maker и быстро переключаться между ними.
Виртуальные терминалы: быстрое объяснение
- Alt+Ctrl+F1…F6 — виртуальные текстовые терминалы. Каждая функция запускает отдельную консоль.
- Alt+Ctrl+F7 и выше — дисплеи X. Обычно Alt+Ctrl+F7 возвращает вас в основную графическую сессию (:0).
Если хотите проверить прямо сейчас: нажмите Alt+Ctrl+F1 — вы попадёте в полноэкранную консоль. Вернуться к графике можно по Alt+Ctrl+F7.
Подготовка: что нужно установить
Установите желаемое рабочее окружение или менеджер окон. В примерах ниже используется Window Maker как лёгкий заменитель полноценных DE. Для Ubuntu это можно сделать через пакетный менеджер:
sudo apt update
sudo apt install wmaker(Используйте пакетный менеджер вашей дистрибуции: apt, dnf, pacman и т.д.)
Создание или изменение ~/.xinitrc
Когда X запускается из командной строки, он читает файл ~/.xinitrc в домашнем каталоге, чтобы понять, какой процесс запустить в графической сессии. Создайте или откройте этот файл и добавьте в него исполнительную строку вашего окружения. Например для Window Maker:
exec wmakerСохраните файл и закройте редактор. Теперь этот xinitrc определит, что будет запускаться при старте X на том дисплее, где вы вызываете startx.
Запуск второго рабочего окружения
Откройте терминал и выполните:
startx -- :1Эта команда запустит новый экземпляр X на дисплее :1 (обычно отображается на Alt+Ctrl+F8). После запуска вы увидите ваше второе рабочее окружение. Чтобы вернуться в основную графическую сессию, используйте Alt+Ctrl+F7; чтобы снова перейти на второй дисплей — Alt+Ctrl+F8.
Повторите с :2, :3 и т.д., если захотите добавить дополнительные окружения. Просто увеличьте число в startx – :N.
Скриншоты
Alt + Ctrl + F7 = Gnome desktop

Alt + Ctrl + F8 = Window Maker desktop

Устранение неполадок
Ниже — частые ошибки и способы их решения.
X: user not authorized to run the X server, aborting.
Это проблема конфигурации X. Откройте файл /etc/X11/Xwrapper.config от root и измените параметр allowed_users:
sudo gedit /etc/X11/Xwrapper.configНайдите строку
allowed_users=consoleи замените на
allowed_users=anybodyЗамена даёт возможность запускать X пользователю, не привязанному к текущей консоли. Учтите, что это меняет модель прав запуска X и может повлиять на безопасность в специфических окружениях — если вы администрируете сервер с несколькими пользователями, оцените последствия.
X: client 1 rejected from local host
Обычно легко исправляется удалением файлов .Xauthority в домашнем каталоге:
rm ~/.Xauthority*После удаления попробуйте повторно запустить startx. Система пересоздаст нужные файлы авторизации.
Ошибки запуска окружения
- Проверьте лог X в ~/.local/share/xorg/ или /var/log/Xorg.*.log.
- Убедитесь, что команда в ~/.xinitrc корректна и исполняема.
- Для диагностики запускайте startx без – :N, чтобы увидеть сообщения в консоли.
Альтернативные подходы и когда этот метод не подходит
- Виртуальные машины (VirtualBox, KVM): подойдут, если нужно изолировать окружения целиком, включая разные ядра/дистрибутивы. Минус — накладные расходы по ресурсам.
- Контейнеры (Docker с графикой через X11/Wayland): дают лёгкую изоляцию приложений, но сложнее настроить полноценную десктоп-сессию.
- Вложенный X (Xephyr): полезно для тестирования окружений в окне на текущем рабочем столе, без переключения VT.
Когда не стоит использовать несколько дисплеев X:
- Если вам нужна строгая изоляция безопасности между сессиями.
- На системах с ограниченными аппаратными ресурсами (много одновременно работающих сессий нагрузит память/CPU).
Мини-методика: быстрый план для добавления третьего рабочего окружения
- Установите желаемый менеджер окон/DE.
- Создайте ~/.xinitrc для этого окружения (exec <команда>). Можно хранить несколько xinitrc-скриптов и вызывать их через wrapper.
- Запустите startx – :2.
- Переключайтесь Alt+Ctrl+F9 (или соответствующая FN-клавиша).
- Проверяйте логи при ошибках.
Ролевые чек-листы
Пользователь
- Установить пакет окружения.
- Создать ~/.xinitrc с exec
. - Запустить startx – :N.
- Переключаться сочетаниями клавиш.
Системный администратор
- Проверить /etc/X11/Xwrapper.config и политику allowed_users.
- Настроить права доступа к устройствам /dev/tty и /dev/dri при необходимости.
- Мониторить использование ресурсов (RAM/CPU/GPU).
Критерии приёмки
- Второй X-дисплей стартует без ошибок.
- Можно переключаться между дисплеями комбинациями Alt+Ctrl+Fx.
- Приложения в одной сессии продолжают работать при переключении на другую.
- Логи не содержат критических ошибок графического драйвера.
Пример сценариев тестирования
- Запустить startx – :1 и открыть 3 приложения. Переключиться на :0 и убедиться, что приложения :0 продолжают работать.
- Перезапустить графическую сессию :1 и проверить, что :0 не закрылась.
- Удалить ~/.Xauthority и попробовать снова: система должна создать новый файл и авторизация должна пройти.
Безопасность и последствия
Запуск X от имени любого пользователя (allowed_users=anybody) упрощает работу, но расширяет круг пользователей, которые смогут запускать X локально. На многопользовательских системах это может повысить риск случайного или преднамеренного доступа к графическим ресурсам. Рекомендуется оценить окружение и, при необходимости, применять дополнительные политики контроля доступа.
Полезные подсказки и эвристики
- Если вы планируете часто переключаться между окружениями, настройте удобные сочетания клавиш в каждом DE для быстрого доступа к терминалу и отключения звука.
- Для тестирования новых DE используйте Xephyr, чтобы не менять текущую конфигурацию.
- Держите отдельный файл ~/.xinitrc-
для каждого окружения и создайте wrapper-скрипт, который копирует нужный файл в ~/.xinitrc перед запуском startx.
Короткий глоссарий
- X: X Window System, сервер графики для Unix-подобных ОС.
- Дисплей/дисплейный номер: идентификатор X-сессии (:0, :1 и т.д.).
- Виртуальный терминал: текстовая консоль, доступная через Alt+Ctrl+Fx.
Заключение
Запуск нескольких рабочих окружений одновременно через X — простой и мощный инструмент в арсенале пользователя Linux. Это экономит время и ресурсы по сравнению с виртуальными машинами и помогает быстро переключаться между разными рабочими стилями. Подход остаётся пригодным для развития навыков администрирования и тестирования графических окружений без сложных настроек.
Важно: оцените требования безопасности и ресурсы системы перед разворачиванием множества параллельных сессий.
Краткое резюме
- X позволяет иметь независимые графические дисплеи (:0, :1 и т.д.).
- ~/.xinitrc управляет тем, что запускается в каждой сессии.
- Команда startx – :N запускает X на указанном дисплее.
- Переключение между дисплеями происходит сочетаниями Alt+Ctrl+Fx.
Похожие материалы
Удалить Bing из Chrome — инструкция
Восстановить удалённое приложение на iPhone
Как настроить заметку в Google Keep
Хостинг статического сайта на S3 и CloudFront
Восстановление заметок Sticky Notes в Windows 10