Устранение неполадок оборудования
Когда ядро запускается, оно загружает необходимые аппаратные драйверы и модули со всеми сообщениями, содержащими детали аппаратных сбоев. Но сообщения прокручиваются слишком быстро, и невозможно хорошо рассмотреть потенциальные проблемы с оборудованием. Однако сообщения, отображаемые в процессе загрузки ядра, сохраняются в кольцевом буфере ядра.
При загрузке системы используйте команду dmesg для записи этих сообщений в файл msg.txt.
ubuntu@andreyex:~$ dmesg > /tmp/msg.txt ubuntu@andreyex:~$ less /tmp/kernel_msg.txt
Сохраненные сообщения можно просмотреть позже или отправить кому-нибудь для устранения проблемы.
Другой способ прочитать эти сообщения – проверить файлы /var/log/dmesg или /var/log/messages, если они существуют.
Некоторые системы Linux, поддерживающие systemd, хранят эти сообщения в журнале systemd. Используйте команду journalctl, чтобы проверить сообщения ядра:
ubuntu@andreyex:~$ journalctl -k | less
Проверьте сообщения, которые указывают на сбой аппаратных функций или сбой при загрузке драйверов.
GRUB
GRUB – это программа, устанавливаемая дистрибутивами, которая загружает ОС на основе ядра. В настоящее время все дистрибутивы Linux используют версию GRUB2. Иногда возможно, что когда BIOS запускает GRUB2, он сталкивается с проблемой отсутствия «операционной файловой системы» или «неизвестной файловой системы».
Ошибка предполагает, что GRUB не может найти правильную операционную систему для загрузки и найти файл grub.cfg в неправильном разделе. Это происходит, когда пользователь устанавливает Windows после того, как ОС Linux и BIOS определяет диски в неправильном порядке, так как Windows запускает свой загрузчик с основной загрузочной записи (MBR).
Ошибка выглядит так:
error: unknown filesystem. grub rescue > _
В этом разделе мы обсудим два способа восстановления дистрибутива из Grub Rescue:
МЕТОД I
Введите команду ls в терминале восстановления grub, чтобы вывести список всех дисков и доступных разделов.
grub> ls (hd0),(hd0,msdos1)(hd0,msdos2)
Выберите раздел, содержащий установленный дистрибутив. Обычно он загружается с первого раздела; в противном случае выводится сообщение об ошибке. Выполните следующие команды для поиска файла конфигурации grub в каталоге grub2:
grub > ls (hd0,msdos1)/ grub > ls (hd0,msdos1)/grub2 device.map fonts grub.cfg grub.cfg.1590068449.rpmsave grubenv i386-pc locale
Введите set root = (hd0, msdos1) для загрузки системы. Теперь используйте команду set prefix, чтобы определить путь к каталогу grub2. Введите команду insmod normal, чтобы перезагрузить систему. После перезагрузки откройте терминал, чтобы обновить GRUB.
ubuntu@andreyex:~$ sudo update-grub
Последний шаг – установить GRUB в MBR (главную загрузочную запись), поскольку Windows инициирует на нем свой загрузчик. На этом шаге необходимо смонтировать корневой раздел /dev/sda1 в каталог /mnt.
ubuntu@andreyex:~$ sudo mount /dev/sda1 /mnt ubuntu@andreyex:~$ sudo grub-install --root-directory=/mnt/ /dev/sda
Система может не загрузиться с помощью обычной команды insmod , что может произойти из-за плохой файловой системы, в которой отсутствует файл grub.conf. Проблема требует, чтобы пользователь загрузился в систему через действующий USB/компакт-диск с дистрибутивом. Давайте обсудим еще один идеальный способ спасти GRUB2.
МЕТОД II.
Boot-Repair – это графический инструмент, который предлагает идеальное решение проблем с GRUB. Загрузитесь на рабочий стол с живого съемного USB/CD. Убедитесь, что устройство подключено к Интернету, и нажмите Ctrl+Alt+T, чтобы открыть терминал. Теперь установите средство восстановления загрузки:
ubuntu@andreyex:~$ sudo add-apt-repository -y ppa:yannubuntu/boot-repair ubuntu@andreyex:~$ sudo apt-get update ubuntu@andreyex:~$ sudo apt-get install -y boot-repair && boot-repair
Следуйте рекомендуемым вариантам для ремонта системы. Перезагрузите систему после того, как Boot Repair применит все изменения. ОС загрузится нормально.
Устранение неполадок сети
Для обычных пользователей подключение к сети происходит автоматически, как только пользователь подключает кабель Ethernet или предоставляет учетные данные для входа в сеть Wi-Fi. Однако управление сетью и устранение неполадок – важнейший набор задач для любого системного администратора. Следовательно, Linux предлагает инструменты командной строки для решения проблем управления и подключения.
В этом разделе мы обсуждаем проблемы с исходящими и входящими сетевыми подключениями и рассмотрим инструменты Linux, которые помогут решить их удобным способом.
Исходящие соединения
Linux предлагает IP- команду в качестве универсальной сетевой утилиты для настройки сети и решения проблем с подключением. Он управляет всеми сетевыми объектами, такими как IP-адреса, маршруты, ссылки и т. д.
Перед началом используйте команду IP, чтобы просмотреть рабочий сетевой интерфейс.
ubuntu@andreyex:~$ ip addr show
В случае отсутствия доступного интерфейса проверьте, не отключено ли оборудование. Однако, если он включен и все еще подключен к хосту, используйте команду route для проверки хоста.
ubuntu@andreyex:~$ route
Строка по умолчанию представляет шлюз (маршрутизатор) по умолчанию, к которому машина получает доступ через рабочую интерфейсную карту. Linux предлагает утилиту ping для проверки связи между вашим устройством и маршрутизатором.
ubuntu@andreyex:~$ ping -c 5 <gateway>
Ошибка говорит о том, что роутер либо физически не подключен, либо выключен. Однако, если эхо-запрос прошел успешно, попробуйте связаться с адресом за пределами маршрутизатора, например, глобальным DNS-сервером Google 8.8.8.8.
ubuntu@andreyex:~$ ping -c 5 8.8.8.8
Успешный пинг предполагает, что проблема связана с преобразованием имени хоста в адрес. DNS-сервер, используемый системой, добавляется вручную или автоматически с DHCP-сервера при запуске сетевого интерфейса. Проверьте детали (имена и IP-адреса) DNS-сервера в файле /etc/resolve.conf.
nameserver 192.168.11.12 nameserver 192.168.11.253
Мы можем решить проблемы с именем хоста следующим образом:
Возможно, сервер не работает или пользователю назначен неправильный адрес DNS-сервера. Обратите внимание на адреса серверов имен из файла resolve.conf и проверьте, доступен ли он с помощью команды ping.
ubuntu@andreyex:~$ ping -c 3 192.168.11.253
Используйте утилиту Domain Information groper (DIG), чтобы проверить, работает ли DNS. То есть проверьте, разрешает ли адрес DNS-сервера 192.168.11.253 имя хоста в IP-адрес.
ubuntu@andreyex:~$ dig @115.186.188.3 www.google.com
Исправить DNS-сервер немного сложно. Если диспетчер сети отвечает за управление задачей подключения, он отменяет записи сервера имен в файле /etc/resolve.conf. Перейдите в каталог /etc/sysconfig/network-scripts, чтобы добавить следующую строку в файл ifcfg для решения проблемы.
ubuntu@andreyex:~$ sudo vim /etc/sysconfig/network-scripts/ifcfg PEERDNS=no DNS1=<DNS_server_IP_add>
В случае отдельной сетевой службы добавьте строку PEERDNS = no в файл resolve.conf.
Входящие соединения
Для системы Linux, настроенной как сервер Apache, клиент должен получить доступ к веб-серверу. Если клиент не может связаться с сервером через веб-браузер, вы можете использовать описанные выше команды ping, dig или traceroute извне сервера для отслеживания проблем. Вот некоторые из других способов устранения неполадок входящих подключений:
Используйте nmap, чтобы проверить доступность сервиса через открытые порты на сервере. Используйте команду nmap с именем хоста/IP-адресом для проверки открытых портов.
ubuntu@andreyex:~$ nmap <IP_address>
Открытый порт 80/443 STATE предполагает, что с сетевым подключением все в порядке. В противном случае брандмауэр не принимает пакеты с этих портов. Более того, он не фильтруется, и состояние закрыто, что означает, что служба настроена неправильно или не прослушивает порты 80/443.
Если система использует ufw и настроена на политику брандмауэра по умолчанию, она будет блокировать каждое входящее соединение. Настройте брандмауэр, чтобы разрешить клиентам доступ к портам TCP 80/443:
ubuntu@andreyex:~$ sudo ufw allow 80 ubuntu@andreyex:~$ sudo ufw allow 443
Если он все еще блокирует входящие соединения, используйте команду sudo ufw status, чтобы найти запрещенные хосты и получить к ним доступ с помощью следующей команды.
ubuntu@andreyex:~$ sudo ufw allow from <ip_address>
Если доступ к портам 80/443 включен и все входящие сети могут получить доступ к серверу. Пришло время проверить статус сервера:
ubuntu@andreyex:~$ sudo systemctl status httpd
Наконец, проверьте, прослушивает ли сервер подходящие интерфейсы и порты. Следовательно, для таких сервисов, как httpd, которые прослушивают запросы на интерфейсах. Отредактируйте основной файл конфигурации, чтобы служба могла прослушивать порт 80 для определенного адреса или всех адресов.
ubuntu@andreyex:~$ sudo cd /etc/httpd/conf/httpd.conf Listen 80 Listen 192.168.11.10:80
Устранение неполадок при загрузке системы
Linux поставляется с множеством утилит, которые отслеживают активность системы и выявляют проблемы, для которых нет очевидных причин. То есть система работает нормально, но начинает тормозить и запускает сбои приложений. Эти различные утилиты Linux помогают обнаружить процессы, потребляющие ресурсы памяти и истощающие дисковое пространство компьютера, процессоры и пропускную способность сети.
Некоторые из причин нестабильности системы включают ограниченную емкость, т. е. Нехватку памяти, дискового пространства, емкости сети и вычислительной мощности, с неправильно настроенными приложениями. Однако утилиты предлагают способы управлять такими проблемами, манипулировать ими и исправлять их. Давайте устраним проблемы с ограниченной памятью и чрезмерным потреблением ЦП.
Использование памяти
Запустите команду top с заглавной M, чтобы классифицировать детали процесса по использованию памяти. Вывод команды дает общую информацию, за которой следует ОЗУ, пространство подкачки и потребление ЦП. Если окажется, что в системе недостаточно памяти (OOM), поищите следующие вещи:
- Обратите внимание на свободное пространство в строке Mem: оно должно быть нулевым или близким к нему.
- Проверьте используемое пространство подкачки: оно должно быть ненулевым или увеличиваться.
- Поскольку команда top повторно отображает информацию каждые 5 секунд, ищите процесс с утечкой памяти, то есть проверяйте, продолжает ли увеличиваться память RES.
- Ядро начинает убивать процесс, когда заканчивается пространство подкачки.
Возможный способ устранения таких проблем:
Убиваем процесс
Команда kill отправляет сигнал уничтожения для завершения процесса. Наиболее часто используемые сигналы для устранения проблем с нехваткой памяти – это SIGKILL и SIGTERM. Однако разные процессы по-разному реагируют на сигналы.
Например, обратите внимание на PID и используйте команду kill для отправки сигнала SIGTERM.
ubuntu@andreyex:~$ kill -15 PID
Сигнал SIGTERM/-15 нацелен на завершение процесса, но иногда он не останавливает процесс. Следовательно, для немедленного прекращения процесса может потребоваться сигнал SIGKILL/-9.
ubuntu@andreyex:~$ kill -SIGKILL PID
Кеши страниц
Чтобы очистить память на данный момент, отбросьте неактивные страницы кеша. Отбрасывая кешированные страницы, запишите несколько страниц памяти на диск, так как система может захотеть получить их позже, пока она отбрасывает остальные.
Оставьте верхнюю команду запущенной в терминале и запустите данную команду в другом терминале, чтобы просмотреть изменение строки MEM:
ubuntu@andreyex:~$ echo 3 > /proc/sys/vm/drop_caches
Используйте сочетание клавиш Alt + SysRq
Из-за нехватки памяти иногда графический интерфейс или оболочка полностью перестают отвечать. Этот сценарий требует использования нажатия клавиш Alt + SysRq в неотвечающей системе. Таким образом, ядро обрабатывает свой запрос раньше любого другого процесса.
Выполните следующую команду, чтобы проверить, включена ли она:
ubuntu@andreyex:~$ cat /proc/sys/kernel/sysrq 076
Значение «0» показывает, что нажатие клавиши не разрешено. Чтобы включить это нажатие клавиши, перейдите в файл /etc/sysctl.conf и установите kernel.sysrq = 1. Или установите kernel.sysrq = 1 с помощью следующей команды.
ubuntu@andreyex:~$ sudo echo "1" >/proc/sys/kernel/sysrq
На большинстве клавиатур SysRq является клавишей PrtSc.
Нажмите Alt + SysRq + f в текстовом интерфейсе, чтобы убить процесс с наивысшей оценкой OOM. Удерживайте эти нажатия клавиш, пока система не вернется в нормальное рабочее состояние.
Загрузка процессора
Вышеупомянутые методы также могут проверять и исправлять процесс, потребляющий чрезмерные ресурсы ЦП и лишающий систему ее функциональности. Однако Linux предлагает другой метод, ограничивающий использование ресурсов ЦП системными процессами.
Возродить процесс
Используйте команду top, чтобы получить все подробности и запомнить идентификатор процесса (PID), запрашивающего дополнительные ресурсы ЦП. Введите следующую команду, которая устанавливает отличное значение от -20 до 19, т. е. Чем выше значение, тем ниже процесс доступа к ЦП.
ubuntu@andreyex:~$ nice +18 PID
Или обратите внимание на значение NI (хорошее) PID. Для низкого значения NI уменьшите права доступа к ЦП этого конкретного процесса, отменив отличное значение с помощью команды renice:
ubuntu@andreyex:~$ renice -n +18 PID
Заключение
В статье рассматриваются все необходимые утилиты Linux, позволяющие новичкам устранять проблемы Linux, связанные с загрузкой системы, проблемами оборудования, GRUB и сетью.