Хотя я не знаю, является ли это фактическим объяснением / решением вашего вопроса, я считаю, что это проблема с USB в целом.
Если вы копируете большие файлы или много файлов, устройство USB доставит хосту сообщение "Я собираюсь отправить вам эти файлы". Затем устройство отправит все файлы асинхронно и займет время, необходимое для этого. Это означает, что когда вы делаете cp /my/flash/drive/foo.txt /home/bar/foo.txt
устройство сообщит операционной системе, что файлы копируются, а затем отправит файлы.
Единственный известный мне способ проверить, действительно ли все данные были переданы, - это ввести sync
после выполнения команды, которая копирует / перемещает или удаляет файлы на флэш-накопителе. Команда синхронизации будет просто блокироваться, пока привод не завершит передачу данных. После этого должно быть безопасно отключить / извлечь USB-накопитель.
[РЕДАКТИРОВАТЬ]: проверьте это сообщение, чтобы увидеть ход выполнения операции sync
: число, напечатанное при запуске
watch grep -e Dirty: -e Writeback: /proc/meminfo
должно уменьшиться до нуля, когда происходят фоновые передачи данных. Когда это будет сделано, ваша sync
будет завершена, и ваш флэш-накопитель будет извлечен.
Другая распространенная проблема с извлечением USB-накопителей заключается в том, что, по крайней мере, Debian не допустит этого, если на этом флэш-накопителе в настоящее время работает программа, терминал или аналогичные файлы. Таким образом, если вы изменили каталог на папку на этом флэш-накопителе в терминале, а затем попытаетесь извлечь флэш-накопитель с помощью другого терминала, это не позволит этого сделать, пока вы не измените каталог на другое место, кроме флэш-накопителя в первом терминале.