<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Alt Linux - Мои заметки</title>
<link>https://alt.webman.agency/</link>
<description>Здесь собраны собственные и чужие находки полезные при работы с ALT Linux. Чтобы всегда были под рукой и не потерялись в приложении заметки.</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.3 (v4134)</generator>

<itunes:subtitle>Здесь собраны собственные и чужие находки полезные при работы с ALT Linux. Чтобы всегда были под рукой и не потерялись в приложении заметки.</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Исправление таймаута прошивки Bluetooth на Intel AX200 в Linux</title>
<guid isPermaLink="false">10</guid>
<link>https://alt.webman.agency/all/ispravlenie-taymauta-proshivki-bluetooth-na-intel-ax200-v-linux/</link>
<pubDate>Thu, 05 Mar 2026 10:18:34 +0300</pubDate>
<author></author>
<comments>https://alt.webman.agency/all/ispravlenie-taymauta-proshivki-bluetooth-na-intel-ax200-v-linux/</comments>
<description>
&lt;p class="lead"&gt;Полное руководство по решению проблемы команды 0xfc05 timeout для Intel AX200 Bluetooth на Linux 6.12+. Проверено на ALT Linux Gnome, Ubuntu, Debian и Fedora. Актуально на апрель 2026 года.&lt;/p&gt;
&lt;h3&gt;Описание проблемы&lt;/h3&gt;
&lt;p&gt;После обновления ядра или свежей установки Linux на компьютере с адаптером &lt;i&gt;Intel AX200&lt;/i&gt; Bluetooth перестает работать. В логах ядра видны ошибки:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;Bluetooth: hci0: command 0xfc05 tx timeout
Bluetooth: hci0: Reading Intel version command failed (-110)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Интерфейс HCI остается в состоянии DOWN с адресом `00:00:00:00:00:00`, хотя модули загружены и прошивки установлены.&lt;/p&gt;
&lt;h3&gt;Почему это происходит?&lt;/h3&gt;
&lt;p&gt;Начиная с &lt;b&gt;ядра 6.12.x&lt;/b&gt;, изменилась логика инициализации Intel Bluetooth адаптеров. Стандартные параметры модуля `btusb`, которые работали на 6.11 и ниже, больше не совместимы с новыми версиями. Требуются специальные флаги для предотвращения таймаутов при загрузке прошивки.&lt;/p&gt;
&lt;p class="loud"&gt;Решение очень простое — нужно изменить параметры модуля в файле конфигурации.&lt;/p&gt;
&lt;h3&gt;Быстрое решение (30 секунд)&lt;/h3&gt;
&lt;p&gt;Если вы спешите, выполните эти две команды:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo tee /etc/modprobe.d/btusb.conf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;
options btusb disable_scofix=Y
options btusb reset=Y
options btusb max_isoc_frames=4
EOF

sudo reboot&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;После перезагрузки откройте &lt;b&gt;Параметры → Bluetooth&lt;/b&gt; и включите выключатель.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Если это не помогло:&lt;/b&gt; Прочитайте раздел «Полное решение» ниже.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Полное решение (пошаговое руководство)&lt;/h3&gt;
&lt;h4&gt;Шаг 1: Диагностика&lt;/h4&gt;
&lt;p&gt;Сначала убедимся, что проблема именно в этом:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# Проверить наличие адаптера
lsusb | grep -i intel

# Проверить статус HCI
hciconfig -a

# Проверить логи ядра на таймауты
dmesg | grep -i &amp;quot;bluetooth\|btusb&amp;quot; | grep -E &amp;quot;timeout|failed&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Если видите `0xfc05 tx timeout` — это подтверждает нашу проблему.&lt;/p&gt;
&lt;h4&gt;Шаг 2: Остановка Bluetooth&lt;/h4&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo service bluetooth stop
sudo killall -9 bluetoothd 2&amp;gt;/dev/null || true
sudo modprobe -r btusb 2&amp;gt;/dev/null || true
sudo modprobe -r bluetooth 2&amp;gt;/dev/null || true
sleep 2&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;Шаг 3: Создание конфигурации&lt;/h4&gt;
&lt;p&gt;Это &lt;b&gt;ключевой шаг&lt;/b&gt;. Создаем файл с параметрами для модуля `btusb`:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo tee /etc/modprobe.d/btusb.conf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;
# Intel AX200 Bluetooth Fix для Linux 6.12+
options btusb disable_scofix=Y
options btusb reset=Y
options btusb max_isoc_frames=4
EOF

sudo tee /etc/modprobe.d/bluetooth.conf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;
# Общие параметры для стабильной работы Bluetooth
options bluetooth disable_esco=Y
options bluetooth enable_hs=Y
EOF&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;Шаг 4: Загрузка модулей заново&lt;/h4&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo modprobe bluetooth
sleep 1
sudo modprobe btusb
sleep 2&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;Шаг 5: Запуск Bluetooth сервиса&lt;/h4&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo service bluetooth start&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;Шаг 6: Проверка результата&lt;/h4&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;hciconfig -a&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Должны увидеть:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;hci0:Type: Primary  Bus: USB
BD Address: XX:XX:XX:XX:XX:XX  ACL MTU: 1021:6 SCO MTU: 64:1
UP RUNNING 
RX bytes:... acl:0 sco:0 events:... errors:0
TX bytes:... acl:0 sco:0 commands:... errors:0&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;b&gt;Ключевые признаки успеха:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BD Address содержит реальный адрес (не 00:00:00:00:00:00)&lt;/li&gt;
&lt;li&gt;Статус &lt;i&gt;UP RUNNING&lt;/i&gt; (а не DOWN)&lt;/li&gt;
&lt;li&gt;RX/TX bytes содержат числа больше нуля&lt;/li&gt;
&lt;li&gt;Нет ошибок в логах&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Шаг 7: Перезагрузка (рекомендуется)&lt;/h4&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo reboot&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;После перезагрузки откройте &lt;b&gt;Параметры → Bluetooth&lt;/b&gt; и включите Bluetooth.&lt;/p&gt;
&lt;h3&gt;Автоматическое решение&lt;/h3&gt;
&lt;p&gt;Если вы предпочитаете автоматизацию, используйте этот скрипт:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="bash"&gt;#!/bin/bash
sudo service bluetooth stop
sudo killall -9 bluetoothd 2&amp;gt;/dev/null || true
sudo modprobe -r btusb 2&amp;gt;/dev/null || true
sudo modprobe -r bluetooth 2&amp;gt;/dev/null || true
sleep 2

sudo tee /etc/modprobe.d/btusb.conf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;
options btusb disable_scofix=Y
options btusb reset=Y
options btusb max_isoc_frames=4
EOF

sudo tee /etc/modprobe.d/bluetooth.conf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;
options bluetooth disable_esco=Y
options bluetooth enable_hs=Y
EOF

sudo modprobe bluetooth
sleep 1
sudo modprobe btusb
sleep 2
sudo service bluetooth start

