Files
dotfiles/docs/research/2026-07-27-rclone-yandex-mount-large-storage.md
ddadmin 97193eaa4b docs(rclone): добавлена настройка Яндекс Диска для Ubuntu
- Зачем:
  - нужна удобная работа с документами на большом Яндекс Диске из Linux.
- Что:
  - собраны выводы о поведении rclone mount на больших хранилищах.
  - добавлены команды установки, настройки, проверки и автозапуска в Ubuntu 26.04.
  - описаны ограничения кэша, внешних изменений и рекурсивного обхода.
- Проверка:
  - выполнена проверка `git diff --cached --check`.
2026-07-27 22:16:33 +03:00

17 KiB
Raw Permalink Blame History

rclone mount и большой Яндекс Диск

Дата проверки: 2026-07-27.

Вывод

Обычный rclone mount не обходит весь Диск при запуске. Он создаёт корневой узел и перечисляет каталог только при первом обращении к нему. Поэтому время подключения почти не зависит от общего объёма и числа файлов. Первый просмотр конкретного каталога зависит от числа элементов именно в этом каталоге.

Для редкого чтения и редактирования документов на многотерабайтном Диске такой режим подходит. Главные ограничения — медленные каталоги с очень большим числом непосредственных детей, задержка появления изменений, сделанных через браузер, и возможное ограничение скорости со стороны Яндекс API при массовой работе с мелкими файлами.

Что происходит при запуске

В исходниках rclone 1.74.4 конструктор VFS создаёт пустой корневой каталог. Рекурсивное чтение запускается только при включённом --vfs-refresh. Обычное чтение каталога вызывает list.DirSorted только для запрошенного пути.

Кэш списка каталогов хранится в памяти. --dir-cache-time определяет срок его жизни в рамках работающего процесса; после перезапуска посещённые каталоги нужно перечислить заново. Дисковый VFS-кэш содержимого файлов сохраняется отдельно и может переживать перезапуск.

Источники:

Что может вызвать полный обход

Не следует включать:

  • --vfs-refresh — рекурсивно наполняет кэш каталогов после запуска;
  • --vfs-used-is-size — вычисляет занятое место алгоритмом rclone size и сканирует весь удалённый ресурс;
  • автоматический du, find, полнотекстовый поиск или построение миниатюр от корня подключённого Диска.

Обычный df безопасен: backend Яндекс Диска поддерживает получение квоты через операцию about, поэтому подсчёт всех файлов не нужен.

Источник: backend Яндекс Диска в rclone.

Изменения через браузер

VFS сразу знает об изменениях, сделанных через это же подключение. Изменения, сделанные через браузер или другое устройство, могут быть не видны до истечения --dir-cache-time, если backend не поддерживает уведомления об изменениях. Практический отзыв владельца 2 ТБ Яндекс Диска показывает именно этот эффект: при --dir-cache-time 12h внешние изменения долго оставались невидимыми.

Источник: обсуждение 2 ТБ Яндекс Диска на форуме rclone.

Индексация GNOME

Текущая система рекурсивно индексирует домашний каталог, но LocalSearch по умолчанию пропускает точки монтирования. Подключение всё же лучше держать в /mnt/yandex и не добавлять его в «Параметры → Поиск → Места поиска».

Источник: правила индексирования GNOME LocalSearch.

Отзывы пользователей

Повторяются следующие наблюдения:

  • сценарий «файлы по требованию» считают естественным применением rclone mount; это живое сетевое представление, а не полноценная офлайн- синхронизация;
  • даже хранилища с очень большим общим числом файлов могут подключаться, пока программы не пытаются рекурсивно обходить всё дерево;
  • каталоги с десятками тысяч мелких файлов остаются чувствительными к сетевой задержке;
  • по Яндекс Диску встречаются сообщения об ограничении скорости и ошибках блокировки при массовой загрузке мелких файлов. Основная подробная подборка относится к 2022 году, поэтому это сигнал для пробного теста, а не доказательство текущего ограничения;
  • Яндекс официально гарантирует работу своих клиентов, а сторонние клиенты не поддерживает.

Источники:

Настройка на текущем компьютере

Команды ниже рассчитаны на установленную здесь Ubuntu 26.04 LTS x86_64 (amd64). fuse3 и /usr/bin/fusermount3 уже установлены.

1. Установка rclone

В репозитории Ubuntu 26.04 сейчас находится rclone 1.60.1, тогда как актуальный выпуск — 1.74.4. Разработчики rclone предупреждают, что пакеты дистрибутивов часто отстают. Для монтирования лучше поставить текущий официальный пакет:

curl -fL \
  https://downloads.rclone.org/rclone-current-linux-amd64.deb \
  -o /tmp/rclone-current-linux-amd64.deb
sudo apt install /tmp/rclone-current-linux-amd64.deb
rclone version

Snap-пакет не подходит: из-за его ограничений команда rclone mount не поддерживается.

Источник: официальная инструкция по установке rclone.

2. Подключение учётной записи

rclone config

В диалоге:

  1. Выбрать n — создать новое подключение.
  2. Назвать его yandex.
  3. Выбрать тип хранилища yandex.
  4. client_id и client_secret оставить пустыми.
  5. Разрешить вход через браузер и подтвердить доступ.
  6. Сохранить подключение.

Проверить конфигурацию без рекурсивного обхода Диска:

rclone listremotes
rclone lsd yandex:
rclone about yandex:
rclone config file
chmod 600 "$HOME/.config/rclone/rclone.conf"

Последний файл содержит OAuth-токен. Его нельзя добавлять в Git или передавать другим людям. Для первой проверки не следует запускать rclone ls yandex:: в отличие от lsd, эта команда рекурсивно перечисляет все файлы.

