Типичные проблемы и решения

Проблема: Недостаточно места на диске

Симптомы

  • Ошибки при записи файлов
  • Невозможность установить пакеты
  • Медленная работа системы

Решение

# Проверка использования диска
df -h

# Поиск больших файлов
sudo du -h / | sort -rh | head -20

# Очистка логов
sudo journalctl --vacuum-time=7d

# Очистка пакетов
sudo apt clean
sudo apt autoremove

Проблема: Высокая нагрузка на CPU

Симптомы

  • Медленная работа системы
  • Высокий load average

Решение

# Поиск процессов, использующих CPU
top
htop

# Проверка системных процессов
ps aux --sort=-%cpu | head -10

Проблема: Недостаточно памяти

Симптомы

  • Система использует swap
  • Медленная работа
  • OOM (Out of Memory) ошибки

Решение

# Проверка использования памяти
free -h

# Поиск процессов, использующих память
ps aux --sort=-%mem | head -10

# Очистка кэша (осторожно!)
sudo sync
sudo echo 3 | sudo tee /proc/sys/vm/drop_caches

Проблема: Сервис не запускается после перезагрузки

Решение

# Включение автозапуска
sudo systemctl enable nginx
sudo systemctl enable postgresql

# Проверка статуса
sudo systemctl is-enabled nginx

Проблема: SSL сертификат истекает

Решение

# Проверка сертификатов
sudo certbot certificates

# Обновление вручную
sudo certbot renew

# Тест автоматического обновления
sudo certbot renew --dry-run

Проблема: "Соединение не установлено: Вероятная угроза безопасности" / "EE certificate key too weak"

Симптомы:
- Браузер показывает предупреждение о безопасности при подключении к HTTPS
- Используется старый самоподписанный SSL сертификат "Mini Webservice Ltd" со слабым ключом (1024 bit RSA)
- Все домены (denkart.cdto.life, school.cdto.life, docs.cdto.life) показывают один и тот же старый сертификат

Причина:
Трафик к внешнему IP (89.179.242.240) проходит через OUTPUT chain iptables, а не только через PREROUTING. Поэтому требуется дополнительное правило DNAT в OUTPUT chain.

Быстрое решение:

# Автоматическое исправление
sudo /home/cdto/DENKART/scripts/fix-ssl-external-ip-routing.sh

Ручное решение:

# Добавить правило OUTPUT в iptables
sudo iptables -t nat -A OUTPUT -d 89.179.242.240/32 -p tcp --dport 443 -j DNAT --to-destination 10.218.14.37:443

# Сохранить правила для автоматической загрузки
sudo netfilter-persistent save

Проверка:

# Проверить SSL сертификат после исправления
openssl s_client -connect 89.179.242.240:443 -servername denkart.cdto.life < /dev/null 2>&1 | grep -E "subject=|issuer=|Verify return code"

Ожидаемый результат:
- subject=CN = denkart.cdto.life
- issuer=C = US, O = Let's Encrypt, CN = R12
- Verify return code: 0 (ok)

Подробнее: ssl-certificate-external-ip-issue.md
sudo certbot renew --dry-run

## Проблема: Медленная работа базы данных

### Решение
```bash
# Проверка активных подключений
sudo -u postgres psql -c "SELECT count(*) FROM pg_stat_activity;"

# Проверка медленных запросов
sudo -u postgres psql -c "SELECT * FROM pg_stat_statements ORDER BY total_time DESC LIMIT 10;"

# Анализ таблиц
sudo -u postgres psql -d mydb -c "ANALYZE;"

Проблема: Переключение раскладки клавиатуры ALT+Shift не работает или индикатор не обновляется

Симптомы

  • Сочетание клавиш ALT+Shift не переключает раскладку ru/en
  • Индикатор раскладки не обновляется при переключении
  • Переключение срабатывает только при повторной попытке

Причина

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

Решение

Автоматическое исправление (рекомендуется)

# Запуск скрипта исправления
/home/cdto/DENKART/scripts/fix-keyboard-layout-switch.sh

Ручное исправление

Для Wayland/GNOME:

# Установка раскладок
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'ru')]"

# Настройка горячих клавиш Alt+Shift
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Alt>Shift_L', '<Alt>Shift_R']"
gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Shift>Alt_L', '<Shift>Alt_R']"

# Настройка опций xkb
gsettings set org.gnome.desktop.input-sources xkb-options "['grp:alt_shift_toggle']"

# Системные настройки
sudo localectl set-x11-keymap us,ru pc105 "" "grp:alt_shift_toggle"

# Перезапуск ibus (если используется)
ibus restart

Для X11:

setxkbmap -layout us,ru -option grp:alt_shift_toggle

Проверка настроек

# Проверка текущих настроек
localectl status
gsettings get org.gnome.desktop.wm.keybindings switch-input-source
gsettings get org.gnome.desktop.input-sources sources

Если проблема сохраняется

  1. Перезагрузите систему
  2. Проверьте, не конфликтуют ли другие приложения с горячими клавишами
  3. Убедитесь, что используется правильный тип сессии (Wayland или X11)

Проблема: "Обнаружена ошибка в системной программе" после перезагрузки

Симптомы

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

Причина

В системе остались старые краш-файлы в /var/crash/, которые были созданы при падении системных программ (например, Xwayland, gnome-remote-desktop-daemon). Apport (система отчетов об ошибках Ubuntu) обнаруживает эти файлы и предлагает отправить отчет.

Важно: Краши могли произойти давно и не влиять на текущую работу системы.

Решение

Вариант 1: Удалить краш-файлы (рекомендуется)

# Проверить наличие краш-файлов
sudo ls -lh /var/crash/

# Удалить все краш-файлы
sudo rm /var/crash/*.crash

# Или удалить конкретные файлы
sudo rm /var/crash/_usr_bin_Xwayland.*.crash
sudo rm /var/crash/_usr_libexec_gnome-remote-desktop-daemon.*.crash

Вариант 2: Отключить Apport (если не хотите видеть уведомления)

# Отредактировать конфигурацию Apport
sudo nano /etc/default/apport

# Установить: enabled=0
# Затем перезагрузить систему или перезапустить Apport
sudo systemctl restart apport

Вариант 3: Настроить автоматическую очистку старых краш-файлов

# Создать скрипт для очистки краш-файлов старше 7 дней
sudo tee /usr/local/bin/cleanup-crash-reports.sh > /dev/null << 'EOF'
#!/bin/bash
find /var/crash -name "*.crash" -mtime +7 -delete
EOF

sudo chmod +x /usr/local/bin/cleanup-crash-reports.sh

# Добавить в cron для еженедельного запуска
sudo tee /etc/cron.weekly/cleanup-crash-reports > /dev/null << 'EOF'
#!/bin/bash
/usr/local/bin/cleanup-crash-reports.sh
EOF

sudo chmod +x /etc/cron.weekly/cleanup-crash-reports

Проверка

После удаления краш-файлов:

# Убедиться, что краш-файлы удалены
sudo ls -lh /var/crash/

# Должно быть пусто или показать только новые краш-файлы (если есть)

Примечания

  • Краш-файлы обычно создаются при падении программ
  • Если краш произошел давно и система работает нормально, можно безопасно удалить старые файлы
  • Если краши повторяются часто, стоит проверить системные логи и обновить соответствующие пакеты
  • Подробнее о работе с крашами: docker-compose-crash-fix.md
  • Повторяющиеся ошибки и приоритет их решения: recurring-errors-priority-2026-02-11.md

Заметки

[Добавьте типичные проблемы и их решения]