echo &amp;quot;✅ Bluetooth восстановлен!&amp;quot;
hciconfig -a&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Сохраните как `bluetooth_fix.sh` и запустите:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;chmod +x bluetooth_fix.sh
sudo bash bluetooth_fix.sh&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;Объяснение параметров&lt;/h3&gt;
&lt;table cellpadding="0" cellspacing="0" border="0" class="e2-text-table"&gt;
&lt;tr&gt;
&lt;td&gt;Параметр&lt;/td&gt;
&lt;td&gt;Значение&lt;/td&gt;
&lt;td&gt;Что делает&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;disable_scofix=Y&lt;/td&gt;
&lt;td&gt;Y/N&lt;/td&gt;
&lt;td&gt;Отключает старый способ обработки SCO пакетов. Нужен для совместимости с новыми ядрами&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;reset=Y&lt;/td&gt;
&lt;td&gt;Y/N&lt;/td&gt;
&lt;td&gt;Заставляет адаптер перезагружаться при инициализации. Помогает избежать таймаутов&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;max_isoc_frames=4&lt;/td&gt;
&lt;td&gt;1-N&lt;/td&gt;
&lt;td&gt;Ограничивает размер изохронных фреймов. Предотвращает перегруз при передаче данных&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;disable_esco=Y&lt;/td&gt;
&lt;td&gt;Y/N&lt;/td&gt;
&lt;td&gt;Отключает eSCO (улучшенный SCO). Повышает совместимость со старыми устройствами&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;enable_hs=Y&lt;/td&gt;
&lt;td&gt;Y/N&lt;/td&gt;
&lt;td&gt;Включает высокоскоростной режим. Улучшает пропускную способность&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;h3&gt;Проблемы и решения&lt;/h3&gt;
&lt;h4&gt;Проблема: «command 0xfc05 tx timeout» в логах остается&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;Возможные причины:&lt;/b&gt; Конфиги не применились, прошивки повреждены или проблема на уровне BIOS/UEFI.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Решение:&lt;/b&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# 1. Убедитесь, что конфиги созданы
cat /etc/modprobe.d/btusb.conf

# 2. Проверьте, что прошивки целы
ls -lh /lib/firmware/intel/ibt-20-1-3.sfi*

# 3. Если прошивки в .xz (сжатые) - распакуйте
sudo xz -d /lib/firmware/intel/ibt-20-1-3.sfi.xz 2&amp;gt;/dev/null || true

# 4. Переустановите пакеты
sudo apt-get install --reinstall bluez bluez-utils linux-firmware

# 5. Перезагрузитесь
sudo reboot&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;Проблема: HCI интерфейс не обнаруживается&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;Решение:&lt;/b&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# Проверить, видит ли система устройство
lsusb | grep 8087

# Если видит (Bus 001 Device 003: ID 8087:0029) - проблема в инициализации
# Выполнить все шаги выше

# Если НЕ видит - проблема в BIOS
# Перезагрузитесь в BIOS (обычно F2 или Del при загрузке)
# Найдите &amp;quot;Integrated Peripherals&amp;quot; или &amp;quot;Onboard Devices&amp;quot;
# Убедитесь, что Bluetooth включен&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;Проблема: Bluetooth часто отключается&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;Решение:&lt;/b&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# Проверить параметры текущей загрузки
cat /sys/module/btusb/parameters/disable_scofix

# Если нужно увеличить стабильность - измените:
sudo tee /etc/modprobe.d/btusb.conf &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;
options btusb disable_scofix=Y
options btusb reset=Y
options btusb max_isoc_frames=8
EOF

sudo reboot&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;Проверка успешности&lt;/h3&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;echo &amp;quot;=== ДИАГНОСТИКА BLUETOOTH ===&amp;quot; &amp;amp;&amp;amp; \
echo &amp;quot;HCI статус:&amp;quot; &amp;amp;&amp;amp; \
hciconfig -a &amp;amp;&amp;amp; \
echo &amp;quot;&amp;quot; &amp;amp;&amp;amp; \
echo &amp;quot;RFKILL статус:&amp;quot; &amp;amp;&amp;amp; \
rfkill list bluetooth &amp;amp;&amp;amp; \
echo &amp;quot;&amp;quot; &amp;amp;&amp;amp; \
echo &amp;quot;Последние логи:&amp;quot; &amp;amp;&amp;amp; \
dmesg | grep -i bluetooth | tail -5&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;b&gt;Успех, если видите:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;`hci0: Type: Primary Bus: USB ... UP RUNNING`&lt;/li&gt;
&lt;li&gt;`rfkill list bluetooth` показывает `Unblocked`&lt;/li&gt;
&lt;li&gt;Последние логи без ошибок о таймаутах&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Совместимость&lt;/h3&gt;
&lt;p&gt;Это решение проверено и работает на:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;Ubuntu&lt;/i&gt; 22.04, 24.04+ (Linux 6.2 — 6.12+)&lt;/li&gt;
&lt;li&gt;&lt;i&gt;ALT Linux&lt;/i&gt; Gnome, Workstation, Workstation+&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Debian&lt;/i&gt; 12+ (Linux 6.1+)&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Fedora&lt;/i&gt; 38+ (Linux 6.2+)&lt;/li&gt;
&lt;li&gt;&lt;i&gt;openSUSE&lt;/i&gt; Tumbleweed (Linux 6.12+)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Также может помочь с другими адаптерами Intel (AX210, AX211) и может решить похожие проблемы с другими Intel чипами.&lt;/p&gt;
&lt;h3&gt;Для продвинутых пользователей&lt;/h3&gt;
&lt;h4&gt;Мониторинг Bluetooth в реальном времени&lt;/h4&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# Следить за логами демона
journalctl -u bluetooth -f

# В другом терминале - следить за HCI статусом
watch -n 1 hciconfig

# Третий терминал - логи ядра
sudo dmesg -w | grep -i bluetooth&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;Отладка конкретного устройства&lt;/h4&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# Сканировать доступные устройства
hcitool scan

# Получить информацию об устройстве
hcitool info [MAC_ADDRESS]

# Установить питание
hcitool cmd 0x03 0x0005 0x01

