Ubuntu отключить сообщения об ошибках

Обновлено: 03.07.2024

Скорость загрузки вашей операционной системы - это очень важный момент в работе компьютера. Никому не хочется смотреть на заставку загрузки по несколько минут. Чем быстрее загрузится система и будет готова к работе, тем лучше.

Но порой система инициализации выполняет много лишних задач во время загрузки, иногда некоторые сервисы ожидают загрузки других и завершаются только по таймауту через некоторое время. В таких случаях система может загружаться до нескольких минут. В этой статье мы рассмотрим как ускорить загрузку Linux, что нужно для этого настроить, что удалить. А также немного поговорим о процессе загрузки. Мы сосредоточимся на системе инициализации systemd.

Как проходит загрузка Linux

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

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

Но самое интересное начинается дальше. Перед тем как начать загрузку системы ядро выполняет несколько проверок, загружает модули и так далее. Не все проверки нужно выполнять и не все модули нам нужны.

После того как ядро передало управление системе инициализации, начинается монтирование дисков. Это тоже отнимает время, лучше не использовать виртуальные разделы дисков, например, raid или lvm, да и вообще, чем меньше разделов - тем лучше. Идеальный вариант - только корневой раздел, тогда скорость загрузки linux будет максимальной. Но это очень невыгодный в плане удобства вариант, поэтому найдите золотую серединку. Перед тем как примонтировать каждый диск, система инициализации пытается проверить файловую систему на ошибки, это тоже замедляет загрузку.

Загрузка сервисов отнимает больше всего времени и больше всего работы придется проделать здесь, определить какие сервисы не нужны и отключить их также скрыть те сервисы, которые отключить нельзя. Чтобы понять что именно отключать нам нужно знать сколько времени занимает загрузка каждого сервиса. Давайте рассмотрим анализ скорости загрузки systemd.

Анализ загрузки Systemd

Анализ скорости загрузки системы важен не только в самом процессе оптимизации, но и для того, чтобы оценить насколько эта оптимизация удалась. Перед и после оптимизации нужно замерять время загрузки, чтобы понять чего мы смогли добиться.

Давайте посмотрим насколько быстро грузится наша система сейчас:

systemd

Да, здесь 17 секунд, не так уж плохо, но будет еще лучше после завершения ускорения загрузки. На загрузку ядра уходит 5.405, а на все остальные сервисы 11.611. Чтобы понять какие именно сервисы замедляют систему нам нужна более подробная информация, мы можем ее получить с помощью параметра blame:

systemd1

У нас есть список сервисов, которые загружаются дольше всего, но этот список ни о чем нам не говорит, потому что в Systemd параллельная загрузка сервисов. Если бы во время загрузки была какая-нибудь проблема, мы бы ее увидели, но проблем здесь нет. Нам нужен более детализованный график с указанием не только времени загрузки сервиса, но и с отображением параллельных загрузок и мы можем его получить командой:

systemd-analyze plot > graph.svf

Утилита сгенерирует svf файл с графиком, откройте его в браузере:

systemd2

Вот теперь у нас есть вся информация, чтобы оптимизировать систему. Здесь отображается не только время загрузки каждого сервиса, но также время когда он начал загружаться и когда завершил. Дальше начнем ускорение загрузки Linux.

Ускорение загрузки Linux

Начнем мы с оптимизации ядра 5 секунд, это не так много, но можно же еще улучшить. Мы не будем пересобирать ядро, хотя и это дало бы больший эффект, мы просто настроим его работу с помощью параметров загрузки.

Настраивать Grub будем правильно. Параметры загрузки ядра находятся в файле /etc/default/grub, а именно в строчке GRUB_CMDLINE_LINUX_DEFAULT. Откройте этот файл:

Теперь приводим интересующую нас строчку к такому состоянию:

GRUB_CMDLINE_LINUX_DEFAULT="quiet rootfstype=ext4 libahci.ignore_sss=1 raid=noautodetect selinux=0 plymouth.enable=0 lpj=12053560"

