Запуск Gnome 3 в среде только для чтения

Во-первых, я намерен создать портативный загрузочный USB-накопитель, содержащий дистрибутив GNU/Linux. В частности, я хочу использовать Arch Linux с корневой файловой системой squashfs только для чтения.

Образ squashfs основан на моментальном снимке работающей ВМ. Базовая система с такими сервисами, как ssh, работает из коробки, как и ожидалось. Но при попытке запустить gnome через systemd (systemctl start gdm) я вижу только черный экран (предположительно X-Server запустился, но gdm не загружается). Я уже пытался выяснить, что происходит, но не смог определить точную проблему.

  • Домашние каталоги доступны для записи
  • /tmp доступен для записи
  • /var/log доступен для записи
  • /var/run и /run в любом случае доступны для записи

/var/log/gdm создается, но остается пустым. Каким модулям может потребоваться доступ на запись к любым другим файлам? Есть ли документация? Что имело бы смысл в strace или подобном?

Я хочу узнать корень проблемы и исправить ее, а не использовать обходные пути, такие как unionfs. Спасибо за любую помощь или подсказки!

Хотя это не имеет значения, для тех, кто может задаться вопросом, почему я хочу это сделать, вот несколько моментов, которые следует учитывать:

  • Стабильность — поскольку вы не можете изменять системные файлы, вы не можете испортить систему (конечно, если вы не записываете поддельные данные непосредственно на диск)
  • Хранилище: поскольку файлы сжимаются, на диск помещается больше данных.
  • Производительность — поскольку ввод-вывод на большинстве USB-накопителей выполняется медленно, сжатие обеспечивает более высокую скорость ввода-вывода.
  • Портативность — никаких особых требований к хранилищу только для чтения, вы можете скопировать его на компакт-диск или с помощью любой другой технологии, предназначенной только для чтения, и оно будет работать так же, как и на записываемом диске.

Обновить

Я понял, что проблема на самом деле была в /var/lib/gdm. GDM попытался получить доступ к файлам там, но (молча) не смог, из-за чего у меня был черный экран.


person s1kam4n    schedule 29.09.2014    source источник
comment
Я работал над чем-то подобным в CentOS 7. Я установил ro для корневой файловой системы в /etc/fstab и READONLY=yes в /etc/systemctl/readonly-root. Это отлично работает для минималистской безголовой системы, но вход в систему с использованием GDM приводит к черному экрану, за которым снова следует запрос на вход в GDM. Я хотел бы получить журнал о попытках доступа к файлу, чтобы я мог добавить его в /etc/rwtab. Есть ли в Arch Linux эквивалент /etc/systemctl/readonly-root?   -  person James Marble    schedule 01.01.2015
comment
Этот вопрос кажется не по теме и больше всего подходит для unix.stackexchange.com...   -  person Am_I_Helpful    schedule 06.01.2015
comment
@MidoriKid Я не знаю, что у Arch есть эквивалент /etc/systemctl/readonly-root. Но, как сказано в ответе, я нашел решение проблемы. Возможно, вы захотите взглянуть на journalctl(1), так как он показывает вам журнал systemd. Вероятно, вам нужно подключиться к ящику через SSH, как мне было нужно, потому что GDM, похоже, заморозил весь X-сервер, и я не мог вернуться к TTY. 'journalctl -f' дает вам предварительный просмотр журнала systemd в реальном времени. И последнее, о чем следует упомянуть: если вы собираетесь использовать NetworkManager, убедитесь, что /etc/NetworkManager/system-connections также доступен для записи.   -  person s1kam4n    schedule 06.01.2015


Ответы (1)


Я понял, что проблема на самом деле была в /var/lib/gdm. GDM попытался получить доступ к файлам там, но (молча) не смог, из-за чего у меня был черный экран.

journalctl была командой отладки, которую мне не хватало в первую очередь.

person s1kam4n    schedule 05.01.2015