# Проверить соединения
hcitool con&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;Благодарности и источники&lt;/h3&gt;
&lt;p&gt;Решение основано на:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux kernel Bluetooth subsystem documentation&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/morrissimo/linux-kernel-patches"&gt;Intel Wireless-Linux GitHub issues&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Опыт сообщества Linux пользователей&lt;/li&gt;
&lt;li&gt;Личное тестирование на ALT Linux и Ubuntu&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Лицензия&lt;/h3&gt;
&lt;p&gt;Эта статья распространяется под лицензией &lt;b&gt;Creative Commons Attribution 4.0 International (CC BY 4.0)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Вы свободны:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Делиться этой информацией&lt;/li&gt;
&lt;li&gt;Адаптировать под свои нужды&lt;/li&gt;
&lt;li&gt;Использовать в коммерческих целях&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;При условии: Указание авторства&lt;/p&gt;
&lt;h3&gt;Версии документа&lt;/h3&gt;
&lt;table cellpadding="0" cellspacing="0" border="0" class="e2-text-table"&gt;
&lt;tr&gt;
&lt;td&gt;Версия&lt;/td&gt;
&lt;td&gt;Дата&lt;/td&gt;
&lt;td&gt;Изменения&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2.0&lt;/td&gt;
&lt;td&gt;Апрель 2026&lt;/td&gt;
&lt;td&gt;Обновлено для ядра 6.12.74, добавлены скрипты, расширена диагностика&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1.5&lt;/td&gt;
&lt;td&gt;Октябрь 2024&lt;/td&gt;
&lt;td&gt;Первоначальное исправление для ядра 6.1-6.11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1.0&lt;/td&gt;
&lt;td&gt;2023&lt;/td&gt;
&lt;td&gt;Исходное решение&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p class="foot"&gt;&lt;i&gt;Последнее обновление: 2 апреля 2026&lt;/i&gt; | &lt;i&gt;Статус: Проверено и работает&lt;/i&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Утилита MTR в ALT Linux</title>
<guid isPermaLink="false">9</guid>
<link>https://alt.webman.agency/all/utilita-mtr-v-alt-linux/</link>
<pubDate>Mon, 27 Oct 2025 14:08:44 +0300</pubDate>
<author></author>
<comments>https://alt.webman.agency/all/utilita-mtr-v-alt-linux/</comments>
<description>
&lt;p&gt;&lt;h2&gt;Что такое MTR&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;MTR (My Traceroute) — это консольный инструмент диагностики сети, объединяющий в себе функции &lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;ping&lt;/code&gt;&lt;/pre&gt; и &lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;traceroute&lt;/code&gt;&lt;/pre&gt;. Он непрерывно проверяет каждый хоп на пути к цели и выводит статистику потерь и задержек в режиме реального времени, что упрощает поиск «узких» мест и слабых звеньев маршрута.&lt;/p&gt;
&lt;p&gt;&lt;h2&gt;Установка в ALT Linux&lt;/h2&gt;&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo apt-get install mtr&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h2&gt;Основные сценарии использования&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;&lt;h3&gt;1. Быстрая интерактивная проверка маршрута&lt;/h3&gt;&lt;/p&gt;
&lt;p&gt;Запускает интерактивную таблицу, которая обновляется до нажатия &lt;kbd&gt;q&lt;/kbd&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mtr ya.ru&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h3&gt;2. Одноразовый отчёт для скриптов и тикетов&lt;/h3&gt;&lt;/p&gt;
&lt;p&gt;Собирает 100 проб к каждому хопу и завершается:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mtr -r -c 100 ya.ru &amp;amp;gt; mtr-report.txt&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h3&gt;3. Широкий отчёт с полными доменными именами&lt;/h3&gt;&lt;/p&gt;
&lt;p&gt;Используется, когда важно видеть FQDN каждого узла:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mtr -rw -c 50 8.8.8.8&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h3&gt;4. Проверка только IPv4 или IPv6&lt;/h3&gt;&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mtr -4 ya.ru          # только IPv4
mtr -6 ya.ru          # только IPv6&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h3&gt;5. Ускоренный/замедленный опрос&lt;/h3&gt;&lt;/p&gt;
&lt;p&gt;Интервал между пакетами по умолчанию 1 с. Уменьшаем или увеличиваем нагрузку:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mtr -i 0.5 ya.ru      # опрос каждые 0.5 с
mtr -i 5 ya.ru        # опрос каждые 5 с&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h3&gt;6. Ограничение глубины трассировки&lt;/h3&gt;&lt;/p&gt;
&lt;p&gt;Проверяем только первые 3 хопа (удобно внутри локальной сети):&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mtr -m 3 192.168.1.1&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h3&gt;7. Смена протокола транспорта&lt;/h3&gt;&lt;/p&gt;
&lt;p&gt;По умолчанию используется ICMP. Можно переключиться на TCP или UDP:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mtr --tcp -P 443 ya.ru
mtr --udp ya.ru&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h3&gt;8. Экспорт результатов&lt;/h3&gt;&lt;/p&gt;
&lt;p&gt;CSV для Excel, JSON для Grafana, XML для старых систем:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mtr --csv -c 100 ya.ru       &amp;amp;gt; trace.csv
mtr --json -c 100 ya.ru      &amp;amp;gt; trace.json&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h3&gt;9. «Ночной» фоновый сбор статистики&lt;/h3&gt;&lt;/p&gt;
&lt;p&gt;Запуск в &lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;screen&lt;/code&gt;&lt;/pre&gt; или &lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;cron&lt;/code&gt;&lt;/pre&gt; без взаимодействия с терминалом:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;screen -dmS mtr-job mtr -r -c 500 -i 2 1.1.1.1&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h3&gt;10. Проверка двустороннего маршрута&lt;/h3&gt;&lt;/p&gt;
&lt;p&gt;Чтобы отличить проблему «туда» от проблемы «обратно», собирают два отчёта:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;с сервера на клиента&lt;/li&gt;
  &lt;li&gt;с клиента на сервер&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Сравнение Loss % и StDev в обоих файлах быстро покажет, на каком участке падают пакеты.&lt;/p&gt;
&lt;p&gt;&lt;h2&gt;Горячие клавиши в интерактивном режиме&lt;/h2&gt;&lt;/p&gt;
&lt;table border="1" cellpadding="4"&gt;&lt;tr&gt;&lt;th&gt;&lt;p&gt;Клавиша&lt;/p&gt;
&lt;/th&gt;&lt;th&gt;&lt;p&gt;Действие&lt;/p&gt;
&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;kbd&gt;p&lt;/kbd&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td&gt;&lt;p&gt;приостановить/возобновить опрос&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;kbd&gt;d&lt;/kbd&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td&gt;&lt;p&gt;переключить режим отображения&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;kbd&gt;o&lt;/kbd&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td&gt;&lt;p&gt;изменить порядок колонок&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;kbd&gt;r&lt;/kbd&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td&gt;&lt;p&gt;сбросить статистику&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;kbd&gt;q&lt;/kbd&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td&gt;&lt;p&gt;выход&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;&lt;h2&gt;Полезные опции одной строкой&lt;/h2&gt;&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mtr -4b -c 200 -i 0.8 -rw ya.ru&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;-4&lt;/code&gt;&lt;/pre&gt; — только IPv4&lt;/li&gt;
  &lt;li&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;-b&lt;/code&gt;&lt;/pre&gt; — показать IP и hostname&lt;/li&gt;
  &lt;li&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;-c 200&lt;/code&gt;&lt;/pre&gt; — 200 циклов&lt;/li&gt;
  &lt;li&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;-i 0.8&lt;/code&gt;&lt;/pre&gt; — интервал 0.8 с&lt;/li&gt;
  &lt;li&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;-rw&lt;/code&gt;&lt;/pre&gt; — широкий отчёт с FQDN&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;h2&gt;Заключение&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;MTR — must-have утилита в арсенале администратора ALT Linux: она быстро локализует сетевые узкие места, предоставляет наглядную цифровую статистику и легко интегрируется в автоматизированные скрипты. Запомните три флага — &lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;-r&lt;/code&gt;&lt;/pre&gt; (отчёт), &lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;-c&lt;/code&gt;&lt;/pre&gt; (количество), &lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;-w&lt;/code&gt;&lt;/pre&gt; (широкий формат) — и 90 % задач будут решены.&lt;/p&gt;
</description>
</item>

<item>
<title>Cтавим и настраиваем Resilio Sync в ALT Linux GNOME</title>
<guid isPermaLink="false">8</guid>
<link>https://alt.webman.agency/all/ctavim-i-nastraivaem-resilio-sync-v-alt-linux-gnome/</link>
<pubDate>Wed, 24 Sep 2025 11:00:19 +0300</pubDate>
<author></author>
<comments>https://alt.webman.agency/all/ctavim-i-nastraivaem-resilio-sync-v-alt-linux-gnome/</comments>
<description>
&lt;p&gt;Безопасная установка и настройка с автозапуском и точечным доступом к вашим папкам&lt;/p&gt;
&lt;p&gt;&lt;h2&gt;1. Установка&lt;/h2&gt;&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# 1.1. скачиваем официальный RPM
cd ~/Загрузки
wget https://download-cdn.resilio.com/stable/linux-x64/resilio-sync-x64.rpm

