RuCore.NET

Популярные ошибки в Linux (решение)





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

 



 

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

Причем вы сможете понять что произошло, даже не зная английского. Главным признаком ошибки есть слово ERROR (ошибка) или WARNING (предупреждение). Рассмотрим самые частые сообщения об ошибках:

  • Permission Denied — нет доступа, означает что у программы нет полномочий доступа к определенному файлу или ресурсу.
  • File or Directory does not exist — файл или каталог не существует
  • No such file or Directory — нет такого файла или каталога
  • Not Found — Не найдено, файл или ресурс не обнаружен
  • Connection Refused — соединение сброшено, значит, что сервис к которому мы должны подключиться не запущен
  • is empty — означает, что папка или нужный файл пуст
  • Syntax Error — ошибка синтаксиса, обычно значит, что в конфигурационном файле или введенной команде допущена ошибка.
  • Fail to load — ошибка загрузки, означает что система не может загрузить определенный ресурс, модуль или библиотеку (fail to load library) обычно также система сообщает почему она не может загрузить, permission denied или no such file и т д.

Сообщения об ошибках, кроме терминала, мы можем найти в различных лог файлах, все они находятся в папке /var/log, мы рассматривали за какие программы отвечают определенные файлы в статье просмотр логов linux. Теперь же мы подробнее рассмотрим где и что искать если linux выдает ошибку.

 


Монтирование NTFS раздела от Windows 10 в Linux

Ошибка:

Windows is hibernated, refused to mount.
Failed to mount ‘/dev/sda2’: Операция не позволена
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume
read-only with the ‘ro’ mount option.

Решение:

sudo mount -t ntfs-3g -o remove_hiberfile /dev/sda2 /mnt

Ошибка:

The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Failed to mount ‘/dev/sdb5’: Operation not permitted
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume
read-only with the ‘ro’ mount option.

Решение:

sudo ntfsfix /dev/sda3

Отключение режима гибернации в винде

powercfg /h off

 


Нет места, но место есть.

Проблема: ПО пишет, что закончилось место на диске, при этом df -h показывает, что место все-таки есть.

Решение: Надо проверить свободный айноды. df -hTi. Возможно их забили мелкие файлы.


Команда смены владельца и группы владельцев для директории и всех поддиректорий с файлами

sudo chown -R user:group /home/user/dir/


FTP сервер на Ubuntu server

Установить
sudo apt-get install vsftpd

Добавить нового пользователя, если надо
sudo adduser ftpuser
sudo adduser ftpuser ftp —disabled-login

Правим конфигурацию
sudo nano /etc/vsftpd.conf

Если надо анонимный доступ
anonymous_enable=Yes

чтение и правка файлов
local_enable=YES
write_enable=YES

Ограничить домашним каталогом. Создаем список пользователй
sudo nano /etc/vsftpd.chroot_list

пишем туда юзеров по одному на строчку
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

папка входа по умоланию
local_root=/var/www

Права на файлы
#002 — 775; 022 — 755
local_umask=002

рестарт
sudo service vsftpd restart

Если права на файлы раздаются не верно~
nano /home/ftpuser/.profile

Раскомментируем строчку
umask 002

 


Расширить диск виртуальной машины KVM и VirtualBox

на хост-машине

1)KVM
sudo qemu-img resize /home/vm/disk.img +10G

2)VirtualBox
«C:\Program Files\Oracle\VirtualBox\VBoxManage.exe» modifyhd D:\vbox\xubuntu.vdi —resize 25000

на вируалке
sudo apt-get install gparted
sudo swapoff /dev/vda5
sudo -X gparted

 


авторизация SSH без пароля

на своей машине
ssh-keygen -t rsa

в папке /home/имя пользователя/.ssh/id_rsa и id_rsa.pub появятся ключи
копируем на сервер

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]_host

на сервере
chmod 600 ~/.ssh/authorized_keys

 


Firefox средняя кнопка мыши не работает как прокрутка

Решение: Правка — > Настройка — > Дополнительные — > Общие — > Использовать автоматическую прокрутку


Проброс портов iptables

Обозначения

$EXT_R_IP — внешний IP роутера
$LOCAL_IP — внутренний «фэйковый» адрес машины, которую надо «выкидывать» наружу
$PORT1 — Порт, на который будут заходить извне и попадать на локальную машину
$PORT2 — Порт, который «выбрасывается» наружу(например, 80 — http, либо 21 — ftp)

На роутере говорим следующие команды(от рута)
iptables -t nat -A PREROUTING -i eth0 -p tcp -d $EXT_R_IP —dport $PORT1 -j DNAT —to-destination $LOCAL_IP:$PORT2
iptables -A FORWARD -i eth0 -d $LOCAL_IP -p tcp —dport $PORT2 -j ACCEPT

 


Примонтировать флешку Ubuntu Linux

