Опубликовано 21st Feb 2021 13:20:52 в категории Linux
Здравствуй, дорогой друг!
Многие сталкиваются с медленной записью на флешкидиски с файловой системой NTFS, особенно это касается тех, кто не монтирует ручками флешки, а использует для этого средства файлового менеджера (тот же pcmanfm), или удобную тулзу udiskie. Что только не выдумывают по этому поводу. И диск фрагментирован, и еще что-то. "С Флешкой проблемы!" - даже такое можно встретить в ответах на форумах. А решение проблемы очень простое, на самом деле. Нет, не выкинуть NTFS или флешку.
Прежде всего, необходимо убедиться, что у вас стоит актуальный пакет ntfs-3g. У него есть одна интересная опция - big_writes. Эта опция FUSE позволяет использовать буфер записи 128 КиБ вместо значения по умолчанию для libfuse2, равного 4 КиБ. Это снизит загрузку на ваш ЦП процессом ntfs-3g, да и в целом повысит производительность записи (причем, намного!). Всегда нужно включать его, к тому же, это безопасно. Наверняка у вас эта опция не включена. Чтобы проверить, подключаем, например, флешку, монтируем её средствами вашего ФМ или udiskie, вводим команду
ps ax | grep ntfs
Если у вас отобразится примерно следующее:
653870 ? Ss 0:00 /usr/bin/mount.ntfs /dev/sdd1 /run/media/pc_user/FLASH -o rw,nodev,nosuid,noexec,noatime,uid=1000,gid=985,windows_names,uhelper=udisks2
значит, опция у вас неактивна.
Для тех, кто монтирует всё ручкамиfstabскрипты, достаточно добавить параметр big_writes в опции монтирования, и попробовать, как изменится поведение записи на флешкудиск с NTFS. Для остальных (вероятно, кто использует средства ФМudiskie в совокупности с udisks2) необходимо создать файлик /etc/udisks2/mount_options.conf со следующим содержанием:
[defaults]
### Specific filesystem type options
ntfs_defaults=uid=$UID,gid=$GID,windows_names,big_writes
ntfs_allow=uid=$UID,gid=$GID,umask,dmask,fmask,locale,norecover,ignore_case,windows_names,compression,nocompression,big_writes
И перезапустить сервис udisks2
systemctl restart udisks2.service
После перезапуска сервиса, снова вставьте флешку (если это флешка, разумеется), другими словами - попробуйте перемонтировать ваше устройство с NTFS, и проверьте, какие опции при монтировании использовались. Должно быть примерно так
ps ax | grep ntfs
653870 ? Ss 0:00 /usr/bin/mount.ntfs /dev/sdd1 /run/media/pc_user/FLASH -o rw,nodev,nosuid,noexec,noatime,uid=1000,gid=985,windows_names,big_writes,uhelper=udisks2
Отлично, опция big_writes появилась. Теперь копируйте файлы на ваше устройство, и наслаждайтесь :)
Поддержите блог!