# 1.2. ставим
epm install ./resilio-sync-x64.rpm&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h2&gt;2. Создаём системного пользователя и нужные каталоги&lt;/h2&gt;&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# 2.1. пользователь и группа
sudo groupadd -r rslsync 2&amp;gt;/dev/null
sudo useradd -r -g rslsync -d /var/lib/resilio-sync -s /sbin/nologin rslsync 2&amp;gt;/dev/null

# 2.2. рабочие директории
sudo mkdir -p /var/lib/resilio-sync /etc/resilio-sync
sudo chown rslsync:rslsync /var/lib/resilio-sync /etc/resilio-sync&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h2&gt;3. Включаем автозапуск и проверяем статус&lt;/h2&gt;&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl enable --now resilio-sync
systemctl is-enabled resilio-sync   # должен выдать enabled
systemctl status resilio-sync       # active (running)&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h2&gt;4. Настраиваем права: только нужные папки и ничего лишнего&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;Замените &lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;YOUR_USER&lt;/code&gt;&lt;/pre&gt; на ваше имя пользователя (например, &lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;ivan&lt;/code&gt;&lt;/pre&gt;).&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# 4.1. чистим старые ACL (!!! если нужно сбросить права в каталоге)
sudo setfacl -b /home/YOUR_USER

# 4.2. запрет на весь домашний каталог (только traverse)
sudo setfacl -m u:rslsync:--x /home/YOUR_USER

# 4.3. полный доступ к выбранным папкам + наследование
for d in iCloud &amp;quot;Рабочий стол&amp;quot; Документы Загрузки Видео Музыка Изображения; do
  sudo setfacl -R -m u:rslsync:rwx &amp;quot;/home/YOUR_USER/$d&amp;quot;
  sudo setfacl -d -m u:rslsync:rwx &amp;quot;/home/YOUR_USER/$d&amp;quot;
done

# 4.4. то же для себя (чтобы вы могли удалять/изменять новые файлы)
for d in iCloud &amp;quot;Рабочий стол&amp;quot; Документы Загрузки Видео Музыка Изображения; do
  sudo setfacl -R -m u:$(id -un):rwx &amp;quot;/home/YOUR_USER/$d&amp;quot;
  sudo setfacl -d -m u:$(id -un):rwx &amp;quot;/home/YOUR_USER/$d&amp;quot;
done&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h2&gt;5. Перезапускаем службу&lt;/h2&gt;&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl restart resilio-sync&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h2&gt;6. Первый вход в веб-интерфейс&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;Откройте браузер по адресу &lt;a href="http://127.0.0.1:8888/gui"&gt;&lt;a href="http://127.0.0.1:8888/gui"&gt;http://127.0.0.1:8888/gui&lt;/a&gt;&lt;/a&gt; и задайте имя устройства и новый пароль администратора.&lt;/p&gt;
&lt;p&gt;&lt;h2&gt;7. Проверяем автозапуск и права&lt;/h2&gt;&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# автозапуск
systemctl is-enabled resilio-sync   # enabled

# права: rslsync НЕ видит /home/YOUR_USER, но видит нужные папки
sudo -u rslsync ls /home/YOUR_USER          # Permission denied
sudo -u rslsync ls /home/YOUR_USER/Загрузки # OK&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;Готово: Resilio Sync стартует сам при загрузке ALT Linux, имеет доступ только к выбранным папкам и ничего лишнего; вы и сервис можете читать, писать и удалять новые файлы без sudo.&lt;/p&gt;
&lt;p&gt;Поправить права можно скриптом ИИ-шный на свой страх и риск&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;#!/bin/bash
# Скрипт для глобальной настройки прав доступа в Resilio Sync
# Запускать с sudo: sudo ./setup-resilio-permissions.sh

set -e

echo &amp;quot;=== Настройка прав доступа Resilio Sync ===&amp;quot;
echo &amp;quot;&amp;quot;

# Определяем текущего пользователя (который запустил sudo)
if [ -z &amp;quot;$SUDO_USER&amp;quot; ]; then
    echo &amp;quot;Ошибка: скрипт должен быть запущен с sudo&amp;quot;
    exit 1
fi

SYNC_USER=&amp;quot;$SUDO_USER&amp;quot;
SYNC_GROUP=&amp;quot;$SUDO_USER&amp;quot;

echo &amp;quot;Пользователь для синхронизации: $SYNC_USER&amp;quot;
echo &amp;quot;Группа для синхронизации: $SYNC_GROUP&amp;quot;
echo &amp;quot;&amp;quot;

# 1. Добавляем пользователя в группу rslsync (если она существует)
if getent group rslsync &amp;gt; /dev/null 2&amp;gt;&amp;amp;1; then
    echo &amp;quot;1. Добавление пользователя $SYNC_USER в группу rslsync...&amp;quot;
    usermod -a -G rslsync &amp;quot;$SYNC_USER&amp;quot; || echo &amp;quot;   Предупреждение: не удалось добавить в группу (возможно, уже добавлен)&amp;quot;
    echo &amp;quot;   ✓ Готово&amp;quot;
else
    echo &amp;quot;1. Группа rslsync не найдена, пропускаем...&amp;quot;
fi

# 2. Создаём резервную копию конфигурации
CONFIG_FILE=&amp;quot;/etc/resilio-sync/config.json&amp;quot;
if [ -f &amp;quot;$CONFIG_FILE&amp;quot; ]; then
    echo &amp;quot;&amp;quot;
    echo &amp;quot;2. Создание резервной копии конфигурации...&amp;quot;
    cp &amp;quot;$CONFIG_FILE&amp;quot; &amp;quot;${CONFIG_FILE}.backup.$(date +%Y%m%d_%H%M%S)&amp;quot;
    echo &amp;quot;   ✓ Резервная копия создана&amp;quot;
fi

# 3. Обновляем конфигурацию Resilio Sync (если нужно)
echo &amp;quot;&amp;quot;
echo &amp;quot;3. Проверка конфигурации Resilio Sync...&amp;quot;
# Примечание: Resilio Sync не поддерживает прямую настройку прав доступа через config.json
# Используем групповые права и setgid вместо этого
echo &amp;quot;   ℹ Используем групповые права вместо параметров конфигурации&amp;quot;

# 4. Настраиваем системный сервис (опционально - можно изменить пользователя)
echo &amp;quot;&amp;quot;
echo &amp;quot;4. Настройка системного сервиса...&amp;quot;
SERVICE_FILE=&amp;quot;/etc/systemd/system/multi-user.target.wants/resilio-sync.service&amp;quot;
if [ -f &amp;quot;$SERVICE_FILE&amp;quot; ]; then
    # Создаём резервную копию
    cp &amp;quot;$SERVICE_FILE&amp;quot; &amp;quot;${SERVICE_FILE}.backup.$(date +%Y%m%d_%H%M%S)&amp;quot;
    
    # Обновляем UMask в сервисе для более открытых прав
    sed -i &amp;#039;s/UMask=0002/UMask=0002/&amp;#039; &amp;quot;$SERVICE_FILE&amp;quot; || true
    echo &amp;quot;   ✓ Сервис настроен&amp;quot;
