Syntax highlighting of linux/troubleshooting

= Linux Troubleshooting =

<<TableOfContents()>>

    . Код выхода 137 сигнализирует о том, что процесс был убит внешним сигналом (код выхода 128 + 9 (SIGKILL). Аналогичным образом код выхода 143 соответствует 128 + 15 (SIGTERM).

== Не запускается терминал ==

После обновления системы и версии python перестал запускаться "гномовский" терминал.
Через меню запущен "терминал xfce" и через него `gnome-terminal`. Получил ошибку

{{{
...
ImportError: cannot import name '_gi' from partially initialized module 'gi' (most likely due to a circular import) (/usr/lib/python3/dist-packages/gi/__init__.py)

}}}

Вариант решения

{{{#!highlight bash
sudo apt install libgirepository1.0-dev libcairo2-dev libjpeg-dev libgif-dev
sudo python3.9 -m pip install --ignore-installed PyGObject

}}}

== finished update utmp about system runlevel changes ==

Desktop система зависает при загрузке на строке

{{{
[ok] finished update utmp abput system runlevel changes

}}}

Перед этим загрузка останавливается на несколько секунд на ошибке

{{{
started vizualzation daemon sev command timeout

}}}

Причиной может быть некорректно установленный драйвер nvidia.
Признаком ошибки может быть команда:

{{{#!highlight bash
nvidia-smi
# Failed to initialize NVML: Driver/library version mismatch

}}}

Удаляем текущий драйвер:

{{{#!highlight bash
sudo apt-get --purge remove "*nvidia*"

}}}

Получаем список доступных драйверов

    . Внимание! Не обязательно устанавливать  самый новый, т.к. в данном случае из-за него и была ошибка загрузки.

{{{#!highlight bash
sudo ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.3/0000:01:00.2/0000:02:04.0/0000:05:00.0 ==
modalias : pci:v000010DEd00002184sv000010DEsd00001324bc03sc00i00
vendor   : NVIDIA Corporation
model    : TU116 [GeForce GTX 1660]
driver   : nvidia-driver-418-server - distro non-free
driver   : nvidia-driver-440-server - distro non-free
driver   : nvidia-driver-455 - distro non-free recommended
driver   : nvidia-driver-450 - distro non-free
driver   : nvidia-driver-450-server - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

}}}

Устанавливаем драйвер

{{{#!highlight bash
sudo apt install nvidia-driver-450

}}}

Проверяем работу

{{{#!highlight bash
nvidia-smi
Mon Dec 21 06:59:35 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce GTX 1660    Off  | 00000000:05:00.0  On |                  N/A |
|  0%   41C    P8     9W / 120W |    421MiB /  5936MiB |      1%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      3993      G   /usr/lib/xorg/Xorg                 53MiB |
|    0   N/A  N/A      6081      G   /usr/lib/xorg/Xorg                164MiB |
|    0   N/A  N/A      6240      G   /usr/bin/gnome-shell               87MiB |
|    0   N/A  N/A      8060      G   gnome-control-center                2MiB |
|    0   N/A  N/A     10916      G   ...AAAAAAAAA= --shared-files       98MiB |
+-----------------------------------------------------------------------------+

}}}

Перезагружаемся. Система загружается без "застреваний" и выдает разрешение 2560*1440

== unable to resolve host hostname ==

{{{#!highlight bash
sudo vim /etc/hosts
# ... add hostname to 127.0.1.1 string

}}}

== remmina -  reconnecion in progress ==

После очередного обновления ''remmina'' вдруг перестала подключаться по RDP

Лечение: открываем окно редактирования соединения, переходим на вкладку "Дополнительные", включаем опции "Relax Order Checks" и "Glyph Cache" (в самом низу)

== Обнаружена ошибка в системной программе ==

После обновления дистрибутива (и не только) возникает диалоговое окно с сообщением "Обнаружена ошибка в системной программе".

Вариант решения по [[https://losst.ru/ispravlyaem-obnaruzhena-oshibka-v-sistemnoj-programme-ubuntu|ссылке|class=" moin-https"]]

== Slow download speed in Steam ==

Скорость скачивания игр экстремально маленькая - до 100 КБ
Решение - https://unix.stackexchange.com/questions/366220/ubuntu-16-04-minimal-extremely-slow-internet-connection

{{{#!highlight bash
sudo vim /etc/sysctl.conf

}}}

Добавляем строки (по всей видимости отключаем IPv6)

{{{
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

}}}

Перезапускаем `sysctl`

{{{#!highlight bash
sudo sysctl -p

}}}

== E: Sub-process /usr/bin/dpkg returned an error code (1) ==

{{{#!highlight bash
# вариант 1
sudo rm /var/lib/dpkg/info/PACKAGE*
sudo apt-get install -f && sudo dpkg --configure -a

}}}

== Windows-диски смонтированы в Readonly ==

В windows 10 по умолчанию включен режим "Гибернации", что мешает корректно смонтировать диски. 

Необходимо отключить режим гибернации в windows.

{{{#!highlight bash
powercfg –h off

}}}

https://windows10i.ru/instruktsii-i-sovety/gibernatsiya-windows-10.html

== Recovery mode ==

Перемонтирование системы в Read/Write

{{{#!highlight bash
mount -o rw,remount /

}}}

== Вместо обоев черный экран ==

[[https://askubuntu.com/questions/287571/desktop-shows-a-white-or-black-background-instead-of-wallpapers|источник|class=" moin-https"]]

{{{#!highlight bash
gsettings set org.gnome.settings-daemon.plugins.background active true

}}}

== Пропал wifi ==

После очередного обновления пакетов `sudo apt upgrade` пропадает WiFi. Устройство не отображается в списке сетевых устройств. При перезагрузке может выдаваться диалоговое окно об ошибке.

'''Возможная причина'''

Несовместимость нового ядра и драйвера wifi.

Например такой баг - https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/1757008

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

В меню загрузки выбрать "Дополнительные параметры Ubuntu" и загрузится с более раннего ядра.

'''Долгое решение'''

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

Загружаемся в ранней версии ядра.

Если были какие-либо корректировки в черными списками, то возвращаем всё назад

{{{#!highlight bash
sudo vim /etc/modprobe.d/blacklist.conf

}}}

Если устанавливались какие-либо пакеты драйверов, то удаляем их

{{{#!highlight bash
sudo apt remove --purge firmware-b43-installer bcmwl-kernel-source 

}}}

Проверяем, что наш адаптер не отображается

{{{#!highlight bash
iwconfig

}}}

Получаем подробную информацию об устройстве

{{{#!highlight bash
lspci -vnn | grep Network
# 08:00.0 Network controller [0280]: Broadcom Limited BCM43142 802.11b/g/n [14e4:4365] (rev 01)

}}}

По  PCI  ид-ру в квадратных скобках определяем подходящий пакет драйверов в соответствии с таблицей на странице https://askubuntu.com/questions/55868/installing-broadcom-wireless-drivers?newreg=f05dd07807b447ee807feb278076e6c1

Устанавливаем соответствующий пакет

{{{#!highlight bash
sudo apt install bcmwl-kernel-source

}}}

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

При корректной установке перезагружаем систему в предыдущей версии ядра. 

== Проблемы с nvidia ==

Не устанавливается проприетарный драйвер nvidia

https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-18-04-bionic-beaver-linux

При стандартном процессе установки проприетарного драйвера nvidia (программы и обновления -> друное ПО -> партнеры canonical + дополнительные драйверы) система жестко зависает. После перезагрузке не дает выполнить `sudo apt upgrade` по причине что прошлая установка не завершена, предлагает выполнить `sudo dpkg --configure -a`, при которой система зависает.

Восстановить работоспособность помогли команды:

{{{#!highlight bash
sudo dpkg --purge --force-all nvidia-driver-390
sudo apt autoremove

}}}

При этом после перезагрузки разрешение падает (видимо были удалены и исходные драйвера), поэтому необходимо установить драйвера "по-умолчанию"

{{{#!highlight bash
sudo ubuntu-drivers autoinstall

}}}

== rm -rf Recovery ==

[[https://knackforge.com/blog/selvam/restoring-removed-files-rm-rf-linux-testdisk|источник|class=" moin-https"]]

Текстовые файлы, удаленные командой `rm -rf`, есть шанс восстановить. Для этого потребуется лишь знать лишь некоторое содержание файла, в то время как имя файла не поможет.

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

Также необходимо учитывать следующие факторы:

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

2) Восстанавливать необходимо на другое устройство; если файлы удалены в домашней директории, то восстанавливать надо в корневую и наоборот (?)

{{{#!highlight bash
# создаем директорию для восстановления
sudo mkdir -p /mnt/recover/disk
# запускаем восстановление
# в директории /mnt/recover будет создано множество директорий disk.NNN
# с текстовыми файлами различных расширений
# расширения особого значения не имеют - они не отражают содержание файлов
photorec /debug /log /d /mnt/recover/disk /cmd /dev/sda6 partition_none,options,mode_ext2,fileopt,everything,enable,search
# осуществляем поиск по содеражнию файлов и копируем их в отдельную директорию
sudo cp $(grep -rl "file specific text" /mnt/recover) /forlder/for/specific/files

}}}

В директории `/forlder/for/specific/files` будут содержаться найденные файлы. Некоторые файлы будут незначительно отличаться друг от друга, некоторые будут содержать "куски" оригинальных. Потребуется ручная обработка каждого файла и копирование в исходную директорию с указанием имени.

== Если интерфейс не определился как eth ==

1) Корректируем файл ''/etc/default/grub''

{{{
...
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"
...

}}}

2) Создаем новый ''grub.cfg''

{{{#!highlight bash
sudo update-grub

}}}

3) Перезагружаем систему

== Не поднялся сетевой интерфейс ==

На сервере mysrv после обновления не поднялся целевой...

Команды, в результате выполнения котороых сеть вдруг поднялась на новом IP

{{{#!highlight bash
ifconfig -a
sudo ifup enxb0a7b96a5eb3
sudo lshw -class network
sudo ifconfig enxb0a7b96a5eb3 up
sudo service networking restart
sudo systemctl restart networking
sudo systemctl restart network
sudo systemctl restart network-manager

}}}