- Зачем: - нужна удобная работа с документами на большом Яндекс Диске из Linux. - Что: - собраны выводы о поведении rclone mount на больших хранилищах. - добавлены команды установки, настройки, проверки и автозапуска в Ubuntu 26.04. - описаны ограничения кэша, внешних изменений и рекурсивного обхода. - Проверка: - выполнена проверка `git diff --cached --check`.
17 KiB
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 году, поэтому это сигнал для пробного теста, а не доказательство текущего ограничения;
- Яндекс официально гарантирует работу своих клиентов, а сторонние клиенты не поддерживает.
Источники:
- современное обсуждение files-on-demand;
- обсуждение 1,7 млрд мелких файлов;
- подборка проблем rclone и Яндекс Диска;
- обсуждение 60 тысяч мелких файлов.
Настройка на текущем компьютере
Команды ниже рассчитаны на установленную здесь 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
В диалоге:
- Выбрать
n— создать новое подключение. - Назвать его
yandex. - Выбрать тип хранилища
yandex. client_idиclient_secretоставить пустыми.- Разрешить вход через браузер и подтвердить доступ.
- Сохранить подключение.
Проверить конфигурацию без рекурсивного обхода Диска:
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-кэша.
Рекомендация для проверки
Сначала провести короткий пробный запуск без автозапуска:
- Не использовать
--vfs-refresh,--vfs-used-is-sizeи рекурсивные индексаторы. - Включить
--vfs-cache-mode full. - Ограничить дисковый кэш примерно 20–30 ГБ.
- Начать с
--dir-cache-time 1h: это компромисс между повторными запросами и видимостью изменений из браузера. - Замерить время подключения, открытия корня, нескольких обычных каталогов и одного самого большого каталога.
- На копии документа проверить открытие, сохранение, появление файла в веб- интерфейсе и повторное открытие из кэша.
Если эти проверки проходят, общий объём в несколько ТБ сам по себе не является препятствием для постоянного подключения.