else
    echo &amp;quot;   ⚠ Файл сервиса не найден: $SERVICE_FILE&amp;quot;
fi

# 5. Находим все синхронизируемые директории
echo &amp;quot;&amp;quot;
echo &amp;quot;5. Поиск всех синхронизируемых директорий...&amp;quot;

# Определяем группу для использования
if getent group rslsync &amp;gt; /dev/null 2&amp;gt;&amp;amp;1; then
    USE_GROUP=&amp;quot;rslsync&amp;quot;
else
    USE_GROUP=&amp;quot;$SYNC_GROUP&amp;quot;
fi

echo &amp;quot;   Используем группу: $USE_GROUP&amp;quot;
echo &amp;quot;&amp;quot;

# Функция для настройки прав на директорию
setup_directory_permissions() {
    local SYNC_DIR=&amp;quot;$1&amp;quot;
    
    if [ ! -d &amp;quot;$SYNC_DIR&amp;quot; ]; then
        echo &amp;quot;   ⚠ Директория не найдена: $SYNC_DIR&amp;quot;
        return 1
    fi
    
    echo &amp;quot;   Обработка: $SYNC_DIR&amp;quot;
    
    # Исправляем владельца и группу существующих файлов и директорий
    # Владелец: пользователь, группа: rslsync (или группа пользователя, если rslsync нет)
    echo &amp;quot;      Исправление владельца и группы существующих файлов...&amp;quot;
    chown -R &amp;quot;$SYNC_USER:$USE_GROUP&amp;quot; &amp;quot;$SYNC_DIR&amp;quot; 2&amp;gt;/dev/null || echo &amp;quot;         ⚠ Не удалось изменить владельца/группу (может потребоваться больше прав)&amp;quot;
    
    # Устанавливаем setgid бит на директории (2775 = rwxrwxr-x + setgid)
    # Это гарантирует, что новые файлы будут создаваться с группой директории
    echo &amp;quot;      Установка setgid бита на директории...&amp;quot;
    find &amp;quot;$SYNC_DIR&amp;quot; -type d -exec chmod 2775 {} \; 2&amp;gt;/dev/null || echo &amp;quot;         ⚠ Не удалось установить setgid бит&amp;quot;
    
    # Устанавливаем права на файлы (0664 = rw-rw-r--)
    # Это даёт чтение/запись владельцу и группе
    echo &amp;quot;      Установка прав на файлы...&amp;quot;
    find &amp;quot;$SYNC_DIR&amp;quot; -type f -exec chmod 0664 {} \; 2&amp;gt;/dev/null || echo &amp;quot;         ⚠ Не удалось изменить права на файлы&amp;quot;
    
    # Настраиваем ACL для дополнительной защиты
    echo &amp;quot;      Настройка ACL...&amp;quot;
    setfacl -R -m d:g:&amp;quot;$USE_GROUP&amp;quot;:rwx &amp;quot;$SYNC_DIR&amp;quot; 2&amp;gt;/dev/null || true
    setfacl -R -m g:&amp;quot;$USE_GROUP&amp;quot;:rwx &amp;quot;$SYNC_DIR&amp;quot; 2&amp;gt;/dev/null || true
    
    echo &amp;quot;      ✓ Права настроены (владелец: $SYNC_USER, группа: $USE_GROUP)&amp;quot;
}

# Ищем все директории с .sync (исключаем служебные директории Resilio Sync)
SYNC_DIRS=$(find /home/&amp;quot;$SYNC_USER&amp;quot; -name &amp;quot;.sync&amp;quot; -type d 2&amp;gt;/dev/null | \
    grep -v &amp;quot;/\.config/resilio-sync&amp;quot; | \
    grep -v &amp;quot;/\.SyncUser&amp;quot; | \
    grep -v &amp;quot;/License/&amp;quot; | \
    xargs -I {} dirname {} | \
    sort -u)

# Также проверяем системные директории (если есть доступ)
if [ -d &amp;quot;/var/lib/resilio-sync&amp;quot; ]; then
    # Можно добавить логику для поиска системных директорий, если нужно
    # Пока пропускаем, так как они обычно требуют специальной настройки
    true
fi

