2

Когда я копирую большой файл на флэш-накопитель, индикатор выполнения очень быстро заканчивается, но затем он остается таким, пока файл действительно не будет скопирован на флэш-накопитель.

Я посмотрел в Интернете об этой проблеме, и это, похоже, не ошибка файлового менеджера, но, похоже, это ошибка Linux. Итак, мой вопрос: как это возможно, что такое удивительное ядро содержит такую досадную ошибку; и никто не исправлял это годами (даже сейчас ошибка все еще происходит).

PS: я использую Ubuntu 15.10 и 16.04 с файловым менеджером по умолчанию (nautilus)

1 ответ1

1

Я нашел проблему, и это не в файловом менеджере.

Временное решение

Выполняйте эту команду при каждой загрузке:

cat 15728640 > /proc/sys/vm/dirty_bytes

Постоянное решение

Добавьте эту строку в конец файла /etc/sysctl.conf :

vm.dirty_bytes=15728640

объяснение

Происходит то, что ядро передает содержимое файла в буферизованном пространстве в первичной памяти (ОЗУ), и это пространство очень быстро.

Таким образом, файловый менеджер считает, что содержимое файла было полностью скопировано в место назначения, и пытается завершить копирование файла. В этот момент файловый менеджер застревает, потому что ядро теперь действительно копирует файл на целевой носитель (жесткий диск, флэш-накопитель ...). Он застревает до тех пор, пока файл не будет полностью скопирован на целевой носитель.

Решение состоит в том, чтобы ограничить пространство этого буферизованного пространства, скажем, до 15 15Mb , чтобы заставить ядро сбрасывать содержимое буферизованного пространства на носитель назначения каждый раз, когда 15Mb ограничение в 15 МБ . Таким образом, файловый менеджер не получает неверную информацию о прогрессе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .