Что делать если зависла Ubuntu
Операционная система Linux намного стабильнее Windows. Но и здесь тоже иногда случаются зависания. Зависнуть может как отдельное приложение, полностью графическая оболочка или вся система. Важно знать, как правильно действовать в таких случаях, когда зависает ubuntu 16.04, чтобы не повредить данные и файловую систему, чтобы выйти из таких ситуаций с минимальными потерями.
В этой инструкции мы рассмотрим возможные причины зависания Ubuntu, что со всем этим делать, а также как попытаться спасти не сохраненные данные. Это, наверное, самый важный момент — выйти из ситуации без потери данных.
Зависла программа Ubuntu
Сама система, ядро или графическая оболочка зависают очень редко. Они уже множество раз протестированы, перепроверены и достаточно стабильны. А вот сторонние программы могут зависать довольно-таки часто, даже ни с того ни с сего.
Эти зависания не опасны для системы и очень просто решаются. В Ubuntu есть несколько графических утилит для завершения зависших приложений. Их мы рассмотрим чуть ниже. Но очень жаль несохраненных данных, которые остались, когда зависла программа Ubuntu. Если вы пользуетесь крупными редакторами, такими как Libreoffice или WPS office, то, скорее всего, редактируемый текст автоматически сохранился. Но в браузере и простых редакторах ситуация не такая безоблачная. Но даже те данные можно попытаться спасти, хотя работает этот способ не всегда.
Предположим, что завис Gedit. Сначала откройте терминал нажатием сочетания клавиш Ctrl+Alt+T. Теперь попробуем узнать PID процесса Gedit с помощью ps:
ps aux | grep gedit
Уже на этом этапе можно завершить программу. Но я вам покажу, как спасти редактируемый текст. Мы получим дамп памяти процесса и извлечем оттуда редактируемый текст. Для этого подключитесь к процессу Gedit с помощью отладчика gdb:
1493 — это PID зависшей программы, который мы узнали в предыдущей команде.
Дальше сохраним дамп памяти, выполнив в консоли Gdb:
Вот и все, отключаемся от процесса
Для выхода с отладчика нажмите q. Теперь у нас есть все данные сохраненные в памяти нашего приложения, и мы можем легко извлечь нужную информацию:
strings core.1493 | grep ‘my text’
С английским текстом работает на ура.
Самый простой способ закрыть зависшее приложение в Ubuntu — это Xkill. Нажмите Alt+F2 и наберите Xkill и нажмите Enter:
Теперь курсор превратился в крестик и достаточно кликнуть на любом окне, чтобы его закрыть.
Кроме того, в Ubuntu есть аналог диспетчера задач Windows — системный монитор. Чтобы его открыть наберите Системный или System в поиске Dash. Здесь отображаются все запущенные приложения, и любое из них можно завершить через контекстное меню, если зависла программа в Ubuntu, вы можете ее закрыть:
Также закрыть зависшее приложение ubuntu можно из терминала, например, с помощью команды kill:
1493 — это PID. Также можно не использовать PID а сразу завершить программу по имени:
Зависла графическая оболочка в Ubuntu
С зависанием приложений разобрались. Это было не очень страшно. Но что делать, если графическая оболочка Ubuntu зависла намертво, и вы не можете ни запустить системный монитор, ни XKill? Это может случиться по разным причинам, например, из-за неправильных драйверов или ошибке в системных программах. Но Linux тем отличается от Windows, что здесь кроме графической оболочки есть еще и режим терминала. Графическая оболочка зависла, но система все еще работает. Поэтому мы можем все исправить.
Сначала можно просто попытаться перезагрузить X сервер. Для этого используется специальная комбинация клавиш — Ctrl+Alt+Backspace.
Далее, если не помогло, переключаемся в один из терминалов. Всего в Linux по умолчанию создается 12 терминалов входа. И доступны они по сочетанию клавиш Ctrl+Alt+Fцифра.
Графический сервер, как правило, размещается по Ctrl+Alt+F7. Переключаемся в первый терминал Ctrl+Alt+F1, вводим там логин и пароль, затем перезагружаем графический сервер командой:
sudo service lightdm restart
Если в приложениях остались не сохраненные данные, их можно попытаться извлечь описанным выше способом. Но поскольку тут уже зависла Ubuntu, и работать нужно в терминале, все сделать будет немного сложнее хотя бы потому, что вы не сможете копировать команды.
Не хватает памяти
Если все сделать правильно — такой тип зависания даже менее опасный, чем предыдущий. Конечно, лучше таких моментов не допускать и настроить раздел подкачки или сжатие оперативной памяти с помощью zram, но если оно уже случилось и застало вас врасплох, можно попытаться что-то сделать.
Если вы еще можете переключиться в режим терминала, переключайтесь (Ctrl+Alt+F1), вводите логин и пароль. Причем будьте готовы к тому, что система будет работать очень медленно.
Отсортировать процессы по потреблению памяти можно командой:
Дальше остается завершить виновника одной из вышеописанных команд, например, pkill:
Посмотреть количество свободной памяти можно командой:
В современные ядра встроен механизм мониторинга памяти, таким образом, если памяти недостаточно, ядро смотрит какая программа потребляет больше всего и завершает ее, только в случае, если запущенно большое количество мелких программ этот процесс может занять много времени.
Если вы не хотите ждать и нет возможности перейти в режим терминала, можно попросить ядро завершить все процессы в текущем сеансе терминала сочинением клавиш Alt+PrintScreen+K. Завершит все запущенные вами программы в текущей терминальной сессии, в том числе графическую оболочку и ту программу, что использует много оперативной памяти.
Ubuntu зависла полностью
Хорошо, а что же делать, если Ubuntu зависла намертво, полностью? Если система уже ни на что не реагирует, но ядро, скорее всего, работает то можно попытаться выполнить безопасную перезагрузку. Ядро поддерживает несколько сочетаний клавиш, которыми можно ему напрямую отдавать команды.
Нажмите и удерживайте клавиши Alt+PrintScreen, и последовательно с интервалом 2-3 секунды нажимайте:
R E I S U B
- R — вернуть ядру управление над клавиатурой
- E — отправить сигнал SigTerm всем процессам
- I — отправить сигнал SigKill всем процессам
- U — Перемонтировать все файловые системы в режим только для чтения
- S — Сохранить все буфера файловых систем на жесткий диск
- B — Перезагрузить.
По сути, все эти действия происходят и при обычной перезагрузке. Но здесь мы выполняем их вручную.
Если же ubuntu зависает намертво и даже не работает последний метод, остается нажать кнопку Reset или на 6 секунд зажать кнопку выключения.
Не хватает энергии
Уже не первый раз сталкиваюсь с проблемой, что компьютеру не хватает энергии. Во время работы мышь и клавиатура неожиданно перестают работать. Складывается впечатление, что компьютер полностью завис, однако это не так. В данном случае, материнской плате не хватает тока, чтобы дать полноценное питание для мыши и клавиатуры. Убедится что у вас именно эта проблема можно отключив клавиатуру от компьютера, а мышь переставив в другой разъем. Если заработало — проблема здесь. Решить можно заменив мышь и клавиатуру на PS/2 или на беспроводный вариант. Также можно попытаться заменить блок питания на более мощный.
Выводы
Теперь мы рассмотрели все что нужно, чтобы привести свою систему в чувство, и вы знаете что делать если зависла Ubuntu и как закрыть зависшее приложение. Если у вас есть другие, более эффективные способы, напишите в комментариях!
🕓 Исправление зависания Ubuntu во время загрузки
В этом пошаговом руководстве показано, как справиться с зависанием Ubuntu при загрузке, установив проприетарные драйверы NVIDIA.
Учебное пособие было выполнено на недавно установленной системе Ubuntu, но оно должно быть применимо и в других случаях.
На днях я купил ноутбук Acer Predator (партнерская ссылка) для тестирования различных дистрибутивов Linux. Это громоздкий, тяжело сложенный ноутбук, который отличается от того, что мне нравятся небольшие легкие ноутбуки, такие как потрясающий Dell XPS.
Причиной, по которой я выбрал этот игровой ноутбук, хотя я не играю на ПК, является NVIDIA Graphics.
Acer Predator Helios 300 поставляется с NVIDIA Geforce GTX 1050Ti.
NVIDIA известна своей плохой совместимостью с Linux. Некоторые читатели It FOSS попросили меня помочь с их ноутбуками NVIDIA, и я ничего не мог сделать, потому что у меня не было системы с графической картой NVIDIA.
Поэтому, когда я решил приобрести новое специализированное устройство для тестирования дистрибутивов Linux, я выбрал ноутбук с графикой NVIDA.
Этот ноутбук поставляется с Windows 10, установленной на 120 ГБ SSD и 1 ТБ жесткого диска для хранения данных.
У меня дуалбут Windows 10 с Ubuntu 18.04.
Установка была быстрой, легкой и безболезненной.
Я загрузился в Ubuntu.
Она показывала знакомый фиолетовый экран, а потом я заметил, что он замерз.
Мышь не двигалась, я ничего не мог набрать, и ничего не мог сделать, кроме как выключить устройство, удерживая кнопку питания.
И это была та же история при следующей попытке входа в систему. Ubuntu просто застревает на фиолетовом экране, даже не дойдя до экрана входа в систему.
Звучит знакомо? Позвольте мне показать вам, как вы можете решить эту проблему с зависанием Ubuntu при входе в систему.
Не пользуетесь Ubuntu?
Обратите внимание, что хотя это руководство было выполнено с Ubuntu 18.04, оно также будет работать на других дистрибутивах на основе Ubuntu, таких как Linux Mint,elementary OS и т. д.
Исправление зависания Ubuntu во время загрузки из-за драйверов NVIDIA
Решение, которое я здесь опишу, работает для систем с графической картой NVIDIA.
Это потому, что ваша система зависает благодаря открытым драйверам NVIDIA Nouveau.
Без дальнейших задержек, давайте посмотрим, как решить эту проблему.
Шаг 1: Редактирование Grub
Когда вы загружаете свою систему, просто остановитесь на экране Grub, как показано ниже.
Если вы не видите этот экран, продолжайте удерживать клавишу Shift во время загрузки.
На этом экране нажмите клавишу «E», чтобы перейти в режим редактирования.
Вы должны увидеть код, подобный приведенному ниже.
Вы должны сосредоточиться на строке, которая начинается с Linux.
Шаг 2: Временное изменение параметров ядра Linux в Grub
Помните, что наша проблема с драйверами NVIDIA Graphics.
Эта несовместимость с открытой версией драйверов NVIDIA стала причиной проблемы, поэтому мы можем отключить эти драйверы.
Теперь есть несколько способов отключить эти драйверы.
Мой любимый способ — отключить все видео / видеокарты с помощью nomodeset.
Просто добавьте следующий текст в конце строки, начиная с Linux.
Вы должны быть в состоянии вводить данные.
Просто убедитесь, что вы добавляете этот текст в конце строки.
Теперь ваш экран должен выглядеть так:
Нажмите Ctrl + X или F10, чтобы сохранить изменения и выйти.
Теперь вы загрузитесь с недавно измененными параметрами ядра.
Если вы добавляете параметр nomodeset в ядро, он указывает ядру загружать видео / графические драйверы после запуска сервера дисплея.
Другими словами, вы отключили загрузку графического драйвера в это время, и конфликт, который он вызывал, исчез.
Шаг 3: Обновите вашу систему и установите проприетарные драйверы NVIDIA
Не будьте слишком счастливы только потому, что теперь вы можете войти в свою систему.
То, что вы сделали, было временным, и в следующий раз, когда вы загрузитесь в свою систему, ваша система все равно будет зависать, потому что она все равно будет пытаться загрузить драйверы Nouveau.
Значит ли это, что вам всегда придется редактировать ядро с экрана grub?
К счастью, ответ — нет.
Здесь вы можете установить дополнительные драйверы в Ubuntu для NVIDIA.
Ubuntu не зависает во время загрузки при использовании этих проприетарных драйверов.
Я предполагаю, что это ваш первый вход в недавно установленную систему.
Это означает, что вы должны обновить Ubuntu, прежде чем делать что-либо еще.
Откройте терминал с помощью сочетания клавиш Ctrl + Alt + T в Ubuntu и используйте следующую команду:
Вы можете попробовать установить дополнительные драйверы в Ubuntu сразу после выполнения вышеупомянутой команды, но, по моему опыту, вам придется перезагрузить систему, прежде чем вы сможете успешно установить новые драйверы.
А при перезапуске вам придется снова изменить параметр ядра так же, как мы делали это раньше.
После обновления и перезапуска системы нажмите на поиск драйверов, чтобы перейти в меню и выполнить поиск программного обеспечения и обновлений.
Теперь перейдите на вкладку «Дополнительные драйверы» и подождите несколько секунд.
Здесь вы увидите проприетарные драйверы, доступные для вашей системы.
Вы должны увидеть драйвера NVIDIA в этом спискеь.
Выберите проприетарный драйвер и нажмите «Применить изменения».
Это займет некоторое время при установке новых драйверов.
Если в вашей системе включена безопасная загрузка UEFI, вас также попросят установить пароль.
Вы можете установить тот пароль, что легко запомнить.
Я покажу вам его последствия позже в шаге 4.
После завершения установки вам будет предложено перезагрузить систему, чтобы изменения вступили в силу.
Шаг 4: Работа с MOK (только для устройств с поддержкой UEFI Secure Boot)
Если вас попросят установить пароль безопасной загрузки, вы увидите синий экран, который говорит о «управлении MOK».
Это сложная тема, и я попытаюсь объяснить ее в более простых терминах.
MOK (Machine Owner Key) необходим из-за функции безопасной загрузки, которая требует подписи всех модулей ядра.
Ubuntu делает это для всех модулей ядра, которые поставляются в ISO.
Поскольку вы установили новый модуль (дополнительный драйвер) или внесли изменения в модули ядра, ваша защищенная система может воспринимать это как нежелательное / постороннее изменение в вашей системе и может отказаться от загрузки.
Следовательно, вы можете либо подписать модуль ядра самостоятельно (указав системе UEFI не паниковать, потому что вы внесли эти изменения), либо просто отключить безопасную загрузку.
Теперь, когда вы немного знаете о безопасной загрузке и MOK, давайте посмотрим, что делать при следующей загрузке, когда вы увидите синий экран при следующей загрузке.
Если вы выберете «Continue boot», скорее всего, ваша система загрузится как обычно, и вам вообще ничего не нужно будет делать.
Но возможно, что не все функции нового драйвера работают правильно.
Вот почему вы должны выбрать Enroll MOK.
Он попросит вас продолжить на следующем экране, а затем попросит пароль.
Используйте пароль, который вы установили при установке дополнительных драйверов на предыдущем шаге.
Вам будет предложено перезагрузить систему.
Шаг 5: Наслаждайтесь Ubuntu Linux с проприетарными драйверами NVIDIA
Как только новый драйвер будет установлен, вам придется перезапустить вашу систему снова.
Теперь все должно быть лучше, и вам больше не нужно редактировать параметры ядра.
Вы сразу загрузитесь в Ubuntu.
Я надеюсь, что это руководство помогло вам решить проблему зависания Ubuntu во время загрузки, и вы смогли загрузить систему Ubuntu.
Если у вас есть какие-либо вопросы или предложения, пожалуйста, дайте мне знать в разделе комментариев ниже.
31 thoughts on “ 🕓 Исправление зависания Ubuntu во время загрузки ”
Спасибо большое, ты просто нереально мне помог. Большооее тебе спасибо
Всегда пожалуйста! Приятно слышать
Прочитал на Вашей странице про зависание экрана:
http://itisgood.ru/2019/04/09/ispravlenie-zavisanija-ubuntu-vo-vremja-zagruzki/
и стал делать так, как у Вас написано: нажимал на клавишу SHIFT при
старте, но у менясовсем другое(картинки прикладываю). Подскажите
пожалуста, как избавиться от зависания экрана в моём случае.
С наилучшими пожеланиями,
p.s. Картинки на сайте не могу приложить
Добрый день! Вы можете выложить листинг, когда провалились в настройки grub?
Предполагаю, что вам надо прокрутить вниз, чтобы добраться до нужной строки, которую нужно изменить.
В этом отличие.
Вот пролистал вниз и пишу:
linux bootvmlinuz-5.3/0-generic root=UUID=2970b0d2-3fdc\-40ed-9886-7146ef656861 ro quit rootfst vpe=ext4 libahci.ignore sss=1 raid=\noautodetect selinux=0 plvmouth.enable=0 lpi=11232000
И вот чуть ниже строка:
initrd /boot/initrd.img-5.3.0.-46-generic
nomodeset пробовали добавить?
Напишите пожалуйста в этом варианте в какое место это вставлять.
linux bootvmlinuz-5.3/0-generic root=UUID=2970b0d2-3fdc\-40ed-9886-7146ef656861 ro quit nomodeset
Добрый день! Я вчера всё выполнил, как ВЫ рекомендовали, при старте системы все иконки и шрифты были огромного размера, но после рестарта всё встало на свои места. Вечером при просмотре видео онлайн всё было нормально. Утром пришли обновления и в том числе и обновление ядра. После надо было перезагрузить систему. И потом уже при просмотре видео ролика на ютубе произошло зависание экрана, но звук продолжал работать. Комбинации разных вариантов клавишь просто не работали. Пришлось тупо выключить ноутбук. Вот как то так.
Добрый день! что показывает top и df -h ?
Вот то, что Вы просили про top и df -h
vladimir1956@vladimir1956-Satellite-A665:
top — 12:42:51 up 4:43, 1 user, load average: 1,72, 1,54, 1,53
Tasks: 250 total, 3 running, 174 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4,7 us, 7,6 sy, 0,0 ni, 86,8 id, 0,0 wa, 0,0 hi, 1,0 si, 0,0 st
КиБ Mem : 8081484 total, 2434240 free, 2786848 used, 2860396 buff/cache
КиБ Swap: 2097148 total, 2097148 free, 0 used. 4937280 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19216 vladimi+ 20 0 1896008 348380 35960 R 67,3 4,3 119:21.82 terminal.e+
16298 vladimi+ 20 0 29484 12404 1972 R 51,8 0,2 88:51.73 wineserver
2410 vladimi+ 20 0 3919828 140956 76048 S 8,3 1,7 9:49.00 cinnamon
2011 root 20 0 609144 77116 55452 S 3,3 1,0 12:51.40 Xorg
3687 root 20 0 0 0 0 I 1,7 0,0 0:03.40 kworker/u1+
3995 vladimi+ 20 0 3928476 1,046g 128964 S 1,3 13,6 12:19.37 chromium-b+
4661 root 20 0 0 0 0 I 1,3 0,0 0:02.20 kworker/u1+
6320 vladimi+ 20 0 590828 35828 26184 S 1,3 0,4 0:00.97 gnome-term+
902 systemd+ 20 0 146112 3440 2876 S 0,7 0,0 0:00.09 systemd-ti+
6335 vladimi+ 20 0 46716 4200 3520 R 0,7 0,1 0:00.34 top
16320 vladimi+ 20 0 2022288 15488 13176 S 0,7 0,2 0:27.80 winedevice+
779 root -51 0 0 0 0 S 0,3 0,0 1:01.00 irq/39-iwl+
949 root 20 0 503224 11628 8756 S 0,3 0,1 0:21.63 udisksd
950 message+ 20 0 51348 5592 3956 S 0,3 0,1 0:06.20 dbus-daemon
2445 vladimi+ 20 0 661672 37520 29588 S 0,3 0,5 0:04.62 nm-applet
16307 vladimi+ 20 0 1946428 12080 10460 S 0,3 0,1 0:01.59 winedevice+
27453 root 20 0 0 0 0 I 0,3 0,0 0:03.24 kworker/7:+
$ df -h
Файл.система Размер Использовано Дост Использовано% Cмонтировано в
udev 3,9G 0 3,9G 0% /dev
tmpfs 790M 1,5M 788M 1% /run
/dev/sda1 440G 55G 362G 14% /
tmpfs 3,9G 50M 3,9G 2% /dev/shm
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 3,9G 0 3,9G 0% /sys/fs/cgroup
tmpfs 790M 76K 790M 1% /run/user/1000
vladimir1956@vladimir1956-Satellite-A665:
Тут все ок. Сложно сказать причину
Может проблема в видео карте? У меня стоит NVIDIA. Может проблема в настройках именно видеокарты?
Посмотрите логи по времени появления проблем, так можно гадать бесконечно 🙂
Как посмотреть логи? Объсните подробнее, если не трудно!
/var/log/syslog или messages
Не совсем понятно с /var/log/syslog или messages? Эти команды набирать через командную строку или как? Если не трудно, объясните пожалуйста подробнее.