Источник: настройка backend Яндекс Диска.

3. Пробное монтирование

Создать постоянную точку монтирования и каталог кэша:

sudo install -d -o "$USER" -g "$USER" -m 0750 /mnt/yandex
mkdir -p "$HOME/.cache/rclone/yandex"

Запустить rclone в терминале:

rclone mount yandex: /mnt/yandex \
  --config "$HOME/.config/rclone/rclone.conf" \
  --cache-dir "$HOME/.cache/rclone/yandex" \
  --vfs-cache-mode full \
  --vfs-cache-max-size 30G \
  --vfs-cache-min-free-space 100G \
  --vfs-cache-max-age 720h \
  --vfs-write-back 10s \
  --dir-cache-time 1h \
  --poll-interval 0 \
  --attr-timeout 1s \
  --buffer-size 8M \
  --transfers 4 \
  --timeout 1h \
  --log-level INFO

Эти размеры выбраны с учётом текущего свободного места в /home: кэш ограничен 30 ГБ, а rclone начнёт освобождать его при остатке менее 100 ГБ. Ограничение не абсолютно: открытые и ещё не загруженные файлы нельзя удалить из кэша. --timeout 1h нужен на случай загрузки файлов больше примерно 5 ГиБ.

Подключение работает в переднем плане. Для обычной остановки нажать Ctrl+C. Если точка осталась подключённой после аварии:

fusermount3 -u /mnt/yandex

4. Проверка перед автозапуском

В другом терминале:

findmnt /mnt/yandex
ls /mnt/yandex

Затем открыть копию документа, изменить её, закрыть редактор и подождать больше 10 секунд. После этого проверить файл через веб-интерфейс Яндекс Диска. Важно именно закрыть документ: rclone отправляет изменения после закрытия файла и истечения --vfs-write-back.

Если rclone завершится раньше отправки, изменённый файл останется в VFS-кэше и будет отправлен при следующем запуске с теми же параметрами. Поэтому нельзя удалять каталог кэша после сбоя. Нельзя также одновременно запускать две копии rclone для одного подключения с общим кэшем.

5. Постоянный запуск через systemd

После успешной ручной проверки создать файл ~/.config/systemd/user/rclone-yandex.service:

mkdir -p "$HOME/.config/systemd/user"
vim "$HOME/.config/systemd/user/rclone-yandex.service"

И вставить в него:

[Unit]
Description=Яндекс Диск через rclone
Documentation=https://rclone.org/commands/rclone_mount/
Wants=network-online.target
After=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/rclone mount yandex: /mnt/yandex \
  --config=%h/.config/rclone/rclone.conf \
  --cache-dir=%h/.cache/rclone/yandex \
  --vfs-cache-mode=full \
  --vfs-cache-max-size=30G \
  --vfs-cache-min-free-space=100G \
  --vfs-cache-max-age=720h \
  --vfs-write-back=10s \
  --dir-cache-time=1h \
  --poll-interval=0 \
  --attr-timeout=1s \
  --buffer-size=8M \
  --transfers=4 \
  --timeout=1h \
  --log-level=INFO
Restart=on-failure
RestartSec=10s
TimeoutStopSec=5min

[Install]
WantedBy=default.target

В службе не нужен --daemon: за процессом следит systemd. %h раскрывается самим systemd в абсолютный путь к домашнему каталогу; ~ и $HOME в ExecStart использовать не следует.

Включить службу:

systemctl --user daemon-reload
systemctl --user enable --now rclone-yandex.service
systemctl --user status rclone-yandex.service

Смотреть журнал:

journalctl --user -u rclone-yandex.service -f

Остановить или снова запустить:

systemctl --user stop rclone-yandex.service
systemctl --user restart rclone-yandex.service

Если изменения, сделанные через браузер, нужны раньше истечения одного часа, сбросить только кэш каталогов этой службы:

systemctl --user kill \
  --kill-whom=main \
  --signal=HUP \
  rclone-yandex.service

Это не сканирует весь Диск: нужные каталоги будут перечитаны при следующем обращении. Не следует посылать сигнал всем процессам rclone разом.

На новых выпусках Ubuntu FUSE изредка блокируется AppArmor с ошибкой fusermount3: mount failed: Permission denied. Не нужно заранее отключать защиту. Если ошибка действительно появится, сначала проверить системный журнал и применить актуальное для Ubuntu исправление из раздела Mounting on Linux.

Что здесь называется синхронизацией

rclone mount не создаёт полную локальную копию нескольких терабайт. Это живое представление Диска: файл скачивается по требованию, а закрытый изменённый файл отправляется обратно через 10 секунд. Именно этот режим рекомендуется здесь.

Команда rclone sync решает другую задачу: приводит каталог назначения к каталогу-источнику и удаляет из назначения лишние файлы. Для всего большого Диска она вызовет полный рекурсивный обход, поэтому в этой схеме её не нужно запускать.

Источник: документация rclone mount и VFS-кэша.

Рекомендация для проверки

Сначала провести короткий пробный запуск без автозапуска:

  1. Не использовать --vfs-refresh, --vfs-used-is-size и рекурсивные индексаторы.
  2. Включить --vfs-cache-mode full.
  3. Ограничить дисковый кэш примерно 20–30 ГБ.
  4. Начать с --dir-cache-time 1h: это компромисс между повторными запросами и видимостью изменений из браузера.
  5. Замерить время подключения, открытия корня, нескольких обычных каталогов и одного самого большого каталога.
  6. На копии документа проверить открытие, сохранение, появление файла в веб- интерфейсе и повторное открытие из кэша.

Если эти проверки проходят, общий объём в несколько ТБ сам по себе не является препятствием для постоянного подключения.