Решение :
Запустите терминал (alt + ctrl + F1, если у вас установлен только gnome-terminal
), но помните, что это не навсегда, поэтому после перезагрузки вам нужно будет сделать это снова:
dbus-update-activation-environment --all
Или решить проблему навсегда (при условии, что у вас отсутствует сценарий в вашем /etc/X11/xinit/xinitrc.d
] см. объяснение для получения более подробной информации) загрузите в ~ / .xinitrc
соответствующие сценарии:
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
[ -x "$f" ] && . "$f"
done
unset f
fi
Обратите внимание, что это будет работать, только если у вас будет правильный сценарий в / etc / X11 / xinit / xinitrc.d
Объяснение :
В моем случае проблема заключалась в отсутствии переменной DISPLAY
для служб сеанса D-Bus.
Из-за этого я не мог запустить гном-концевой
и наутилиус
.
Я использую Arch Linux
с Slim
и несколько настроенных .xinitrc
. Из-за этого я пропустил загрузку дополнительных материалов из /etc/X11/xinit/xinitrc.d/
.В случае Arch Linux
существует сценарий с именем 50-systemd-user.sh
, который заботится о настройке надлежащей среды для сеанса D-Bus. В моем случае это выглядит так:
#!/bin/sh
systemctl --user import-environment DISPLAY XAUTHORITY
if which dbus-update-activation-environment >/dev/null 2>&1; then
dbus-update-activation-environment DISPLAY XAUTHORITY
fi
Насколько я понимаю, переменные DISPLAY
и XAUTHORITY
импортируются в блок среды systemd manager, а также в dbus-daemon - -session
, которые используют эти переменные при активации сеансовых служб.
Некоторые приложения (это также зависит от того, как они вызываются) выходят из строя из-за отсутствия этих переменных при запуске.
Имена /dev/sd*
устройств назначаются в порядке поступления -в порядке поступления и -обслуживания по умолчанию при инициализации драйверов контроллера памяти. Если у вас есть несколько разных контроллеров памяти, вы можете управлять их порядком загрузки.
Если это невозможно, пора научиться писать правила udev. Это не так сложно.
Сначала запустите udevadm info -q all -a -n /dev/sda
. В нем будут перечислены все атрибуты, которые вы можете использовать для идентификации диска /dev/sda
для udev. Команда запустится с дискового устройства /dev/sda
, а затем пойдет вверх по дереву устройств, каждый раз выводя блок атрибутов. Вы можете использовать атрибуты из первого блока и еще одного блока по вашему выбору .
Первый блок всегда является фактическим блочным устройством. У него, как правило, не слишком много полезных атрибутов, но мы можем использовать атрибут SUBSYSTEM
, чтобы гарантировать, что наше правило будет срабатывать только для фактического блочного устройства. Таким образом, первым условием для нашего правила udev будет SUBSYSTEM=="block"
.
Второй блок для типичного диска SATA содержит информацию на уровне драйвера sd
. У него есть ATTRS{model}
и/или ATTRS{wwid}
, которые можно использовать для уникальной идентификации этого конкретного диска. ATTRS{wwid}
может быть длинной строкой с большим количеством пробелов, но она должна включать серийный номер или другой уникальный идентификатор диска -, который будет лучшим кандидатом. Если серийный номер окружен пробелами или другими неважными строками, вы можете сопоставить его следующим образом:
ATTRS{wwid}=="*<serial number>*"
Как только будет создано достаточно условий для уникальной идентификации вашего дискового устройства, вы сможете решить, что с ним делать.Лучшим решением, вероятно, будет использование SYMLINK+="custom_name"
для создания ссылки, которая автоматически указывает на фактическое имя устройства, каким бы оно ни было на этот раз.
Вы также можете использовать что-то вроде NAME="sda"
, чтобы жестко закодировать фактическое имя устройства, но если вы это сделаете, вам лучше создать такие правила для всех ваших текущих дисков, чтобы диск, который еще не имеет пользовательского правило udev не получит перекрывающееся назначение. (Если вы сделаете это, вам также следует обновить свой /etc/fstab
, чтобы он соответствовал новым именам, и знать, как загружаться с внешнего носителя, чтобы исправить ситуацию в случае опечатки. В этом отношении символические ссылки более безопасны.)
Таким образом, для диска с серийным номером S12345 и строкой модели "HyperDisk "
вы можете назначить ему псевдоним /dev/dsk_sys
с таким правилом, как :(примечание :, если udevadm info
сообщает, что имеет завершающие пробелы, вы должны либо включить подстановочный знак, либо включить их в строку правил точно так, как указано.)
SUBSYSTEM=="block", ATTRS{model}=="HyperDisk ", ATTRS{wwid}="*S12345*", SYMLINK+="dsk_sys"
Поместите свои пользовательские правила, например, в. /etc/udev/rules.d/custom.rules
, затем перезагрузите (или, возможно, запустите partprobe /dev/sda
), и теперь у вас должна быть символическая ссылка /dev/dsk_sys
, указывающая на этот диск -, и она будет продолжать указывать на этот диск, даже если имя /dev/sd*
изменится.