tips-and-tricks.rst 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794
  1. ..
  2. SPDX-FileCopyrightText: 2018-2023 EasyCoding Team and contributors
  3. SPDX-License-Identifier: CC-BY-SA-4.0
  4. .. _tips-and-tricks:
  5. ********************************
  6. Оптимизация и тонкая настройка
  7. ********************************
  8. .. index:: gnome, ram, optimizations
  9. .. _gnome-reduce-ram-usage:
  10. Как уменьшить потребление оперативной памяти средой рабочего стола GNOME 3?
  11. ==============================================================================
  12. Отключим службу автоматической регистрации ошибок и удалим GUI апплет, уведомляющий об их возникновении:
  13. .. code-block:: text
  14. sudo dnf remove abrt
  15. Удалим Магазин приложений (графический менеджер пакетов):
  16. .. code-block:: text
  17. sudo dnf remove PackageKit gnome-software
  18. Отключим службу управления виртуализацией (если на установленной системе не предполагается использовать виртуальные машины):
  19. .. code-block:: text
  20. sudo systemctl disable libvirtd
  21. Отключим службы Evolution, необходимые для синхронизации онлайн аккаунтов:
  22. .. code-block:: text
  23. systemctl --user mask evolution-addressbook-factory evolution-calendar-factory evolution-source-registry
  24. Отключим службы, необходимые для создания индекса файловой системы, необходимого для быстрого поиска (если не предполагается использовать поиск в главном меню):
  25. .. code-block:: text
  26. systemctl --user mask tracker-miner-apps tracker-miner-fs tracker-store
  27. .. index:: kde, ram, optimizations
  28. .. _kde-reduce-ram-usage:
  29. Как уменьшить потребление оперативной памяти средой рабочего стола KDE?
  30. ===========================================================================
  31. Отключим службу индексации файлов. Для этого зайдём в **Параметры системы** -- **Поиск**, снимем флажок из чекбокса **Включить службы поиска файлов** и нажмём **Применить**. Теперь удалим Akonadi:
  32. .. code-block:: text
  33. sudo dnf remove akonadi
  34. Удалим устаревшие библиотеки Qt4 и службу автоматической регистрации ошибок ABRT:
  35. .. code-block:: text
  36. sudo dnf remove qt abrt
  37. Удалим Магазин приложений (графический менеджер пакетов):
  38. .. code-block:: text
  39. sudo dnf remove PackageKit plasma-discover dnfdragora
  40. Удалим runtime библиотеки для экономии ОЗУ (при этом по зависимостям будут удалены некоторые приложения, например KMail и KOrganizer):
  41. .. code-block:: text
  42. sudo dnf remove kdepim-runtime-libs kdepim-apps-libs
  43. Удалим :ref:`KDE Connect <kde-connect>` (если не планируется управлять смартфоном с компьютера и наоборот):
  44. .. code-block:: text
  45. sudo dnf remove kde-connect kdeconnectd
  46. Опционально удалим библиотеки GTK2 (в то же время от них до сих пор зависят многие популярные приложения, например Audacious, GIMP, Thunderbird):
  47. .. code-block:: text
  48. sudo dnf remove gtk2
  49. .. index:: bug, missing library, libcurl-gnutls
  50. .. _kde-wipe-unused:
  51. Как максимально очистить KDE от неиспользуемых программ?
  52. ===========================================================
  53. 1. Произведём стандартную очистку по :ref:`описанному выше <kde-reduce-ram-usage>` сценарию.
  54. 2. Удалим оставшиеся редко используемые пакеты:
  55. .. code-block:: text
  56. sudo dnf remove krdc dragon kontact ktorrent kget konversation konqueror falkon kmail krusader krfb akregator juk kamoso k3b calligra\* kfind kgpg kmouth kmag
  57. .. index:: bug, missing library, libcurl-gnutls
  58. .. _libcurl-workaround:
  59. Как решить проблему с отсутствием библиотеки libcurl-gnutls.so.4?
  60. =====================================================================
  61. См. `здесь <https://www.easycoding.org/2018/04/03/reshaem-problemu-otsutstviya-libcurl-gnutls-v-fedora.html>`__.
  62. .. index:: bfq, hdd, optimizations, scheduler, kernel, udev, udevadm
  63. .. _bfq-scheduler:
  64. Как задействовать планировщик ввода/вывода BFQ для HDD?
  65. ==========================================================
  66. BFQ -- это планировщик ввода-вывода (I/O), предназначенный для повышения отзывчивости пользовательского окружения при значительных нагрузках на дисковую подсистему.
  67. Проверим, какой из планировщиков :ref:`используется в данный момент <io-scheduler>`. Если это не BFQ, произведём редактирование файла шаблонов GRUB:
  68. .. code-block:: text
  69. sudoedit /etc/default/grub
  70. В конец строки ``GRUB_CMDLINE_LINUX=`` добавим ``scsi_mod.use_blk_mq=1``, после чего :ref:`сгенерируем новую конфигурацию GRUB <grub-rebuild>`.
  71. Создадим новое правило udev для принудительной активации BFQ для любых жёстких дисков:
  72. .. code-block:: text
  73. sudo bash -c "echo 'ACTION==\"add|change\", KERNEL==\"sd[a-z]\", ATTR{queue/rotational}==\"1\", ATTR{queue/scheduler}=\"bfq\"' >> /etc/udev/rules.d/60-ioschedulers.rules"
  74. Применим изменения в :ref:`политиках udev <udev-rules-reload>`:
  75. .. code-block:: text
  76. sudo udevadm control --reload
  77. Выполним перезагрузку системы:
  78. .. code-block:: text
  79. sudo systemctl reboot
  80. .. index:: swf, flash, player, projector
  81. .. _swf-player:
  82. Чем можно запустить SWF файл без установки Flash плагина в браузер?
  83. ======================================================================
  84. SWF файл -- это исполняемый файл формата Adobe Flash. Для того, чтобы проиграть его без установки соответствующего плагина в браузер, можно загрузить специальную версию Flash Projector (ранее назывался Standalone).
  85. Скачаем Projector:
  86. .. code-block:: text
  87. wget https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz -O fpsa.tar.gz
  88. Создадим новый каталог и распакуем архив в него:
  89. .. code-block:: text
  90. mkdir -p ~/foo-bar
  91. tar -xzf fpsa.tar.gz -C ~/foo-bar
  92. Запустим проигрыватель:
  93. .. code-block:: text
  94. ~/foo-bar/flashplayer
  95. В открывшемся окне нажмём **Файл** -- **Открыть** (или комбинацию **Ctrl + O**) и найдём SWF файл на диске.
  96. По окончании использования удалим каталог с программой:
  97. .. code-block:: text
  98. rm -rf ~/foo-bar
  99. Внимание! Запускать SWF файлы следует с особой осторожностью, т.к. плеер выполняется без какой-либо изоляции и имеет полный доступ к домашнему каталогу пользователя.
  100. .. index:: python, python2, remove
  101. .. _python2-remove:
  102. Можно ли удалить Python 2 из системы?
  103. ========================================
  104. Да. Поскольку поддержка Python версии 2 была прекращена 01.01.2020, его уже не рекомендуется использовать. Вместо него следует применять Python 3. Большая часть активных проектов и библиотек уже давно были портированы на эту версию.
  105. Возможность полностью избавиться от Python 2 появилась у пользователей Fedora 30 и выше. От данной версии интерпретатора более не зависят важные компоненты и его можно смело удалить:
  106. .. code-block:: text
  107. sudo dnf remove python2
  108. Это действие автоматически удалит и все его зависимости.
  109. .. index:: fs, mount, options, fstab
  110. .. _fs-noexec:
  111. Как запретить возможность исполнения любых файлов из домашнего каталога?
  112. ===========================================================================
  113. Для максимальной безопасности можно запретить запуск любых исполняемых файлов, а также загрузку динамических библиотек из домашнего каталога.
  114. Откроем файл ``/etc/fstab`` в :ref:`текстовом редакторе <editor-selection>`:
  115. .. code-block:: text
  116. sudoedit /etc/fstab
  117. Добавим в опции монтирования домашнего каталога флаги ``noexec,nodev,nosuid`` после ``defaults``.
  118. Пример итоговой строки после внесения изменений:
  119. .. code-block:: text
  120. UUID=XXXXXXXXXX /home ext4 defaults,noexec,nodev,nosuid 1 2
  121. Здесь **XXXXXXXXXX** -- :ref:`UUID раздела <get-uuid>`, а **ext4** -- используемая :ref:`файловая система <fs-selection>`.
  122. Следует помнить, что это действие не повлияет на запуск различных скриптов интерпретаторами, т.е. запуск ``./foo-bar`` с установленным битом исполнения будет запрещён, но в то же время ``bash foo-bar`` выполнится в штатном режиме.
  123. .. index:: fonts, msttcorefonts, corefonts
  124. .. _msttcorefonts:
  125. Как установить шрифты Microsoft в Fedora?
  126. =============================================
  127. См. `здесь <https://www.easycoding.org/2011/08/14/ustanovka-microsoft-core-fonts-v-fedora.html>`__.
  128. .. index:: boot, emergency, shell, root
  129. .. _eshell-error:
  130. При загрузке режима восстановления появляется ошибка root account is locked. Как исправить?
  131. ===============================================================================================
  132. Ошибка *Cannot open access to console, the root account is locked* появляется при запуске системы в режиме восстановления в том случае если при установке Fedora был создан :ref:`пользователь-администратор <admin-vs-user>` и не был задан пароль для учётной записи суперпользователя.
  133. Таким образом, при недоступности раздела /home, войти в систему в emergency режиме не представляется возможным, т.к. отсутствуют пользователи с доступными профилями (суперпользователь заблокирован, а обычные пользовательские учётные записи отключены из-за отсутствия доступа к их домашним каталогам).
  134. Решим данную проблему посредством загрузки с :ref:`Fedora LiveUSB <usb-flash>`, выполнением :ref:`chroot <chroot>` в установленную систему и :ref:`установкой пароля для root <root-password>`:
  135. .. code-block:: text
  136. passwd root
  137. Завершим работу chroot окружения:
  138. .. code-block:: text
  139. logout
  140. При следующей загрузке работа режима восстановления будет полностью восстановлена.
  141. .. index:: zram, memory compression, ram, memory
  142. .. _zram-pool-size:
  143. Как изменить размер пула сжатия памяти?
  144. ==========================================
  145. По умолчанию модуль :ref:`сжатия памяти zram <memory-compression>` создаёт пул, равный половине объёма имеющейся оперативной памяти.
  146. Увеличивать размер пула выше стандартного значения категорически не рекомендуется, т.к. это может приводить к зависаниям системы.
  147. Если всё-таки хочется внести поправки, откроем файл ``/etc/systemd/zram-generator.conf`` в текстовом редакторе:
  148. .. code-block:: text
  149. sudoedit /etc/systemd/zram-generator.conf
  150. Внесём изменения в переменные ``zram-fraction`` и ``max-zram-size``, явно указав необходимые значения:
  151. .. code-block:: text
  152. zram-fraction = 0.5
  153. max-zram-size = 4096
  154. Допустимые значения **zram-fraction**:
  155. * **0.5** -- выделение под пул 50% (выбор по умолчанию) от оперативной памяти;
  156. * **0.25** -- 25%;
  157. * **0.1** -- 10%;
  158. * **1.0** -- 100% соответственно (не рекомендуется).
  159. В **max-zram-size** указывается максимально допустимый объём для пула в мегабайтах.
  160. Изменения вступят в силу при следующей загрузке системы.
  161. .. index:: dual boot, windows
  162. .. _dual-boot-optimizations:
  163. Как оптимизировать Windows для корректной работы в dual-boot?
  164. =================================================================
  165. Если необходимо использовать Fedora вместе с Microsoft Windows в режиме :ref:`двойной загрузки <dual-boot>`, то необходимо применить ряд оптимизаций, специфичных для данной ОС:
  166. 1. переведём часы в UTC во всех установленных ОС: :ref:`Fedora <system-time-utc>`, :ref:`Windows <windows-utc>`;
  167. 2. отключим использование :ref:`гибридного режима завершения работы <ntfs-readonly>`.
  168. После выполнения указанных действий, обе ОС смогут сосуществовать на одном устройстве.
  169. .. index:: webkitgtk, 1c
  170. .. _webkitgtk-legacy:
  171. Приложение требует webkitgtk. Что делать?
  172. =============================================
  173. Библиотека webkitgtk более не поддерживается апстримом, имеет сотни незакрытых критических уязвимостей (в т.ч. допускающих удалённое исполнение кода), и по этой причине она была удалена из репозиториев Fedora начиная с версии 25.
  174. Если приложение требует webkitgtk, то лучше всего воздержаться от его использования, однако если это по какой-либо причине невозможно, то проще всего будет применить загрузку библиотеки через :ref:`переопределение LD_LIBRARY_PATH <library-path>`.
  175. Настоятельно не рекомендуется устанавливать данную библиотеку глобально в систему!
  176. .. index:: php, remi, install
  177. .. _php-remi-install:
  178. Можно ли установить несколько версий PHP одновременно?
  179. =========================================================
  180. Да, это возможно при использовании репозитория Remi's RPM.
  181. В то же время одновременная установка и использование одной и той же *мажорной версии PHP* невозможна, т.е. нельзя одновременно установить и использовать версии **7.3.1** и **7.3.2**, однако **7.2.9** и **7.3.2** уже можно.
  182. `Remi's RPM <https://rpms.remirepo.net/>`__ -- это сторонний репозиторий, созданный и поддерживаемый Remi Collect -- активным участником сообщества и мейнтейнером всего PHP стека в Fedora.
  183. Основная цель данного репозитория -- предоставление различных версий стека PHP с возможностью одновременного использования, а также некоторых других программ для пользователей Fedora и Enterprise Linux (RHEL, CentOS, Oracle, Scientific Linux и т.д.).
  184. **Важно:** Remi's RPM -- это сторонний репозиторий, поэтому в случае, если вы используете бета-версии Fedora или Fedora Rawhide, репозиторий может работать некорректно.
  185. Для подключения выполним сдедующую команду:
  186. .. code-block:: text
  187. sudo dnf install https://rpms.remirepo.net/fedora/remi-release-$(rpm -E %fedora).rpm
  188. **Важно:** Перед использованием репозитория Remi, необходимо подключить :ref:`RPM Fusion <rpmfusion>`.
  189. Для того, чтобы получать обновления PHP, активируем данный репозиторий:
  190. .. code-block:: text
  191. sudo dnf config-manager --set-enabled remi
  192. При необходимости можно включить экспериментальные репозитории с бета-версиями PHP (на примере версии 7.4):
  193. .. code-block:: text
  194. sudo dnf config-manager --set-enabled remi-php74
  195. Установим PHP-интерпретатор версии 7.3:
  196. .. code-block:: text
  197. sudo dnf install php73-php
  198. Для корректного использования PHP с веб-сервером Apache в режиме FastCGI, необходимо вручную указать путь к исполняемому файлу PHP в файле конфигурации веб-сервера.
  199. В случае использования nginx, установим менеджер процессов PHP-FPM для PHP версии 7.3:
  200. .. code-block:: text
  201. sudo dnf install php73-php-fpm
  202. Стоит обратить внимание на то, что все пакеты в репозитории Remi's RPM, относящиеся к PHP, имеют в своем названии префикс вида ``php<php_version>``, где ``<php_version>`` -- первые две цифры версии PHP, которую необходимо использовать.
  203. Запустим PHP-FPM и включим его автоматический старт при включения системы:
  204. .. code-block:: text
  205. sudo systemctl enable --now php73-php-fpm.servie
  206. Указанный выше префикс необходимо использовать и при взаимодействии с юнитами :ref:`systemd <systemd-info>`.
  207. Для выполнения PHP сценария в терминале, вызовем интерпретатор и передадим путь к файлу в качестве параметра:
  208. .. code-block:: text
  209. /usr/bin/php73 /path/to/file.php
  210. Здесь ``/usr/bin/php73`` является символической ссылкой для быстрого вызова исполняемого файла интерпретатора PHP указанной версии, например ``/opt/remi/php73/root/usr/bin/php``.
  211. Файлы конфигурации ``php.ini`` и ``php-fpm.conf`` располагаются в каталоге ``/etc/opt/remi/php73``. Префикс используется в качестве имени каталога.
  212. .. index:: qt, wayland, xcb, workaround
  213. .. _qt-wayland-issue:
  214. С некоторыми Qt приложениями в Wayland наблюдаются проблемы. Как исправить?
  215. ===============================================================================
  216. Некоторые приложения, использующие фреймворк Qt, могут некорректно работать в Wayland, поэтому активируем для них принудительное использование системы X11:
  217. .. code-block:: text
  218. QT_QPA_PLATFORM=xcb /usr/bin/foo-bar
  219. При необходимости постоянного старта в таком режиме создадим переопределение для ярлыка, прописав ``env QT_QPA_PLATFORM=xcb`` перед строкой запуска внутри директивы ``Exec=``.
  220. Пример:
  221. .. code-block:: text
  222. Exec=env QT_QPA_PLATFORM=xcb /usr/bin/foo-bar
  223. Здесь **/usr/bin/foo-bar** -- путь запуска проблемного приложения.
  224. .. index:: kde, dbus, print screen, spectacle, screenshot
  225. .. _spectacle-dbus:
  226. В Spectacle при вызове через Print Screen отсутствует оформление окна. Как исправить?
  227. ========================================================================================
  228. Это `известная проблема <https://bugzilla.redhat.com/show_bug.cgi?id=1754395>`__ пакета **Lmod**, приводящая к тому, что при вызове через D-Bus не полностью передаются :ref:`переменные окружения <env-set>`.
  229. Удалим Lmod:
  230. .. code-block:: text
  231. sudo dnf remove Lmod
  232. Произведём перезагрузку системы:
  233. .. code-block:: text
  234. sudo systemctl reboot
  235. .. index:: amd, radeon, amdgpu
  236. .. _amdgpu-black-screen:
  237. Как решить проблему с чёрным экраном после обновления ядра на видеокартах AMD?
  238. ==================================================================================
  239. Иногда чёрный экран на видеокартах AMD может появляться по причинам отсутствия нужной прошивки в initramfs образе.
  240. Для решения данной проблемы :ref:`пересоберём образ initrd <initrd-rebuild>` с принудительным добавлением прошивок, используемых драйвером amdgpu:
  241. .. code-block:: text
  242. sudo dracut --regenerate-all --force --install "/usr/lib/firmware/amdgpu/*"
  243. Произведём перезагрузку системы:
  244. .. code-block:: text
  245. sudo systemctl reboot
  246. .. index:: nvidia, vga, error, workaround, x11
  247. .. _nvidia-vga0-error:
  248. Как исправить ошибку, связанную с VGA-0, на видеокартах NVIDIA?
  249. ===================================================================
  250. Если в системном журнале появляется сообщение вида *WARNING: GPU:0: Unable to read EDID for display device VGA-0*, отключим соответствующий видеовыход.
  251. Создадим файл ``80-vgaoff.conf``:
  252. .. code-block:: text
  253. sudo touch /etc/X11/xorg.conf.d/80-vgaoff.conf
  254. sudo chown root:root /etc/X11/xorg.conf.d/80-vgaoff.conf
  255. sudo chmod 0644 /etc/X11/xorg.conf.d/80-vgaoff.conf
  256. Откроем его в :ref:`текстовом редакторе <editor-selection>`:
  257. .. code-block:: text
  258. sudoedit /etc/X11/xorg.conf.d/80-vgaoff.conf
  259. Добавим следующее содержание:
  260. .. code-block:: text
  261. Section "Monitor"
  262. Identifier "VGA-0"
  263. Option "Ignore" "true"
  264. Option "Enable" "false"
  265. EndSection
  266. Произведём перезагрузку системы:
  267. .. code-block:: text
  268. sudo systemctl reboot
  269. .. index:: intel, video, gpu, modesetting, x11
  270. .. _intel-modesetting:
  271. Как активировать драйвер modesetting на видеокартах Intel?
  272. ===============================================================
  273. Создадим новый файл конфигурации X11 -- ``10-modesetting.conf``:
  274. .. code-block:: text
  275. sudo touch /etc/X11/xorg.conf.d/10-modesetting.conf
  276. sudo chmod 0644 /etc/X11/xorg.conf.d/10-modesetting.conf
  277. Откроем его в :ref:`текстовом редакторе <editor-selection>`:
  278. .. code-block:: text
  279. sudoedit /etc/X11/xorg.conf.d/10-modesetting.conf
  280. Вставим следующее содержание:
  281. .. code-block:: text
  282. Section "Device"
  283. Identifier "Intel Graphics"
  284. Driver "modesetting"
  285. EndSection
  286. Сохраним изменения в файле.
  287. Удалим компоненты стандартного драйвера Intel:
  288. .. code-block:: text
  289. sudo dnf remove xorg-x11-drv-intel
  290. Перезагрузим систему и выберем сеанс X11 (**Gnome on X11** для пользователей Fedora Workstation):
  291. .. code-block:: text
  292. sudo systemctl reboot
  293. .. index:: usb, flash, drive, mount options, file system, journal, lazytime, tune2fs, ext4
  294. .. _usb-flash-tuning:
  295. Как увеличить срок жизни USB Flash?
  296. =======================================
  297. Использование современных журналируемых :ref:`файловых систем <fs-selection>` Linux на накопителях USB Flash, контроллер которых не способен автоматически балансировать износ ячеек, требует выполнения небольшой оптимизации.
  298. Изменим режим журнала в ``writeback``, а также активируем параметр монтирования ``lazytime``:
  299. .. code-block:: text
  300. sudo debugfs -w -R "set_super_value mount_opts data=writeback,lazytime" /dev/sdX1
  301. Для максимального продления срока службы допускается полностью отключить журнал ФС (только на ext4):
  302. .. code-block:: text
  303. sudo tune2fs -O ^has_journal /dev/sdX1
  304. **Внимание!** Отключение журнала может привести к потере всех данных на устройстве при его некорректном извлечении, либо исчезновении питания.
  305. Здесь **/dev/sdX1** -- раздел на устройстве флеш-памяти, который требуется настроить.
  306. Изменения вступят в силу при следующем монтировании.
  307. .. index:: grub, boot, bootloader, workaround, issue, btrfs, ext4
  308. .. _grub-sparse-not-allowed:
  309. При загрузке возникает ошибка sparse file not allowed. Как исправить?
  310. ==========================================================================
  311. Если раздел **/boot** установленной системы использует файловую систему :ref:`BTRFS <fs-btrfs>`, при загрузке системы появится ошибка *error: ../../grub-core/commands/loadenv.c:216:sparse file not allowed*.
  312. Это `известная проблема <https://bugzilla.redhat.com/show_bug.cgi?id=1955901>`__, связанная с записью конфигурации grubenv и неполноценной реализацией драйвера поддержки BTRFS в загрузчике (он перезаписывает непосредственно блоки файла без обновления соответствующих метаданных, после чего BTRFS считает раздел повреждённым из-за несовпадения контрольных сумм).
  313. В качестве решения предлагается несколько вариантов:
  314. 1. перейти на :ref:`поддерживаемую конфигурацию <fedora-partitions>` загрузки -- :ref:`переместить <moving-system>` **/boot** на раздел с ФС ext4;
  315. 2. :ref:`отключить скрытие меню <grub-show>` загрузки GRUB 2.
  316. .. index:: btrfs, file system, balancing
  317. .. _btrfs-balancing:
  318. Нужно ли выполнять балансировку раздела с BTRFS?
  319. ===================================================
  320. Файловая система :ref:`BTRFS <fs-btrfs>` использует двухуровневую структуру хранения данных: пространство поделено на *фрагменты*, которые содержат *блоки данных*. При определенных условиях эксплуатации в ФС может возникать большое количество мало заполненных фрагментов. Это приводит к ситуации, когда свободное место вроде есть, а записать очередной файл на диск не получается.
  321. Операция балансировки выполняет перенос блоков между фрагментами, а освободившиеся при этом удаляются. Официальная `документация <https://btrfs.wiki.kernel.org/index.php/SysadminGuide#Balancing>`__ рекомендует выполнять балансировку регулярно, однако разработчики Fedora `против <https://pagure.io/fedora-btrfs/project/issue/16>`__ такого подхода.
  322. Если на разделе мало свободного места (меньше 20%), часто осуществляется интенсивная запись данных (например от СУБД), и происходят ошибки записи, то скорее всего балансировка поможет.
  323. Оценим выгоду от :ref:`выполнения балансировки <btrfs-balancing-execute>` следующей командой:
  324. .. code-block:: text
  325. sudo btrfs fi usage [mountpoint]
  326. Если значение в поле **Device allocated** значительно превышает **Used**, то процедура окажется полезной, в противном случае выполнять её не имеет никакого смысла.
  327. Здесь **mountpoint** -- точка монтирования раздела.
  328. .. index:: btrfs, file system, balancing
  329. .. _btrfs-balancing-execute:
  330. Как произвести балансировку раздела с BTRFS?
  331. ===============================================
  332. Произведём :ref:`балансировку <btrfs-balancing>` для всех фрагментов, заполненных менее, чем наполовину:
  333. .. code-block:: text
  334. sudo btrfs fi balance start -dusage=50 -musage=50 [mountpoint]
  335. Здесь **-dusage** -- максимальный процент заполнения при балансировке данных, **-musage** -- максимальный процент заполнения при балансировке метаданных, а **mountpoint** -- точка монтирования раздела.
  336. Чем меньше значение *usage*, тем быстрее выполнится операция. Если на диске мало свободного места, то начинать следует с небольших значений, например с *5*, постепенно увеличивая это число. Также можно балансировать отдельно данные и метаданные.
  337. Подробнее о балансировке можно прочитать в официальной документации (на английском языке):
  338. * `Sysadmin guide <https://btrfs.wiki.kernel.org/index.php/SysadminGuide#Balancing>`__
  339. * `Problem FAQ <https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#I_get_.22No_space_left_on_device.22_errors.2C_but_df_says_I.27ve_got_lots_of_space>`__
  340. .. index:: vconsole, boot, tty, systemd, workaround, bug
  341. .. _failed-setup-virtual-console:
  342. Как исправить ошибку Failed to start Setup Virtual Console?
  343. ==============================================================
  344. Если при загрузке системы возникает ошибка *Failed to start Setup Virtual Console*, это `известная проблема <https://fedoraproject.org/wiki/Common_F34_bugs#kbd-legacy-media>`__, связанная с отсутствием установленных keymaps для множества отличных от en_US локалей.
  345. В качестве решения установим пакет **kbd-legacy**:
  346. .. code-block:: text
  347. sudo dnf install kbd-legacy
  348. Пересоберём :ref:`образ initrd <initrd-rebuild>` для всех установленных ядер:
  349. .. code-block:: text
  350. sudo dracut --regenerate-all --force
  351. Перезапустим сервис и проверим результат его работы:
  352. .. code-block:: text
  353. sudo systemctl start systemd-vconsole-setup.service
  354. systemctl status systemd-vconsole-setup.service
  355. .. index:: libreoffice, hardware, acceleration, x11, wayland, workaround, bug, f36
  356. .. _libreoffice-wayland:
  357. Как устранить лаги при редактировании документов в LibreOffice?
  358. ==================================================================
  359. При возникновении лагов во время работы с документами в приложениях LibreOffice вне зависимости от настроек аппаратного ускорения, переключим :ref:`активный сеанс <session-type>` сессии с :ref:`Wayland на X11 <x11-session>`.
  360. .. index:: nvidia, driver, dnf, upgrade, bug, issue, workaround
  361. .. _nvidia-upgrade-bug:
  362. После обновления системы не работают драйверы NVIDIA. Как исправить?
  363. =========================================================================
  364. Это `известная проблема <https://bugzilla.redhat.com/show_bug.cgi?id=2011120>`__, из-за которой плагин dnf system-upgrade перезагружает систему до того, как пакеты :ref:`проприетарных драйверов NVIDIA <nvidia-drivers>` будут корректно собраны и установлены.
  365. В качестве решения обновим базу установленных модулей ядра Linux:
  366. .. code-block:: text
  367. sudo depmod -ae
  368. Произведём перезагрузку устройства:
  369. .. code-block:: text
  370. systemctl reboot
  371. .. index:: printer, usb, hardware, upgrade, bug, issue, workaround
  372. .. _ipp-usb-disable:
  373. После обновления перестали работать USB принтеры и сканеры. Как исправить?
  374. =============================================================================
  375. Начиная с Fedora 36, применяется технология печати без необходимости установки драйверов (driverless printing) на основе эмуляции `протокола IPP <https://ru.wikipedia.org/wiki/Internet_Printing_Protocol>`__ для любых подключённых локально USB-принтеров.
  376. Если устройство не работает, либо не поддерживается, для возврата к классической конфигурации печати удалим пакет **ipp-usb**:
  377. .. code-block:: text
  378. sudo dnf remove ipp-usb
  379. Перезагрузим устройство:
  380. .. code-block:: text
  381. systemctl reboot
  382. .. index:: nvidia, kde, live, installation, bug, issue, uefi, workaround, sddm, wayland
  383. .. _kde-nvidia-bug:
  384. Fedora KDE не загружается при наличии видеокарты NVIDIA. Как исправить?
  385. ===========================================================================
  386. Это `известная проблема <https://bugzilla.redhat.com/show_bug.cgi?id=2077359>`__, из-за которой Fedora 36 и выше работает некорректно в :ref:`UEFI-режиме <uefi-boot>` при наличии видеокарты NVIDIA из-за использования Wayland-сеанса в менеджере входа в систему SDDM.
  387. Устанавливаем систему
  388. ^^^^^^^^^^^^^^^^^^^^^^^^
  389. Если Fedora KDE Live не загружается, либо отображает чёрный экран, выполним следующие действия:
  390. 1. При загрузке с :ref:`Live-образа <usb-flash>` в меню **Troubleshooting** выберем пункт **Safe graphics mode** и установим систему в штатном режиме.
  391. 2. Установим :ref:`проприетарные драйверы NVIDIA <nvidia-drivers>`.
  392. 3. :ref:`Переключим KDE на использование X11 <x11-plasma>` вместо Wayland.
  393. 4. :ref:`Удалим параметр ядра <kernelpm-remove>` ``nomodeset``.
  394. 5. Произведём перезагрузку системы.
  395. Исправляем установленную систему
  396. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  397. Если Fedora 36 с KDE отображает чёрный экран после загрузки, выполним следующие действия:
  398. 1. :ref:`Однократно передадим параметр ядра <kernelpm-once>` ``nomodeset``.
  399. 2. :ref:`Переключим KDE на использование X11 <x11-plasma>` вместо Wayland.
  400. 3. Произведём перезагрузку системы.
  401. .. index:: nvidia, intel, amd, bug, issue, firmware, dnf
  402. .. _linux-firmware-separation:
  403. После обновления linux-firmware перестали работать видеокарты Intel и AMD. Как исправить?
  404. ============================================================================================
  405. В обновлении linux-firmware до версии 137, прошивки для видеокарт AMD, Intel и NVIDIA (относится только к свободным драйверам nouveau) `были перемещены <https://src.fedoraproject.org/rpms/linux-firmware/c/6e605212ebbc6b5477dd397a4cb96a7bff5d4da0?branch=rawhide>`__ в отдельные пакеты: **amd-gpu-firmware**, **intel-gpu-firmware** и **nvidia-gpu-firmware** соответственно.
  406. Они не являются обязательными для установки, поэтому если в настройках dnf отключена поддержка :ref:`слабых зависимостей <dnf-weakdeps>`, они не будут установлены, что и приведёт к неработоспособности видеокарт данных производителей.
  407. Установим их вручную:
  408. .. code-block:: text
  409. sudo dnf install amd-gpu-firmware intel-gpu-firmware nvidia-gpu-firmware
  410. Произведём перезагрузку системы для вступления изменений в силу:
  411. .. code-block:: text
  412. systemctl reboot
  413. .. index:: flash, usb, live, installation, grub, shim, boot, workaround, curl, rpm2archive, tar
  414. .. _usb-invalid-image:
  415. При загрузке с Live USB возникает ошибка Invalid image. Как исправить?
  416. ==========================================================================
  417. Начиная с версии 15.6-2 предзагрузчик shim, используемый в :ref:`Live-образах Fedora <usb-flash>`, на множестве моделей оборудования предыдущих поколений вместо запуска системы выводит следующую ошибку:
  418. .. code-block:: text
  419. Invalid image
  420. Failed to read header: Unsupported
  421. Failed to load image: Unsupported
  422. start_image() returned Unsupported
  423. Это `известная проблема <https://bugzilla.redhat.com/show_bug.cgi?id=2113005>`__, которая на данный момент не решена и затрагивает Fedora 37 и 38.
  424. В качестве обходного пути скачаем не подверженный регрессии shim 15.4-5 и при помощи утилит **rpm2archive** и **tar** :ref:`распакуем <rpm-extract>` во временный каталог ``/tmp/shim``:
  425. .. code-block:: text
  426. mkdir /tmp/shim
  427. curl -s https://dl.fedoraproject.org/pub/fedora/linux/releases/36/Everything/x86_64/os/Packages/s/shim-ia32-15.4-5.x86_64.rpm | rpm2archive - | tar -xz -C /tmp/shim
  428. curl -s https://dl.fedoraproject.org/pub/fedora/linux/releases/36/Everything/x86_64/os/Packages/s/shim-x64-15.4-5.x86_64.rpm | rpm2archive - | tar -xz -C /tmp/shim
  429. Смонтируем созданную ранее USB Flash с Live-образом Fedora и заменим файлы shim:
  430. .. code-block:: text
  431. sudo mkdir /run/media/flash
  432. sudo mount -t auto /dev/sdX2 /run/media/flash
  433. sudo cp -f --preserve='mode,timestamps' /tmp/shim/boot/efi/EFI/BOOT/BOOTIA32.EFI /run/media/flash/EFI/BOOT/BOOTIA32.EFI
  434. sudo cp -f --preserve='mode,timestamps' /tmp/shim/boot/efi/EFI/BOOT/BOOTX64.EFI /run/media/flash/EFI/BOOT/BOOTX64.EFI
  435. sudo umount /run/media/flash
  436. sudo rmdir /run/media/flash
  437. Здесь **/dev/sdX** -- устройство USB-накопителя.
  438. Произведём очистку ненужных более файлов:
  439. .. code-block:: text
  440. rm -rf /tmp/shim
  441. Внимание! При загрузке такого модифицированного образа следует выбирать пункт **Start Fedora**, без проверки целостности, т.к. из-за замены файлов она не будет пройдена.
  442. .. index:: f38, performance, regression, issue
  443. .. _f38-performance:
  444. Производительность Fedora 38 ниже, чем у предыдущей версии. Как исправить?
  445. =============================================================================
  446. В Fedora 38 были включены два изменения, напрямую касающиеся производительности системы:
  447. 1. `переход на _FORTIFY_SOURCE=3 <https://fedoraproject.org/wiki/Changes/Add_FORTIFY_SOURCE%3D3_to_distribution_build_flags>`__ -- положительно `влияет на безопасность <https://developers.redhat.com/articles/2022/09/17/gccs-new-fortification-level>`__ системы за счёт улучшенной фортификации кода посредством добавления проверок границ массивов и векторов во время исполнения приложений;
  448. 2. `активация -fno-omit-frame-pointer <https://fedoraproject.org/wiki/Changes/fno-omit-frame-pointer>`__ -- очень спорное изменение, не дающее никаких значимых преимуществ обычным пользователям, которое просили внедрить крупные корпорации и некоторые разработчики для облегчения отладки и профилирования их кода. Изменение сначала было `отклонено <https://pagure.io/fesco/issue/2817>`__, но затем, после повторного голосования, `принято <https://pagure.io/fesco/issue/2923>`__.
  449. Оба в совокупности приводят к `падению быстродействия от 3 до 10 процентов <https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/33AJZA7FSDNCVSG33PPU3CH3KV33ECOD/>`__ в зависимости от типа вычислительной нагрузки. К сожалению, исправить это невозможно, т.к. пришлось бы откатить данные изменения и пересобрать все пакеты в системе.