Рекомендую вам взглянуть на это: https://help.ubuntu.com/12.04/serverguide/installing-upgrading.html
Причина, по которой вы видите, что копирование происходит так, как вы делаете, заключается в том, что запись на USB-накопитель асинхронна.
Когда вы копируете файл, он фактически копирует его в буфер буфера USB-накопителя, который находится в ОЗУ вашего компьютера. Первая часть копии очень быстро, потому что она просто входит в буфер. Данные асинхронны из буфера на USB-накопитель с гораздо меньшей скоростью. После того, как буфер заполнен, он должен дождаться, пока некоторые данные будут сброшены на диск, прежде чем он сможет поместить в буфер больше, поэтому копия затем медленно замедляется, эффективно до скорости USB-накопителя. Как только весь файл был помещен в буфер, кажется, что файл был скопирован. Однако не все данные были сброшены из буфера на сам USB-диск. Некоторые программы копирования просто возвращаются и позволяют, чтобы промывка продолжалась в фоновом режиме. Некоторые будут ждать, пока все данные не будут сброшены, поэтому он останется на 100% в течение некоторого времени.
Вы можете переключить диск в синхронный режим, что означает, что все данные сразу записываются на USB-порт диск без использования буфера. Это создаст впечатление более плавной передачи данных, но на самом деле может привести к общему снижению скорости.
Если вы вручную монтируете диск из командной строки, вы можете добавить -o sync.
Если вы установите его с помощью fstab, вы можете добавить параметр sync.
Если вы полагаетесь на Ubuntu, монтируя его для вас, когда вы обращаетесь к нему в GUI, вы можете изменить параметры монтирования из Командная строка после монтирования:
sudo mount -o remount -o sync /media/yourname/diskname
Вероятно, проблема в том, что файл прочитан и сохранен в памяти полностью, прежде чем он полностью будет записан на целевой диск.
Это не значит точно ответить на вопрос, но обходной путь может использовать pv из командной строки в случае больших файлов:
sudo add-apt-repository universe && sudo apt-get update && sudo apt-get install pv
Всякий раз, когда нужно скопировать большой файл:
pv /path/to/big_file >/media/username/usb/big_file
Следует отметить, что это страдает от проблема нежелательной буферизации при использовании в трубе; если это так, то исправление ограничивает скорость передачи немного выше скорости записи целевого диска:
[...] | pv -L 10M >/media/username/usb/big_file # Limits the transfer rate to 10 MB/s
Существует несколько альтернатив. Вы можете использовать подход к командной строке:
cp *source* *target*
, где источником является файл, который вы хотите скопировать, а цель - это файл или папка, которую вы хотите скопировать. Дополнительные параметры можно найти на странице https://softwarerecs.stackexchange.com/
dd if=INPUT_FILE_PATH of=OUTPUT_FILE_PATH bs=$(( 64 * 1024 * 1024 )) oflag=sync
Это будет прочитано из вашего файла if и напишите файл of в блоках 64MiB и дождитесь, пока каждый фрагмент будет записан до начала следующего. Утилита, которую вы используете, скорее всего, просто считывает файл в память, а затем отправляет его на диск (и не указывается, сколько байтов за раз оно это делает). Кэширование записи может быть в самом узле usb, хотя .... Таким образом, скорость 60MiB в секунду, которую вы получаете, - это скорость передачи по USB-соединению во внутренний кеш-ключ. Но это вряд ли, если это не USB3-ключ. USB2 не имеет достаточной пропускной способности для обработки 60MiB в секунду.
Нет необходимости в всех вышеперечисленных. Просто откройте окно терминала, когда передача покажет 0% слева и введите sync. На man-страницах команда sync сбрасывает буферы файловой системы, но, разумеется, она будет только скрывать те, на которые у вас есть права. Если вы хотите сбросить их все типа sudo sync