service srv1cv83 stop
sudo dpkg -l | more | grep 1c
sudo dpkg -r 1c-enterprise83-ws
sudo dpkg -r 1c-enterprise83-server
sudo dpkg -r 1c-enterprise83-common

dpkg -i 1c-enterprise83-common_8.3.6-2390_amd64.deb
dpkg -i 1c-enterprise83-server_8.3.6-2390_amd64.deb
dpkg -i 1c-enterprise83-ws_8.3.6-2390_amd64.deb

sudo reboot

 


Google Chrome не предлагает сохранить пароли

Если Google Chrome не предлагает сохранить пароли и не использует автозаполнение, то причина может быть в том, что эти опции отключены в настройках. Для их включения перейдите во вкладку chrome://settings/, либо в меню выберите пункт «Настройки»:

На открывшейся странице в разделе «Автозаполнение» выберите пункт «Пароли»:

В открывшемся окне включите две опции:

  • Предлагать сохранение паролей
  • Автоматический вход (Автоматически входить на сайты с помощью сохраненного имени пользователя и пароля. Когда функция отключена, эти данные нужно вводить при каждом входе)

После этого автоматический вход и сохранение пароли должны начать работать.


Google Chrome не сохраняет пароли, хотя предлагает их сохранить

Эта ситуация более нестандартная, она может встречаться на различных операционных системах: в моём случае это Chromium на Linux, но сообщали также об аналогичной проблеме для Google Chrome на MacOS.

Признаки:

  1. После входа на веб-сайт, браузер, как обычно, предлагает сохранить пароль
  2. Я нажимаю на кнопку «Сохранить»
  3. Chrome не показывает никакие ошибки
  4. Но пароль не сохраняется: а) он не вводится автоматически при следующем заходе на сайт; б) пароль не отображается во вкладке chrome://settings/passwords

Решение следующиее:

1. Выйдите из Chrome

2. Перейдите в директорию, где Chrome хранит данные пользователя — внутри домашней папки, в директории, зависящей от операционной системы:

  • MacOS: ~/Library/Application Support/Google/Chrome
  • Linux (Chrome): ~/.config/google-chrome
  • Linux (Chromium): ~/.config/chromium
  • Windows: %UserProfile%\AppData\Local\Google\Chrome\User Data

3. От туда перейдите в директорию с именем Default, если вы хотите исправить ваш главный профиль, или в Profile 1 или Profile 2 и т. д. Если вы хотите починить один из дополнительных профилей.

4. Удалите файлы Login DataLogin Data-journal и Login Data 2-journal.

5. Повторите для других профилей, если необходимо.

После этого у меняв вновь включилось сохранение паролей.

Обратите внимание, что если у вас включена автоматическая синхронизация, то вы не потеряете сохранённые ранее пароли.


Какие файлы можно удалить при нехватке места на диске Linux

1. Удаление временных файлов

Файлы в папке /tmp/ будут удалены в любом случае при следующей перезагрузки системы. То есть с одной стороны их можно удалить достаточно безболезненно:

1
sudo rm -rf /tmp/*

НО: может быть нарушена работа программ, которые запущены в настоящее время и которые сохранили какие-то данные в папку /tmp/.

2. Удаление файлов кэширования

В директории /var/cache/ много поддиректорий, которые можно удалить практически безболезненно (данные утеряны не будут, а программы создадут новые файлы кэширования). Эта директория вызывает особый интерес, поскольку на которых системах кэши разрастаются на гигабайты и десятки гигабайт. Иногда поиск проблемной директории в /var/cache/ может окончательно решить ситуацию с нехваткой места на диске.

Для удаления кэша шрифтов:

1
sudo rm -rf /var/cache/fontconfig/

Для удаления кэша установочных пакетов (на Debian, Linux Mint, Ubuntu, Kali Linux и их производных):

1
sudo rm -rf /var/cache/apt/

Для удаления кэша установочных пакетов (на Arch Linux, BlackArch и их производных):

1
sudo rm -rf /var/cache/pacman/

Удаление кэша справочных страниц:

1
sudo rm -rf /var/cache/man/

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

3. Удаление логов (журналов)

В этой папке (/var/log/) можно удалить практически все файлы, но старайтесь сохранить структуру папок, поскольку некоторые приложения после удаления здесь папки не в состоянии создать её второй раз…

На веб-серверах могут разрастись слишком сильно журналы веб-сервера.

Для удаления логов Apache на Debian, Linux Mint, Ubuntu, Kali Linux и их производных:

1
sudo rm -rf /var/log/apache2/*

Для удаления логов Apache на Arch Linux, BlackArch и их производных:

1
sudo rm -rf /var/log/httpd/*

Чтобы сервер начал создавать новые файлы журналов и записывать в них, нужно перезапустить службу веб-сервера.

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

1
sudo ncdu /var/log/

4. Очистите корзину

Этот совет больше для настольных систем. Файлы, которые вы удалили в графическом интерфейсе рабочего стола, попадают в папку ~/.local/share/Trash/files/, вы можете проанализировать их и при желании удалить (второй раз):

1
ncdu ~/.local/share/Trash/files/

5. Удаление ненужных файлов исходного кода заголовков ядра

Следующее актуально только для Debian, Linux Mint, Ubuntu, Kali Linux и их производных. Проверьте папку /usr/src/, там будут подпапки вида linux-headers- — большинство из них можно удалить — оставьте только ту, номер которой соответствует текущему ядру системы — обычно это самый последний номер выпуска.

6. Удаление осиротевших пакетов

На Debian, Linux Mint, Ubuntu, Kali Linux и их производных удалить ненужные пакеты можно следующим образом:

1
sudo apt autoremove

7. Очистка журналов systemd

Со временем, в некоторых системах логи системы начинают занимать гигабайты на жёстком диске. Просмотреть журналы и освободить место вы можете с помощью команды journalctl

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

1
journalctl --disk-usage

Чтобы удалить все записи, оставив только записей на 100 мегабайт, выполните:

1
journalctl --vacuum-size=100M

Либо для удаления всех записей в системном журнале, старше одной недели:

1
journalctl --vacuum-time=1weeks

8. Проанализируйте файлы Docker

Не удаляйте безумно файлы Docker. Я привожу пример этой директории только по той причине, что она привлекла моё внимание из-за просто фантасмагоричного размера — и это при том, что я Docker’ом фактически не пользуюсь — буквально несколько раз попробовал, чтобы увидеть, что это такое.

Самой большой папкой является /var/lib/docker/overlay2/. Для анализа занимаемого места на диске выполните:

1
sudo ncdu /var/lib/docker/

 


 

Как исправить «No route to host» SSH в Linux

Если сервер работает на RHEL/CentOS/Fedora, то нужно использовать команду firewall-cmd, чтобы открыть 22 порт (или другой порт, который вы настроили для использования с SSH):

1
2
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --reload

Если сервер работает на Debian/Ubuntu, то нужно использовать команду UFW, чтобы открыть 22 порт (или другой порт, который вы настроили для использования с SSH) следующим образом:

1
2
sudo ufw allow 22/tcp
sudo ufw reload

Теперь попробуйте вновь подключиться к удалённому серверу по SSH:

Проблема должна исчезнуть.


Ошибки «E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock — open (11: Resource temporarily unavailable)» и «E: Невозможно заблокировать каталог /var/lib/apt/lists/»

возникает примерно следующая ошибка:

1
2
3
4
5
sudo apt update && sudo apt dist-upgrade -y
[sudo] password for mial:
Чтение списков пакетов… Готово
E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Невозможно заблокировать каталог /var/lib/apt/lists/

Если в этой ситуации удалить файлы-блокировщики (/var/lib/apt/lists/lock), как это иногда советуют, то в результате фоновый процесс apt преждевременно завершит свою работу, либо вы запустите второй экземпляр apt – оба эти варианта приведут к проблемам с пакетами, и, вероятнее всего, при последующей попытке использовать apt система предложит вам запустить программу с ключом —f:

1
sudo apt install -f -y

Правильный способ исправить ошибку

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

1
systemctl list-unit-files | grep apt

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

1
systemctl list-unit-files | grep enabled | grep apt

Службы apt-daily-upgrade.timer и apt-daily.timer, чтобы отключить их автоматический запуск при старте системы, выполните команды:

1
2
sudo systemctl disable apt-daily-upgrade.timer
sudo systemctl disable apt-daily.timer

 


 

Как обновить Linux в командной строке

С одной стороны, отключение автоматических обновлений и скачивание новых файлов пакетов навсегда избавит вас от ошибки «E: Невозможно заблокировать каталог /var/lib/apt/lists/» и других подобных, но при этом вам нужно будет самостоятельно выполнять обновление и очистку пакетов.

Для полного обновления системы выполняйте:

1
sudo apt update && sudo apt full-upgrade -y

А для очистки пакетов используются команды:

1
2
sudo apt autoremove -y
sudo apt clean -y

 


Не работает буфер обмена с гостевой ОС Linux

В этом случае как суперпользователь выполните команды:

1
2
killall VBoxClient
VBoxClient-all

Если это не помогло, а особенно если у вас возникает ошибка:

1
/usr/bin/VBoxClient-all: 26: /usr/bin/VBoxClient-all: notify-send:<span id="more-419"></span> not found

тогда установите пакет:

1
sudo apt-get install virtualbox-guest-x11

а затем запустите клиент VirtualBox

1
VBoxClient-all

Бывают ситуации, что буфер обмена с гостевой ОС работал, но в какой-то момент перестал. Это может происходить, например, после обновления ядра. В этой ситуации также поможет установка пакета virtualbox-guest-x11 и запуск службы VBoxClient-all.

 

 

 

Источник: https://losst.ru/ и https://7d3.ru/ и https://zalinux.ru/



Поделись статьей с друзьями


84 просмотров



Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: