lorem

OS-Admin

"Системное администрирование – это культура"


Медленная запись на NTFS в Linux


Опубликовано 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 появилась. Теперь копируйте файлы на ваше устройство, и наслаждайтесь :)


Поделиться:


Теги
Comments System WIDGET PACK

Поддержите блог!