Копирование файлов с ПК на Pendrive в конце концов застрянет в Ubuntu 16.04
4 ответа
Это происходит не только с вами:-) Проблема связана с тем, как работает Linux, и с настройками по умолчанию, которые предоставляет вам Ubuntu. Инструмент для копирования файлов читает фрагмент исходного файла, затем записывает его в место назначения и обновляет индикатор выполнения каждый раз, когда завершает запись. Однако, чтобы ускорить процесс, Linux берет данные, которые должны быть записаны, и немедленно сообщает программе, которая была написана, при этом работая в фоновом режиме. Linux позволяет использовать для этой цели некоторый процент системной памяти, который в наши дни обычно имеет размер больше, чем весь файл, поэтому программа может подумать, что написала все целиком, хотя на самом деле копирование только началось. Но когда программа пытается закрыть файл, Linux заставляет ее ждать завершения операции. (иначе программа может попытаться сделать что-то с наполовину написанным файлом)
Это наиболее заметно при записи больших файлов на медленные устройства, такие как USB, но это может проявляться и в других ситуациях, и может показаться, что компьютер блокируется.
Что я делаю, чтобы "исправить" проблему, это сказать Linux, чтобы он буферизовал меньше данных. Таким образом, приложение не может опередить реальный прогресс. Это включает в себя изменение параметра ядра, что является делом опытного пользователя, которое следует делать с осторожностью. Вам нужно добавить "vm.dirty_bytes=15000000" в /etc/sysctl.conf
echo vm.dirty_bytes=15000000 | sudo tee -a /etc/sysctl.conf
затем перезагрузите компьютер.
Это устанавливает размер буфера в 15 МБ, это число, которое я выбрал, и примерно переводится как "полсекунды записи на быстрое устройство USB2". Вы можете выбрать больше (или меньше, но, вероятно, не слишком много), как вам нравится.
Недостатком этого параметра является то, что высокопроизводительные операции могут выполняться медленнее, например, запускать несколько копий файлов одновременно. Это также может привести к выходу ноутбука из спящего режима чаще.
У меня была такая же проблема с Ubuntu 19.10 с флешкой Kingston G4 USB 3.0 на 16 ГБ. Приложение Files gnome застряло в конце выполнения навсегда, и вы не могли извлечь usb. Я копировал файл фильма размером 1,2 ГБ.
Решение - просто отформатировать pendrive в файловую систему NTFS вместо FAT. Когда я это сделал, все работало нормально.
У меня возникла та же проблема, и я решил ее с помощьюdd
команда с очень маленькимbs
ценность, как300
это даст скорость передачи примерно 5 МБ/с.
Значение bs зависит от скорости вашего USB-накопителя, поэтому вам нужно будет провести несколько тестов. Рассмотрите возможность использованияiotop
для мониторинга IO.
Пример:
dd if=source of=/usb/destination bs=300 status=progress
Попробуйте сначала установить драйвер ntfs.
apt install ntfs-3g