# Подсчитываем количество найденных директорий
SYNC_COUNT=0
if [ -n &amp;quot;$SYNC_DIRS&amp;quot; ]; then
    SYNC_COUNT=$(echo &amp;quot;$SYNC_DIRS&amp;quot; | grep -v &amp;#039;^$&amp;#039; | wc -l)
fi

if [ &amp;quot;$SYNC_COUNT&amp;quot; -eq 0 ]; then
    echo &amp;quot;   ⚠ Не найдено синхронизируемых директорий&amp;quot;
    echo &amp;quot;   Проверьте, что Resilio Sync запущен и синхронизирует папки&amp;quot;
else
    echo &amp;quot;   Найдено директорий: $SYNC_COUNT&amp;quot;
    echo &amp;quot;&amp;quot;
    
    # Обрабатываем каждую директорию
    COUNTER=1
    while IFS= read -r SYNC_DIR; do
        if [ -n &amp;quot;$SYNC_DIR&amp;quot; ] &amp;amp;&amp;amp; [ -d &amp;quot;$SYNC_DIR&amp;quot; ]; then
            echo &amp;quot;   [$COUNTER/$SYNC_COUNT] $SYNC_DIR&amp;quot;
            setup_directory_permissions &amp;quot;$SYNC_DIR&amp;quot;
            echo &amp;quot;&amp;quot;
            COUNTER=$((COUNTER + 1))
        fi
    done &amp;lt;&amp;lt;&amp;lt; &amp;quot;$SYNC_DIRS&amp;quot;
fi

# 6. Создаём .syncignore файлы в директориях с .git
echo &amp;quot;&amp;quot;
echo &amp;quot;6. Создание .syncignore файлов в директориях с .git...&amp;quot;

SYNCIGNORE_COUNT=0
if [ -n &amp;quot;$SYNC_DIRS&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$SYNC_COUNT&amp;quot; -gt 0 ]; then
    while IFS= read -r SYNC_DIR; do
        if [ -n &amp;quot;$SYNC_DIR&amp;quot; ] &amp;amp;&amp;amp; [ -d &amp;quot;$SYNC_DIR&amp;quot; ] &amp;amp;&amp;amp; [ -d &amp;quot;$SYNC_DIR/.git&amp;quot; ]; then
            SYNCIGNORE_FILE=&amp;quot;$SYNC_DIR/.syncignore&amp;quot;
            
            # Создаём или обновляем .syncignore
            if [ ! -f &amp;quot;$SYNCIGNORE_FILE&amp;quot; ] || ! grep -q &amp;quot;\.git/&amp;quot; &amp;quot;$SYNCIGNORE_FILE&amp;quot; 2&amp;gt;/dev/null; then
                {
                    echo &amp;quot;# Исключить .git из синхронизации Resilio Sync&amp;quot;
                    echo &amp;quot;# Git репозиторий должен синхронизироваться через git, а не через файловую синхронизацию&amp;quot;
                    echo &amp;quot;.git/&amp;quot;
                    echo &amp;quot;.gitignore&amp;quot;
                    echo &amp;quot;*.git&amp;quot;
                } &amp;gt;&amp;gt; &amp;quot;$SYNCIGNORE_FILE&amp;quot;
                
                chown &amp;quot;$SYNC_USER:$USE_GROUP&amp;quot; &amp;quot;$SYNCIGNORE_FILE&amp;quot; 2&amp;gt;/dev/null || true
                chmod 644 &amp;quot;$SYNCIGNORE_FILE&amp;quot;
                
                echo &amp;quot;   ✓ Создан/обновлён: $SYNCIGNORE_FILE&amp;quot;
                SYNCIGNORE_COUNT=$((SYNCIGNORE_COUNT + 1))
            else
                echo &amp;quot;   ℹ Уже существует: $SYNCIGNORE_FILE&amp;quot;
            fi
        fi
    done &amp;lt;&amp;lt;&amp;lt; &amp;quot;$SYNC_DIRS&amp;quot;
    
    if [ &amp;quot;$SYNCIGNORE_COUNT&amp;quot; -eq 0 ]; then
        echo &amp;quot;   ℹ Не найдено директорий с .git для создания .syncignore&amp;quot;
    fi
else
    echo &amp;quot;   ℹ Нет синхронизируемых директорий для проверки&amp;quot;
fi

echo &amp;quot;&amp;quot;
echo &amp;quot;=== Настройка завершена ===&amp;quot;
echo &amp;quot;&amp;quot;
echo &amp;quot;Обработано директорий: $SYNC_COUNT&amp;quot;
if [ &amp;quot;$SYNCIGNORE_COUNT&amp;quot; -gt 0 ]; then
    echo &amp;quot;Создано/обновлено .syncignore файлов: $SYNCIGNORE_COUNT&amp;quot;
fi
echo &amp;quot;&amp;quot;
echo &amp;quot;Следующие шаги:&amp;quot;
echo &amp;quot;1. Перезапустите Resilio Sync:&amp;quot;
echo &amp;quot;   sudo systemctl restart resilio-sync&amp;quot;
echo &amp;quot;   # Или для пользовательского экземпляра:&amp;quot;
echo &amp;quot;   systemctl --user restart resilio-sync&amp;quot;
echo &amp;quot;&amp;quot;
echo &amp;quot;2. Выйдите и войдите в систему заново, чтобы изменения группы вступили в силу&amp;quot;
echo &amp;quot;&amp;quot;
echo &amp;quot;3. Проверьте права доступа в одной из директорий:&amp;quot;
if [ -n &amp;quot;$SYNC_DIRS&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$SYNC_COUNT&amp;quot; -gt 0 ]; then
    FIRST_DIR=$(echo &amp;quot;$SYNC_DIRS&amp;quot; | head -1)
    if [ -n &amp;quot;$FIRST_DIR&amp;quot; ] &amp;amp;&amp;amp; [ -d &amp;quot;$FIRST_DIR&amp;quot; ]; then
        echo &amp;quot;   ls -la \&amp;quot;$FIRST_DIR\&amp;quot; | head -5&amp;quot;
        if [ -d &amp;quot;$FIRST_DIR/.git&amp;quot; ]; then
            echo &amp;quot;   ls -la \&amp;quot;$FIRST_DIR/.git/\&amp;quot; | head -5&amp;quot;
        fi
    fi
fi
echo &amp;quot;&amp;quot;
echo &amp;quot;4. Если проблемы остались, исправьте права вручную для конкретной директории:&amp;quot;
echo &amp;quot;   sudo chown -R $SYNC_USER:$USE_GROUP &amp;lt;путь_к_директории&amp;gt;&amp;quot;
echo &amp;quot;&amp;quot;
if [ -n &amp;quot;$SYNC_DIRS&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$SYNC_COUNT&amp;quot; -gt 0 ]; then
    echo &amp;quot;5. Список всех обработанных директорий:&amp;quot;
    while IFS= read -r SYNC_DIR; do
        if [ -n &amp;quot;$SYNC_DIR&amp;quot; ] &amp;amp;&amp;amp; [ -d &amp;quot;$SYNC_DIR&amp;quot; ]; then
            echo &amp;quot;   - $SYNC_DIR&amp;quot;
        fi
    done &amp;lt;&amp;lt;&amp;lt; &amp;quot;$SYNC_DIRS&amp;quot;
fi&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Как безопасно настроить SSH-доступ к серверу с помощью ключей</title>
<guid isPermaLink="false">7</guid>
<link>https://alt.webman.agency/all/kak-bezopasno-nastroit-ssh-dostup-k-serveru-s-pomoschyu-klyuchey/</link>
<pubDate>Wed, 30 Jul 2025 14:04:32 +0300</pubDate>
<author></author>
<comments>https://alt.webman.agency/all/kak-bezopasno-nastroit-ssh-dostup-k-serveru-s-pomoschyu-klyuchey/</comments>
<description>
&lt;p&gt;
        В этом руководстве я покажу, как настроить SSH-подключение к серверу с использованием ключей &lt;strong&gt;с соблюдением базовых норм безопасности&lt;/strong&gt;.
    &lt;/p&gt;
&lt;p&gt;&lt;h2&gt;Шаг 1: Создание безопасного SSH-ключа&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;
        Генерируем ключ с современным алгоритмом и &lt;strong&gt;обязательным паролем&lt;/strong&gt;:
    &lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;ssh-keygen -t ed25519 -C &amp;quot;project-prod-login@beget.tech&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;
        &lt;strong&gt;Важно:&lt;/strong&gt;
    &lt;/p&gt;
&lt;ul&gt;
        &lt;li&gt;Укажите путь: &lt;strong&gt;~/.ssh/project-prod-login&lt;/strong&gt;&lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;Обязательно задайте надёжный пароль&lt;/strong&gt; (passphrase) для ключа&lt;/li&gt;
        &lt;li&gt;ed25519 безопаснее RSA при меньшей длине ключа&lt;/li&gt;
    &lt;/ul&gt;
&lt;p&gt;&lt;h2&gt;Шаг 2: Копирование ключа на сервер&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;
        Отправляем ключ безопасным способом:
    &lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;ssh-copy-id -i ~/.ssh/project-prod-login login@beget.tech&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;
        &lt;strong&gt;Проверьте:&lt;/strong&gt; на сервере должны быть правильные права:
    &lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h2&gt;Шаг 3: Безопасная настройка SSH-конфига&lt;/h2&gt;&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;nano ~/.ssh/config&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;
        Добавьте с ограничениями:
    &lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;Host project-prod
    HostName beget.tech
    User login
    Port 22
    IdentityFile ~/.ssh/project-prod-login
    IdentitiesOnly yes
    ForwardAgent no&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;
        &lt;strong&gt;Почему это важно:&lt;/strong&gt;
    &lt;/p&gt;
&lt;ul&gt;
        &lt;li&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;IdentitiesOnly yes&lt;/code&gt;&lt;/pre&gt; — запрещает автоматическую отправку всех ключей&lt;/li&gt;
        &lt;li&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;ForwardAgent no&lt;/code&gt;&lt;/pre&gt; — отключает небезопасное перенаправление агента&lt;/li&gt;
    &lt;/ul&gt;
&lt;p&gt;&lt;h2&gt;Рекомендации по безопасности&lt;/h2&gt;&lt;/p&gt;
&lt;ol&gt;
        &lt;li&gt;&lt;strong&gt;На сервере:&lt;/strong&gt; отключите парольную аутентификацию в &lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;/etc/ssh/sshd_config&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;
            &lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;PasswordAuthentication no&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;→ затем&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;systemctl restart sshd&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/li&gt;&lt;/p&gt;
&lt;li&gt;&lt;strong&gt;Измените порт SSH&lt;/strong&gt; (не 22) для снижения брутфорс-атак&lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;Никогда не передавайте приватный ключ&lt;/strong&gt; по незащищённым каналам&lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;Регулярно обновляйте ключи&lt;/strong&gt; (раз в 6-12 месяцев)&lt;/li&gt;
        &lt;li&gt;Храните резервную копию ключа &lt;strong&gt;в зашифрованном хранилище&lt;/strong&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;p&gt;&lt;h2&gt;Проверка безопасности&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;
        Убедитесь, что всё настроено правильно:
    &lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# Проверка прав доступа
ls -la ~/.ssh
# Приватный ключ должен быть: -rw------- (600)

# Тест подключения
ssh -v project-prod&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h2&gt;Заключение&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;
        Ключевая аутентификация безопаснее паролей, &lt;strong&gt;но только при правильной настройке&lt;/strong&gt;. 
        Следуя этим рекомендациям, вы защитите сервер от 90% стандартных атак.
    &lt;/p&gt;
&lt;p&gt;
        &lt;strong&gt;Помните:&lt;/strong&gt; ваш приватный ключ — это как цифровой паспорт. Обращайтесь с ним соответственно.
    &lt;/p&gt;
</description>
</item>

<item>
<title>Запуск Flameshot в Alt Linux Gnome</title>
<guid isPermaLink="false">6</guid>
<link>https://alt.webman.agency/all/flameshot-2/</link>
<pubDate>Wed, 12 Mar 2025 12:01:30 +0300</pubDate>
<author></author>
<comments>https://alt.webman.agency/all/flameshot-2/</comments>
<description>
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;flatpak permission-set screenshot screenshot org.flameshot.Flameshot yes&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Настройка Nautilus для отображения чередующихся цветов строк в режиме списка</title>
<guid isPermaLink="false">5</guid>
<link>https://alt.webman.agency/all/nautilus-chereduyuschihsya-cveta/</link>
<pubDate>Wed, 20 Nov 2024 12:03:18 +0300</pubDate>
<author></author>
<comments>https://alt.webman.agency/all/nautilus-chereduyuschihsya-cveta/</comments>
<description>
&lt;h3&gt;Шаг 1: Создание конфигурационного файла&lt;/h3&gt;
&lt;p&gt;Чтобы изменить внешний вид Nautilus, необходимо создать файл стилей `gtk.css` в вашем домашнем каталоге. Для этого выполните команду в терминале:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;touch ~/.config/gtk-4.0/gtk.css&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;h3&gt;Шаг 2: Добавление стилей&lt;/h3&gt;
&lt;p&gt;Откройте созданный файл `gtk.css` с помощью любого текстового редактора, например:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;nano ~/.config/gtk-4.0/gtk.css&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;Вставьте в файл следующий код:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;/* Определение базовых цветов */
:root {
    --row-even-bg-color: hsla(0, 0%, 100%, 0.04); /* Полупрозрачный белый (4%) для осветления фона */
    --row-hover-bg-color: hsla(0, 0%, 100%, 0.08); /* Полупрозрачный белый (8%) для эффекта наведения */
}

/* Применение цветов к Nautilus */
.nautilus-list-view row:nth-child(even):not(:hover):not(:selected) {
    background-color: var(--row-even-bg-color);
}

.nautilus-list-view row:hover {
    background-color: var(--row-hover-bg-color);
}&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;Сохраните изменения и закройте текстовый редактор.&lt;/p&gt;
&lt;h3&gt;Шаг 3: Перезапуск Nautilus&lt;/h3&gt;
&lt;p&gt;Чтобы изменения вступили в силу, необходимо перезапустить Nautilus. Выполните в терминале:&lt;/p&gt;
&lt;p&gt;Выходим из Nautilus&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;nautilus -q&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;Запускаем Nautilus&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;nautilus &amp;amp;&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;Теперь, открыв Nautilus в режиме списка, вы увидите, что строки чередуются по цвету, что делает просмотр файлов и папок более удобным.&lt;/p&gt;
</description>
</item>

<item>
<title>Увеличение курсора при резком движении мыши.</title>
<guid isPermaLink="false">4</guid>
<link>https://alt.webman.agency/all/uvelichenie-kursora-pri-rezkom-dvizhenii-myshi/</link>
<pubDate>Tue, 20 Aug 2024 14:57:48 +0300</pubDate>
<author></author>
<comments>https://alt.webman.agency/all/uvelichenie-kursora-pri-rezkom-dvizhenii-myshi/</comments>
<description>
&lt;p&gt;В рабочем окружении GNOME можно легко найти курсор, не нажимая кнопки на клавиатуре. Для этого перейдите в &lt;strong&gt;Настройки&lt;/strong&gt;, затем в раздел &lt;strong&gt;Специальные возможности&lt;/strong&gt; и включите пункт &lt;strong&gt;Обнаружить курсор&lt;/strong&gt;. Теперь, нажав клавишу &lt;b&gt;Ctrl&lt;/b&gt;, вы получите подсказку о местоположении курсора.&lt;/p&gt;
&lt;p&gt;Если вы пользовались MacBook с MacOS, вам мог понравиться способ поиска курсора, при котором он увеличивался при резком движении мыши. Этот метод доступен и в GNOME с помощью расширения &lt;strong&gt;Wiggle&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;h2&gt;Установка Wiggle&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;После установки расширения Wiggle вы сможете находить курсор, резко двигая мышью влево-вправо. Также можно настроить размер курсора и различные эффекты. Для настройки нажмите на шестеренку в разделе &lt;strong&gt;Расширения&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Установить расширение Wiggle можно по следующей ссылке: &lt;a href="https://extensions.gnome.org/extension/6784/wiggle/"&gt;Wiggle на GNOME Extensions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Источник: &lt;a href="https://t.me/alt_gnome/1605"&gt;https://t.me/alt_gnome/1605&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Grub-btrfs: Снимки системы (snapshot) в меню GRUB</title>
<guid isPermaLink="false">3</guid>
<link>https://alt.webman.agency/all/grub-btrfs-snimki-sistemy-snapshot-v-menyu-grub/</link>
<pubDate>Tue, 20 Aug 2024 14:50:13 +0300</pubDate>
<author></author>
<comments>https://alt.webman.agency/all/grub-btrfs-snimki-sistemy-snapshot-v-menyu-grub/</comments>
<description>
&lt;p&gt;&lt;h1&gt;Настройка GRUB для восстановления из снимков BTRFS&lt;/h1&gt;&lt;/p&gt;
&lt;p&gt;При использовании файловой системы BTRFS с загрузчиком GRUB можно удобно управлять снимками системы через меню загрузки. Это позволяет быстро восстанавливать систему до предыдущего состояния. В этой статье рассмотрим установку и настройку &lt;b&gt;grub-btrfs&lt;/b&gt; для отображения снимков в GRUB.&lt;/p&gt;
&lt;p&gt;&lt;h2&gt;Установка grub-btrfs&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;Установите пакет в зависимости от используемого пакетного менеджера:&lt;/p&gt;
&lt;p&gt;&lt;h3&gt;Через apt (Debian/Ubuntu)&lt;/h3&gt;&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo apt update&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo apt install grub-btrfs&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h3&gt;Через epm (ALT Linux)&lt;/h3&gt;&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;su -&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;epm -i grub-btrfs&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;После установки обновите конфигурацию GRUB:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo update-grub&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;h2&gt;Настройка автоматического обновления меню GRUB&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;Для динамического отображения новых снимков в меню GRUB активируйте встроенный демон &lt;b&gt;grub-btrfsd&lt;/b&gt;:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Отредактируйте конфигурацию сервиса:&lt;/strong&gt;
        &lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl edit --full grub-btrfsd&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Измените строку запуска демона:&lt;/strong&gt;
        &lt;p&gt;Замените:&lt;/p&gt;
        &lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;ExecStart=/usr/bin/grub-btrfsd --syslog /.snapshots&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
        &lt;p&gt;на:&lt;/p&gt;
        &lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Сохраните изменения и активируйте сервис:&lt;/strong&gt;
        &lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl enable --now grub-btrfsd&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;После настройки сервис будет автоматически обновлять меню GRUB при создании или удалении снимков. В меню загрузки появится пункт &lt;strong&gt;ALT snapshots&lt;/strong&gt; (или &lt;strong&gt;Sisyphus snapshots&lt;/strong&gt; для ALT Regular GNOME).&lt;/p&gt;
&lt;p&gt;&lt;h2&gt;Как это работает&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;Утилита &lt;b&gt;grub-btrfs&lt;/b&gt; сканирует корневой раздел BTRFS и добавляет доступные снимки в меню GRUB. При активации демона &lt;b&gt;grub-btrfsd&lt;/b&gt; изменения в снимках (создание/удаление) моментально отражаются в загрузочном меню. Это обеспечивает удобный способ отката системы к рабочему состоянию.&lt;/p&gt;
&lt;p&gt;&lt;h2&gt;Примечания&lt;/h2&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Убедитесь, что снимки создаются в каталоге &lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;/.snapshots&lt;/code&gt;&lt;/pre&gt; (или измените путь в настройках сервиса).&lt;/li&gt;
    &lt;li&gt;Для работы демона требуется включить поддержку systemd-юнитов.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;h2&gt;Заключение&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;Настройка &lt;b&gt;grub-btrfs&lt;/b&gt; позволяет быстро восстанавливать систему через меню GRUB, используя снимки BTRFS. После установки и активации автоматического обновления вы получите актуальный список снимков при каждой загрузке.&lt;/p&gt;
</description>
</item>

<item>
<title>Установка GRUB на Alt Linux с использованием UEFI и BTRFS</title>
<guid isPermaLink="false">2</guid>
<link>https://alt.webman.agency/all/ustanovka-grub-na-alt-linux-s-ispolzovaniem-uefi-i-btrfs/</link>
<pubDate>Tue, 20 Aug 2024 14:34:05 +0300</pubDate>
<author></author>
<comments>https://alt.webman.agency/all/ustanovka-grub-na-alt-linux-s-ispolzovaniem-uefi-i-btrfs/</comments>
<description>
&lt;p&gt;В этой статье описывается процесс установки загрузчика GRUB на систему Alt Linux с использованием UEFI и файловой системы BTRFS.&lt;/p&gt;
&lt;p&gt;&lt;h2&gt;Шаги установки&lt;/h2&gt;&lt;/p&gt;
&lt;ol&gt;
        &lt;li&gt;Получите доступ к суперпользователю:&lt;/li&gt;
        &lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;su -&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
        
        &lt;li&gt;Проверьте доступные диски и разделы:&lt;/li&gt;
        &lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;fdisk -l&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
        &lt;p&gt;Выберите нужные разделы. У меня они выглядят так:&lt;/p&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;/dev/nvme0n1  // Диск&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
            &lt;li&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;/dev/nvme0n1p1 // Раздел с EFI&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
            &lt;li&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;/dev/nvme0n1p3 // Раздел с Linux System&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
        &lt;/ul&gt;

        &lt;li&gt;Смонтируйте необходимые разделы:&lt;/li&gt;
        &lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;cd /
mkdir mnt
mount -o subvol=@ /dev/nvme0n1p3 mnt
mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
mount --bind /run /mnt/run
mount /dev/nvme0n1p1 mnt/boot/efi&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;

        &lt;li&gt;Перейдите в среду chroot:&lt;/li&gt;
        &lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo chroot mnt&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;

        &lt;li&gt;Сгенерируйте конфигурацию GRUB:&lt;/li&gt;
        &lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;grub-mkconfig -o /boot/grub/grub.cfg&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;

        &lt;li&gt;Установите и проверьте GRUB:&lt;/li&gt;
        &lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;grub-install --removable /dev/nvme0n1&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
        &lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;grub-install --recheck /dev/nvme0n1&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;

        &lt;li&gt;Обновите конфигурацию GRUB:&lt;/li&gt;
        &lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;update-grub&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;

        &lt;li&gt;Выйдите из chroot и размонтируйте разделы:&lt;/li&gt;
        &lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;exit&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
        &lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo umount -R /mnt&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
    &lt;/ol&gt;
&lt;p&gt;&lt;h2&gt;Альтернативный вариант установки GRUB (вместо шага — Установите и проверьте GRUB) &lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;Вы также можете попробовать следующую команду:&lt;/p&gt;
&lt;pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;grub-install --target=x86_64-efi --efi-directory=/boot/efi --boot-directory=/boot --recheck --debug&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;Источник — &lt;a href="https://logan.tw/posts/2015/05/17/grub-install-and-btrfs-root-file-system/"&gt;https://logan.tw/posts/2015/05/17/grub-install-and-btrfs-root-file-system/&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>MiniDLNA — Alt Linux</title>
<guid isPermaLink="false">1</guid>
<link>https://alt.webman.agency/all/minidlna-2/</link>
<pubDate>Tue, 02 Apr 2024 16:52:18 +0300</pubDate>
<author></author>
<comments>https://alt.webman.agency/all/minidlna-2/</comments>
<description>
&lt;p&gt;Устанавливаем приложение&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo apt-get install minidlna&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Создаем директорию в которой будет доступ у системного пользователя _minidlna. Важно учесть тот факт что доступ у _minidlna должен быть к каждой папке от корня до конечной. Поэтому чтобы не ломать права создал отдельную папку.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo mkdir /home/DNLA&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;А чтобы было удобно в нее заходить, создаем символическую ссылку из пользовательской папки видео. $USER — нужно заменить на имя своей учетной записи.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo ln -s /home/DNLA &amp;#039;/home/$USER/Видео/DLNA&amp;#039;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Для новой папки сделал себя владельцем и установил права на чтение для остальных пользователей (_minidlna). $USER — нужно заменить на имя своей учетной записи.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo chown -R $USER:$USER /home/DNLA
sudo chmod -R 755 /home/DNLA&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь можно настроить конфигурационный файл.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo nano /etc/minidlna.conf&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;В него вносим следующие изменения.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;user=_minidlna
media_dir=/home/DNLA
db_dir=/var/cache/minidlna&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Перезапускаем демон, происходит сканирование и индексация файлов.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl daemon-reload&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Запускаем сервис minidlna.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl start minidlna.service&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Проверяем статус сервиса.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl status minidlna.service&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Активируем автоматический запуск при загрузке.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl enable minidlna.service&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;После повторного изменения конфигурации перезапускаем сервис.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo systemctl restart minidlna.service&lt;/code&gt;&lt;/pre&gt;</description>
</item>


</channel>
</rss>