Разберем подробнее за что отвечает каждый параметр:

  • quiet - вывод, это долго, поэтому говорим ядру что на экран нужно выводить минимум информации
  • rootfstype=ext4 - указываем в какую файловую систему отформатирован корень. У меня ext4.
  • libahci.ignore_sss=1 - Ignore staggered spinup flag, ускоряет загрузку жестких дисков
  • raid=noautodetect - raid я не использую, думаю вы тоже поэтому отключаем.
  • selinux=0 - система полномочий selinux на домашней машине тоже ни к чему, без нее будет быстрее.
  • plymouth.enable=0 - заставка plymouth тоже занимает много времени, поэтому убираем заставку
  • lpj=12053560 - позволяет задать константу loops_per_jiffy, что позволит ядру не вычислять ее каждый раз и сэкономит до 250 миллисекунд. Это значение индивидуально для каждого компьютера.

Чтобы узнать значение последнего параметра выполните:

dmesg | grep 'lpj='

systemd3

Нас будет интересовать значение lpj=, укажите его в своем конфигурационном файле.

Также для указания корневого раздела желательно не использовать всякие там UUID, быстрее будет если написать прямо. Для того чтобы конфигуратор grub не использовал grub добавьте в тот же файл строчку:

Сохраните файл и обновим конфигурацию grub:

Проверяем, действительно ли установлены нужные опции:

systemd5

Да, все правильно, перезагружаем компьютер, и смотрим что вышло:

systemd4

Почти на одну секунду быстрее, и то хорошо. Возможно, у вас эффект будет намного лучше. Теперь идем разбираться с сервисами.

Настройка системы

Во-первых SELinux отключен не полностью. Для полного отключения добавляем строку в файл /etc/selinux/config:

sudo vi /etc/selinux/config

Во-вторых, проверка файловых систем тоже может занять некоторое время. Оставляем проверку на ошибки только для корня. Для этого откройте файл /etc/fstab и приведите строчку для корня к такому виду:

/dev/sda3 / ext4 defaults 1 1

Последний параметр отвечает за проверку, 1 - проверять, 0 - не проверять. Установите для всех других разделов 0. К тому же boot раздел лучше монтировать по требованию. Для этого изменяем его запись:

/dev/sda1 /boot ext4 noauto,comment=systemd.automount 1 0

Затем давайте перенесем папку /tmp в оперативную память, чтобы уменьшить количество операций на жестком диске:

tmpfs /tmp tmpfs defaults 0 0

Ускорение загрузки Linux отключением сервисов

Вот мы и добрались к сервисам. Оптимизация сервисов заключается в том, чтобы отключить лишнее, а также использовать только возможности, встроенные в systemd, так будет быстрее. Сначала перенесем всю функциональность на systemd.

Первым отключим rsyslog. В systemd используется свой механизм записи логов journald, поэтому вести еще один не нужно. Для отключения выполните:

sudo systemctl disable rsyslog
$ sudo systemctl mask rsyslog

Опция mask позволяет спрятать юнит, система будет думать что его не существует и не сможет загрузить. Восстановить такой юнит можно командой systemctl unmask.

В systemd реализована своя служба настройки сети - networkd, поэтому необязательно использовать NetworkManager. Работа со встроенной службой будет намного быстрее. Здесь нужно заметить, что если вы используете wifi и не хотите настраивать его вручную, через консоль, то отключать NetworkManager не стоит.

Отключаем NetworkManager и включаем networkd:

sudo systemctl disable NetworkManager
sudo systemctl enable systemd-networkd

Службу networking тоже можно отключить, если не используете:

sudo systemctl disable networking

Включаем resolved, который отвечает за настройку DNS серверов:

sudo systemctl enable systemd-resolved
sudo systemctl start systemd-resolved

Даем символическую ссылку на файл /etc/resolv.conf

sudo rm /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

Осталось настроить динамическое получение ip адреса при загрузке:

[Match]
Name=enp*
[Network]
DHCP=yes

enp0* значит, что сеть нужно подымать только для устройств, имена которых начинаются на enp0. Готово, сеть настроена.

В systemd есть свое решение для выполнения задач по расписанию, поэтому cron можно не использовать:

sudo systemctl disable cron

С заменой разобрались, перейдем к удалению лишнего. Отключаем фаервол, на домашней машине, за маршрутизатором он не нужен:

sudo systemctl disable ufw
$ sudo systemctl mask ufw

Отключаем apport (служба отчетов об ошибках):

sudo systemctl disable apport

Я не использую ppp и мобильные соединения, поэтому и эти сервисы можно отключить.

sudo systemctl disable pppd-dns
sudo systemctl mask pppd-dns

sudo systemctl disable ModemManager
sudo systemctl mask ModemManager

Если вы не используете Avahi, его тоже можно отключить:

sudo systemctl disable avahi-daemon

Систему AppArmor тоже можно отключить:

sudo systemctl disable apparmor

Также если у вас загружаются такие программы, как postfix (почтовый сервер), apache (веб-сервер), mysql (сервер баз данных) лучше их тоже убрать из автозагрузки и запускать потом вручную.

Перезагружаемся и проверяем скорость загрузки:

systemd7

У меня скорость загрузки linux выросла на пять секунд. Но это нормально, учитывая, что используется VirtualBox, на реальной машине можно получить и больше. А самая лучшая оптимизация - купить SSD, там можно достичь даже скорости загрузки до двух-трех секунд.

Выводы

Вот и все, в этой статье мы рассмотрели как ускорить загрузку Linux. Если у вас долго грузится Linux вы уже знаете что нужно делать. Если вы знаете другие способы ускорить загрузку Linux, напишите в комментариях!

Обнаружена ошибка в системной программе

Сообщить о проблеме разработчикам?

System_Program_Problem_Detected

Хотя если вы не используете Ubuntu, вы точно никогда не столкнетесь с такой проблемой. В этой статье мы рассмотрим что же делать с уведомлением обнаружена ошибка в системной программе в Ubnutu 16.04 или других версий.

Что делать если возникла "обнаружена ошибка в системной программе"

Что это вообще значит?

Если в других дистрибутивах такая ошибка не наблюдается, это еще не значит что дистрибутив стабильнее и программы не падают. Просто там некому палить такое их поведение.

Как только я нажму сообщить о проблеме, она исчезнет?

Нет, не совсем. После того как вы нажмете на кнопку отправки отчета, вы получите следующее окно:

Ubuntu_Internal_error

Утилита Apport соберет всю возможную информацию об ошибке, затем откроется браузер где вы сможете оформить отчет, используя свою или создав новую учетную запись Launchpad. Как вы видите это сложная процедура, которая займет около четырех шагов.

Кроме того, возможно, вы сможете решить проблему сами, если это не баг в программе, а ошибка, вызванная тем, что вы что-то неправильно установили. Посмотрите подробности (Show details) об ошибке в этом окне и попытайтесь сами или с помощью поисковых систем решить что с ней делать.

А если я хочу сообщить разработчикам о проблеме?

Вы предлагаете не сообщать о проблеме?

И да, и нет. Сообщите об ошибке когда увидите ее впервые если хотите. Информацию об ошибке вы можете увидеть, нажав кнопку Show details, как на картинке выше. Но если вы сталкиваетесь с ошибкой повторно и не можете ее решить или не хотите сообщать разработчикам советую вам избавиться от нее навсегда.

Исправляем проблему обнаружена ошибка в системной программе

Отчеты об ошибках хранятся в каталоге /var/crash. Если вы посмотрите содержимое этого каталога, можете увидеть там несколько файлов с данными о предыдущих ошибках.

Crash_reports_Ubuntu

Отчеты о сбоях лучше удалить, так как со временем они будут накапливаться и занимать дисковое пространство. Для этого выполните команду:

sudo rm /var/crash/*

Отключение Apport в Ubuntu

Вы можете отключить только утилиту, которая показывает вам уведомления, но оставить службу, собирающую данные в /var/crash работающей. Для этого выполните:

gsettings set com.ubuntu.update-notifier show-apport-crashes false

Для полного отключения Apport откройте терминал и введите команду:

gksu gedit /etc/default/apport

Вот содержимое этого файла:

Замените enable=1 на enable=0 и сохраните изменения. Теперь вы не увидите никаких отчетов о сбоях в программах. Программа не будет собирать отчеты об ошибках и вы о них никогда не узнаете. Если вы снова захотите видеть уведомления достаточно просто вернуть флаг enabled в положение 1.

Выводы

Надеюсь, эта статья помогла вам решить проблему обнаружена ошибка в системной программе Ubuntu 16.04. Конечно, это только косметическое решение, и от этого программа не перестанет аварийно завершаться, но большинство из нас обычные пользователи и мы не можем понять почему не работает та или иная программа. Нам остается только сообщить разработчикам, и отключить уведомления дабы они не мешали нормально работать.


Необходимо отредактировать конфигурационный файл apport. Откройте терминал, скопируйте и выпоните следующую команду для редактирования файла:

sudo gedit /etc/default/apport

Измените значение функции enabled (включено) с 1 на 0 (ноль) для отключения. Сохраните файл и закройте редактор:


2. Способ терминальный (автоматический)

Откройте терминал и выполните команду, которая делает тоже самое, без необходимости открытия файла на редактирование:

sudo sed -i "s/enabled=1/enabled=0/g" '/etc/default/apport'

После выполнения любого из способов, отчёты о сбоях и ошибках в системе не будут больше беспокоить.

23 комментария :

или удалить вообще apport, если отключили смысл его выключенным держать? зависимостей никаких нет

12.04.3 - даже на "ванильной" постоянно вылезают какие то ошибки.

Так отключи их, любым из приведённых способов, они и на 12.04.3 работают.

Отключение отчётов об ошибках не устраняет сами ошибки.

Нет конечно. Их устраняют разработчики.

Вот именно.И это на только что установленной системе.Слово "стабильность" тут неуместно.

При отключении всплывающих окон с отчетами - сами отчеты о сбоях будут автоматически отправляться или нет?

Нет. Но думаю и без нас "большевики" обойдутся

Я думаю, вы ошибаетесь, маэстро, иначе - зачем тогда разработчики за полгода до выхода новой версии запускают версию для тестирования? ну и поставили бы у себя в каморке пару-тройку компьютеров и тестировали бы себе потихоньку - так ведь нет - им более обширная картина нужна, не так ли?
И когда я отправляю, после очередного сбоя, отчет на лаунчпад, я ставлю галочку (точнее, кликаю на пункт AFFECTS TO ME - ВЛИЯЕТ НА МОЙ КОМПЬЮТЕР), то есть, конкретно на мой, конкретно сконфигурированный, а не усредненно-абстрактный, и после этого в очередных обновлениях читаю: для ЭТОГО компьютера доступны обновления, улавливаете разницу? не для этой версии дистрибутива 13.10, а для конкретного, моего, компьютера.
Поэтому, отключать отчеты я не буду, бикоз я и есть тот "большевик", на которого Вы, маэстро, так рассчитываете..))
И, кстати, надеюсь, что к моменту оф выхода моя система, благодаря моим отчётам, будет более устойчивой ко всякого рода крашам, нежели снуляустановленная..)))

Да ради Бога, Валера. Только не думаю, что разработчики будут посылать пересональные обновления всем "большевикам".

ты не думаешь, а они присылают..))

Ну да, касаемо 13.10 можно допустить что делаешь большое дело отправляя отчёты. И даже может быть так и есть. Валерий, ну хоть в LTS то можно отключить? Я например не хочу отправлять никому свои отчёты о сбоях.

А как разработчики узнают о проблемах, если отключать?

Не отключай. Эта статья ни кого не обязывает отключать, а просто поясняет для желающих, как это сделать.

Да это то понятно. Просто нет ли способа отправлять отчёты, но не видеть надоедающие окна? Вот это было бы идеально, а так по отключают все, а после выхода будут хаять разрабов за ошибки.

Да уж, безусловно - индикатор погоды - один из наиважнейших элементов системы, на который разработчикам следует обращать внимание в первую очередь (кстати, в каком дистрибутиве он установлен, как системный элемент по умолчанию?)
В самом деле - отчеты о сбоях в наутилусе, компизе, других СИСТЕМНЫХ элементах - могли бы обождать, если речь шла о сотнях тысяч (кстати, откуда статистика?) неработающих индикаторов погоды..)))
и - повторюсь - конкретно в моём случае - пока что каждое моё обращение на Launchpad с отчетом о сбоях не остаётся без внимания: либо по имейлу приходят рекомендации, либо исправления в обновлениях..))
Чего и всем желаю. )))


Uno из наиболее распространенных проблем, которые обычно возникают в Ubuntu или любые его производные когда пользователь устанавливает пакеты deb, которые он загружает с какого-то веб-сайта, Это известная проблема с невыполненными зависимостями, она возникает из-за того, что для указанного пакета требуется определенная версия приложения, или он будет выпущен, и его нет в системе, или что менеджер пакетов не может найти правильные зависимые пакеты, необходимые для выполнения программы Ubuntu.

Хотя такого рода проблемы возникают все реже и реже, В связи с тем, что многие пользователи уже склонны предпочитать использование приложений Flatpak, AppImage или Snap, в дополнение к тому факту, что у них уже есть достойный каталог с самыми популярными приложениями, и все больше разработчиков продолжают добавлять свои приложения в этот тип формат.

Выявление проблемы

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

Эта ошибка сообщается нам из терминала, который сообщает нам, что определенные зависимости не могут быть выполнены. или в случае установки через программный центр Ubuntu просто не устанавливает приложение.

Здесь важно проверить, не пытаемся ли мы установить устаревший пакет. Что ж, возможно, есть более свежий пакет или проверьте репозиторий, на какую дату датируются пакеты и до какой версии доступна.

Если конфликтующий пакет уже установлен, при попытке запустить команду:

Это проинформирует нас о конфликте и попросит нас выполнить команду для решения проблемы.

Применение первого решения

Здесь важно учитывать изменения, которые вы печатаете поскольку, если он не разрешается в конфликте с зависимостями, он продолжит удаление конфликтующего пакета или пакетов и сообщит нам, какие зависимости конфликтуют с пакетом.

Таким же образом вы можете выбрать другое решение:


Второе решение, установка необходимых зависимостей

Принимая во внимание предыдущий шаг, на котором мы записываем пакеты или библиотеки, необходимые для решения ошибок зависимостей, здесь мы собираемся установить пакеты один за другим с терминала, или мы можем помочь себе с помощью Synaptic

Например, в терминале нам показывают что-то вроде этого:

Следует отметить, что Это указывает на то, что выпуск «libgtk 3.0» больше или равен версии «3.16.2». за то, что мы должныs в этом случае загрузите версию указанной библиотеки. Здесь важно учитывать, что для библиотек многие приложения зависят от одной или определенной версии, поэтому лично я не советую вам сюда прикладывать руку.

Здесь вы можете скачать и установить нужные вам пакеты.

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

Третий и последний вариант. При распаковке необходимо изменить зависимости и переупаковку.

Последний вариант по идее лучший вариант, поскольку обычно разработчики обычно указывают, что приложение работает с определенной версией выпуска, но они не принимают во внимание, что указанная библиотека может быть обновлена ​​в течение нескольких дней или в тот момент, когда они выпускают свое приложение.

Итак, если они ограничивают работу приложения под определенной версией, Это тот, который вызывает конфликт.

Итак мы собираемся распаковать пакет deb и изменить зависимости к той версии, которая у нас есть в системе (поэтому было важно отметить, какие зависимости конфликтуют с конкретной версией).

Для этого мы наберем команду:

Мы собираемся получить доступ к папке и идем по маршруту "/ ДЕБИАН"

И мы собираемся редактировать файл "control" с нашим любимым редактором

Здесь мы будем искать строки, указывающие на зависимости с которыми у нас есть конфликты и мы собираемся их редактировать.

Например, мы найдем что-то вроде этого:

Мы собираемся перейти на ту версию, которая у нас есть. Сохраняем изменения и переупаковываем для переустановки с помощью:

И для установки создается новый пакет deb.

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Читайте также: