Поиск по сайту:

Устранение неполадок в Linux: 5 распространенных проблем и способы их устранения


Linux – мощная и надежная операционная система, но даже опытные пользователи сталкиваются с неожиданными проблемами. Будь то удаленный файл, забытый пароль root или медленная система, знание того, как эффективно устранять неполадки, является ключом к тому, чтобы стать настоящим экспертом в Linux.

В этом руководстве представлены реальные сценарии решения проблем Linux, а также пошаговые решения, которые широко распространены среди системных администраторов, разработчиков и обычных пользователей Linux.

Сценарий 1: Вы случайно удалили важный файл

Вы случайно удалили важный файл с помощью команды rm, и теперь вам нужно его восстановить. В отличие от Windows и macOS, в Linux нет встроенной «Корзины» для файлов, удаленных из терминала.

Варианты восстановления зависят от используемой файловой системы.

Для файловых систем EXT3/EXT4

Используйте extundelete, который представляет собой утилиту с открытым исходным кодом, предназначенную для восстановления удаленных файлов из файловых систем ext3 и ext4 в Linux.

sudo apt install extundelete  # Debian-based  
sudo yum install extundelete  # RHEL-based  

Перед попыткой восстановления отключите раздел, чтобы предотвратить дальнейшие записи, которые могут привести к перезаписи удаленных данных:

sudo umount /dev/sdX

Затем выполните следующую команду, чтобы восстановить удаленный файл, и обязательно замените /dev/sdX фактическим разделом, где файл был удален.

sudo extundelete /dev/sdX --restore-all

Для файловых систем XFS, Btrfs или NTFS

Если ваша система использует XFS, Btrfs или NTFS, лучшим вариантом будет инструмент testdisk.

sudo apt install testdisk  # Debian-based  
sudo yum install testdisk  # RHEL-based  

Запустите testdisk и следуйте интерактивным подсказкам для восстановления потерянных файлов.

sudo testdisk

Советы по профилактике:

    • Используйте trash-cli: Вместо rm используйте trash-cli для отправки файлов в корзину, которую можно восстановить.
sudo apt install trash-cli  
trash-put myfile.txt  
  • Включите регулярное резервное копирование: настройте rsync или Timeshift для автоматического резервного копирования важных файлов.

Сценарий 2: Восстановление забытого пароля root

Вы забыли пароль root и не можете выполнять административные задачи, что означает, что вы не можете установить программное обеспечение, изменить системные настройки или получить доступ к критически важным файлам.

Вы можете сбросить пароль root, загрузившись в режим восстановления или изменив загрузчик GRUB.

Использование режима восстановления (Ubuntu/Debian)

Сначала перезагрузите систему и удерживайте клавишу Shift во время запуска, чтобы получить доступ к меню GRUB, затем выберите «Дополнительные параметры» → «Режим восстановления» и выберите «Переключить на корневую оболочку».

Здесь перемонтируйте корневую файловую систему как доступную для записи и сбросьте пароль root.

mount -o remount,rw /
passwd root

Перезагрузите систему.

reboot

Использование rd.break (RHEL/CentOS/Fedora)

Сначала перезагрузите систему, нажмите e в меню GRUB и найдите строку, начинающуюся с linux, и добавьте rd.break в конце.

Далее монтируем корневую файловую систему и сбрасываем пароль root.

mount -o remount,rw /sysroot  
chroot /sysroot  
passwd root  

Наконец, выйдите и перезагрузитесь.

exit  
reboot  

Советы по профилактике:

  • Создайте пользователя sudo без пароля, чтобы избежать блокировки root-доступа.
  • Используйте ключи SSH вместо паролей для аутентификации.

Сценарий 3: Вы установили пакет, но он не работает

Вы установили пакет, но при попытке запустить его появляется сообщение "command not found", что обычно происходит, когда двоичного файла нет в PATH вашей системы, пакет установлен неправильно или отсутствует зависимость.

Решение заключается в том, что сначала вам нужно проверить, установлен пакет или нет.

dpkg -l | grep package-name  # Debian-based  
rpm -qa | grep package-name  # RHEL-based  

Если он отсутствует, установите его повторно:

sudo apt install package-name  
sudo yum install package-name  

Далее проверьте, есть ли команда в вашем системном PATH.

which package-name  
echo $PATH

Если двоичный файл находится в нестандартном месте, добавьте его в PATH:

export PATH=$PATH:/usr/local/bin  

Советы по профилактике:

  • Перезагрузите терминал или запустите hash -r после установки новых пакетов.
  • Используйте пакетные менеджеры, такие как Snap или Flatpak, которые лучше справляются с зависимостями.

Сценарий 4: В вашей системе заканчивается место на диске

В системе отображается сообщение об ошибке «На устройстве не осталось места», что препятствует обновлению программного обеспечения, ведению журналов и нормальной работе.

