ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Общее руководство по устранению неполадок GNU/Linux для начинающих

Общее руководство по устранению неполадок GNU/Linux для начинающих

Устранение неполадок оборудования

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

При загрузке системы используйте команду 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), поищите следующие вещи:

Возможный способ устранения таких проблем:

 

Убиваем процесс

Команда 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 и сетью.

Exit mobile version