Коротко — проблема почти наверняка на стороне носителя / способа монтирования и/или на стороне настройки Samba, а не «баг» Windows Explorer. При копировании Explorer показывает «Время выполнения: Оценивается», пока не получает стабильную скорость записи. У вас ключевые факторы, которые этому способствуют:
- exFAT на флешке (особенно через FUSE) плохо и медленно обрабатывает запись, особенно много мелких/синхронных операций; драйвер в userspace (exfat‑fuse) сильно загружает CPU.
- возможны синхронные записи / частые fsync: и сам exFAT/монтирование, и настройки Samba (strict sync / sync always) могут заставлять каждую пачку данных физически сбрасываться на диск → очень много IO и задержки.
- USB‑флешки часто имеют ужасную производительность на последовательных/случайных записях (контроллер, маленькие буфера), чем больше файл — тем дольше длится «оценивается».
- если Samba/клиент использует шифрование/подпись SMB, это тоже даёт нагрузку CPU (менее вероятно, т.к. чтение у вас быстро).
Что проверить первым делом
1) Кто грузит CPU/IO:
- top / htop — какой процесс на 70–80% (smbd / fuse / kworker / и т.д.).
- iotop или iostat — какая активность диска.
- dmesg / log — ошибки USB или FUSE.
2) Тип и опции монтирования:
- mount | grep <точка_монтирования> — смотрите, через fuse или kernel driver, какие опции (sync, noatime, big_writes и т.д.).
3) Прямой тест скорости на устройстве (исключая Samba):
- на роутере: dd if=/dev/zero of=/mnt/usb/test.bin bs=1M count=1024 conv=fdatasync
- если это тоже медленно — проблема в флешке/файловой системе/монтировании, а не в Samba.
4) Лог Samba и конфиг:
- проверьте smb.conf на опции strict sync, sync always, oplocks и т.п.
Возможные решения (по приоритету)
1) Если raw copy на роутере медленный — смените носитель или ФС:
- форматнуть флешку в ext4 / f2fs (лучше для Linux) — это даёт существенный прирост производительности и адекватную работу с Linux.
- либо установить/включить kernel exFAT (если в OpenWrt доступен) вместо exfat‑fuse.
2) Если не можете форматировать:
- монтируйте с опциями, ускоряющими запись: noatime, allow_other, big_writes (для FUSE), и уберите опцию sync, если она есть.
- пример для FUSE exfat: mount -o rw,allow_other,noatime,big_writes /dev/sda1 /mnt/usb
3) Настройки Samba (в smb.conf, global или конкретном шаре):
- отключить жёсткую синхронизацию: strict sync = no и sync always = no
- разрешить клиентское кэширование: oplocks = yes, level2 oplocks = yes
- включить асинхронный I/O для больших операций (если ваша сборка Samba поддерживает): aio read size / aio write size (например поставить маленькое значение, чтобы разрешить AIO для больших копирований).
- после изменений перезапустите smbd и проверьте.
4) Тесты для изоляции:
- Скопируйте файл на флешку, сидя на самом OpenWrt — это покажет «чистую» скорость носителя.
- Скопируйте файл через smb с другого Linux (smbclient или mount.cifs) — сравните поведение.
- Временно отключите SMB3 шифрование/подпись на сервере/клиенте, если подозреваете CPU‑нагрузку шифрованием.
Почему именно «Оценивается» зависает
Explorer ждёт, пока ему придут данные о скорости/остатке копирования. Если сервер/носитель отвечает очень медленно (из‑за частых fsync, FUSE‑перевода операций или медленного USB контроллера), Explorer не может корректно оценить скорость, потому показывает «Оценивается» длительное время.
Резюме
Самая частая причина в вашей ситуации — exFAT через FUSE + синхронные записи → высокая нагрузка CPU и IO, медленные подтверждения записи. Самое простое и надёжное решение — перейти на файловую систему, дружелюбную к Linux (ext4/f2fs) или использовать kernel‑драйвер exFAT; а при невозможности форматирования — попробовать правки в монтировании и в smb.conf (убрать sync/включить AIO/оплокс), и измерять производительность локально dd, затем по SMB.
Если хотите, помогу пошагово:
- скажите выводы команд: top, iotop (или iostat), mount | grep <точка>, и содержимое relevant части smb.conf — подскажу конкретные строки для правки.