Вот как освободить место на диске и обеспечить бесперебойную работу системы.

Шаг 1: Проверьте использование диска

Решение заключается в том, что сначала вам нужно проверить, сколько места используется на каждом разделе в вашей системе с помощью команды df.

df -h

Шаг 2: Поиск и удаление больших файлов

Затем найдите самые большие файлы, занимающие место, выполнив команду du, которая просканирует вашу систему и перечислит 10 самых больших файлов или каталогов. Удалите ненужные файлы с помощью rm или переместите их на внешний диск.

du -ah / | sort -rh | head -10

Шаг 3: Удалите ненужные логи

Журналы необходимы для устранения неполадок и мониторинга активности системы, но они могут быстро расти и занимать значительное количество места на диске.

Со временем старые журналы могут отпасть, что делает их основными кандидатами на очистку.

sudo journalctl --vacuum-time=2d  # Deletes logs older than 2 days  
sudo apt autoclean                # Removes outdated package files  

Шаг 4: Удалите старые ядра (Ubuntu/Debian)

Когда вы обновляете свою систему, особенно в дистрибутивах на основе Ubuntu или Debian, часто устанавливаются новые версии ядра Linux.

Однако старые ядра не удаляются автоматически, и со временем эти старые ядра могут накапливаться и занимать значительное количество места на диске.

Их удаление — это безопасный и эффективный способ освободить место без ущерба для функциональности системы.

sudo apt autoremove --purge  

Советы по профилактике:

  • Настройка ротации журналов: используйте logrotate для автоматического управления размерами файлов журналов и сроками хранения.
  • Мониторинг использования диска: установите такие инструменты, как ncdu, для отслеживания использования диска и выявления пожирателей места.
  • Регулярная очистка: запланируйте периодические очистки, чтобы удалить временные файлы, кэши и неиспользуемые пакеты.

Сценарий 5: Ваш сервер внезапно перестает отвечать

Вы управляете сервером Linux, и внезапно он перестает отвечать, и вы пытаетесь подключиться через SSH, но время ожидания соединения истекает или оно отказывается устанавливаться. Вы даже можете заметить, что сервер все еще включен, но не реагирует ни на какие команды.

Такая ситуация может быть вызвана различными проблемами, среди которых:

  • Высокая нагрузка на процессор или память из-за неуправляемых процессов.
  • Узкие места дискового ввода-вывода, когда система перегружена операциями чтения/записи.
  • Происходит паника ядра или сбой системы.
  • Сбои в работе сети, препятствующие удаленному доступу.

Чтобы восстановить контроль, выполните следующие действия по устранению неполадок.

Шаг 1: Получите доступ к серверу локально или через телетайп

Если SSH не работает, попробуйте получить доступ к серверу напрямую или через сеанс TTY:

  • На физическом компьютере используйте локальную консоль.
  • На виртуальной машине используйте консоль гипервизора.
  • Для систем Linux переключитесь на другую сессию TTY с помощью Ctrl + Alt + F2 (или F3, F4 и т. д.).

Шаг 2: Проверьте нагрузку на систему

Войдя в систему, проверьте загрузку системы и использование ресурсов, которые покажут среднюю нагрузку системы за 1, 5 и 15 минут. Значение нагрузки выше, чем количество ядер процессора, указывает на высокий спрос.

uptime  

Далее используйте top или htop для мониторинга процессов в режиме реального времени:

top  
Or
htop

Ищите процессы, потребляющие чрезмерное количество ресурсов ЦП или памяти.

Шаг 3: Идентификация и устранение процессов Runaway

Чтобы определить наиболее ресурсоемкие процессы, выполните:

ps aux --sort=-%cpu | head  

Здесь перечислены процессы, потребляющие больше всего ресурсов процессора, где вы можете найти проблемный процесс и завершить его с помощью:

kill -9 PID  

Замените PID идентификатором процесса проблемного приложения.

Шаг 4: Проверьте системные журналы

Если система все еще отвечает, проверьте логи на наличие ошибок:

sudo tail -f /var/log/syslog  
Or
sudo dmesg | tail  

Эти команды отображают последние системные сообщения и журналы ядра, которые могут помочь выявить проблемы с оборудованием или программным обеспечением.

Шаг 5: Безопасная перезагрузка с помощью SysRq

Если система полностью зависла, используйте комбинацию клавиш SysRq для безопасной перезагрузки:

echo b > /proc/sysrq-trigger  

Это запускает безопасную перезагрузку, обеспечивая целостность данных за счет синхронизации дисков и отключения файловых систем.

Заключение

Устранение неполадок является важным навыком для каждого пользователя Linux. Будь то восстановление удаленных файлов, сброс паролей или исправление системных ошибок, знание правильных команд может сэкономить время и нервы.

Есть ли у вас собственные советы по устранению неполадок? Поделитесь ими в комментариях! Давайте вместе создадим полезное сообщество Linux.