Решение основных проблем в Linux

c

1. Введение: Типовые сценарии неисправностей в Linux и подход к диагностике

Linux-системы известны стабильностью, но типовые неполадки возникают после обновлений, при конфигурировании оборудования или из-за ошибок в скриптах. Чаще всего пользователи сталкиваются с отказом загрузки (черный экран, ошибка Grub), сломанным менеджером пакетов, отсутствием сети или зависаниями рабочего стола. Наш подход — использовать встроенные утилиты без установки стороннего софта: systemctl, dmesg, journalctl, strace, lsof.

Для любой диагностики первым шагом является проверка системного журнала. Команда journalctl -xe (на системах с systemd) покажет последние ошибки и предупреждения перед сбоем. Если система не загружается, потребуется LiveUSB-дистрибутив для монтирования корневого раздела и правки конфигов вручную. Далее приводим готовые сценарии с точными командами для версий Ubuntu/Debian и RHEL/Fedora (2026 года).

2. Ошибки загрузчика Grub и черный экран при старте

Сценарий: после обновления ядра или изменения разметки диска система останавливается на приглашении grub rescue>. Причина — повреждение вторичного загрузчика или неверный UUID корневого раздела. Решение — восстановление через LiveUSB по шагам.

3. Восстановление сломанного менеджера пакетов (APT, DNF, Zypper)

Повреждение списка пакетов или нарушение зависимостей блокирует установку/удаление софта. Симптом: команда apt-get install завершается ошибкой dpkg: error processing package или unmet dependencies. Необходима ручная зачистка и переконфигурация.

Для Debian/Ubuntu (APT): сначала остановите процессы dpkg: sudo fuser -vki /var/lib/dpkg/lock. Затем выполните sudo dpkg --configure -a — это переконфигурирует все распакованные, но не настроенные пакеты. Если ошибка конкретного пакета (например, libc6), скачайте его .deb вручную с запасного сервера и установите через sudo dpkg -i --force-depends пакет.deb.

4. Отсутствие сети: настройка Ethernet, Wi-Fi и диагностика DNS

Проблема: ping до шлюза не проходит, хотя интерфейс поднят. Причина — неправильный маршрут или блокировка firewall. Для быстрой проверки используйте ip a (показывает IP-адреса), ip route show default (проверка шлюза) и ping 8.8.8.8 (проверка промежуточных узлов). Если ping до внешнего IP идёт, а по доменному имени — нет, проблема в DNS.

Действия по шагам:

  1. Проверьте /etc/resolv.conf: в 2026 году большинство систем используют systemd-resolved. Выполните resolvectl status или cat /etc/resolv.conf. Правильные строки: nameserver 8.8.8.8 или nameserver 1.1.1.1.
  2. Перезапустите сетевой менеджер: sudo systemctl restart NetworkManager (или systemd-networkd).
  3. Для статического IP на Ethernet (Ubuntu 24.04+/2026): отредактируйте файл /etc/netplan/01-netcfg.yaml с параметрами: dhcp4: no, укажите адреса, шлюз и DNS. Примените: sudo netplan apply.
  4. Если Wi-Fi не видит сети: проверьте включён ли адаптер — rfkill list. Если заблокирован, снимите блокировку: sudo rfkill unblock wifi.
  5. Firewall: sudo ufw status (Ubuntu) или sudo firewall-cmd --list-all (RHEL). Временно отключите для теста: sudo ufw disable.
  6. Сбросьте настройки TCP: sudo sysctl -w net.ipv4.tcp_mtu_probing=1 — решает проблему фрагментации пакетов на некоторых VPN.

5. Высокая нагрузка на CPU и утечка памяти: выявление процесса-виновника

Зависание интерфейса, постоянный 100% CPU или постепенное заполнение ОЗУ — типичные проблемы серверов и рабочих станций. Для точного определения используйте top (сортировка по CPU: P, по памяти: M). Современная замена — htop (sudo apt install htop) с цветовой индикацией. Для анализа утечки памяти запустите watch -n 1 'ps aux --sort=-%mem | head -15' в фоне и отследите прирост за 5-10 минут.

6. Ошибки ввода-вывода и повреждение файловой системы

Сценарий: при попытке обратиться к файлу или смонтировать диск появляется I/O error или Structure needs cleaning. Это признак аппаратной проблемы (плохой сектор на HDD/SSD) или логической ошибки в файловой системе (ext4, XFS, Btrfs). Первое действие — проверка и восстановление.

Для ext4: отмонтируйте раздел и выполните sudo fsck.ext4 -f -c -y /dev/sdaX. Ключ -c запускает поиск bad-секторов, -y автоматически отвечает «да». Процесс может занять 30-120 минут (для 500 ГБ). Если диск физически умирает, создайте образ через ddrescue: sudo ddrescue /dev/sdaX /mnt/backup.img /tmp/rescue.log.

7. Выводы: Профилактика и автоматизация обнаружения неполадок

Лучшая стратегия — предупреждение сбоев до их появления. Настройте мониторинг системных логов с помощью logwatch или auditd: ежедневная рассылка отчета о подозрительных событиях (неудачные входы, поломки служб). Используйте monit — демон, который перезапускает упавшие процессы и шлет алерты при превышении нагрузки (CPU>90%, память>85%).

Для контроля дискового пространства автоматизируйте скрипт проверки с отправкой в Telegram: проверяет df -h и, если процент использования превышает 85%, отправляет предупреждение. Для серверов под Linux 2026 года рекомендуется включить автообновление только для пакетов безопасности (unattended-upgrades), оставив основные обновления ручными — это снижает риск несовместимости драйверов.

Запомните три ключевые команды ежедневной диагностики: journalctl -p err -b (ошибки текущей загрузки), top -o %MEM (процессы по памяти), df -h && df -i (занятость диска и inodes). Следуя этим инструкциям, вы решите 90% типовых проблем без привлечения технической поддержки.

Добавлено: 25.04.2026