Есть ли хороший инструмент для копирования файлов?

Рекомендую вам взглянуть на это: https://help.ubuntu.com/12.04/serverguide/installing-upgrading.html

1
задан 13 April 2017 в 15:23

5 ответов

Причина, по которой вы видите, что копирование происходит так, как вы делаете, заключается в том, что запись на USB-накопитель асинхронна.

Когда вы копируете файл, он фактически копирует его в буфер буфера USB-накопителя, который находится в ОЗУ вашего компьютера. Первая часть копии очень быстро, потому что она просто входит в буфер. Данные асинхронны из буфера на USB-накопитель с гораздо меньшей скоростью. После того, как буфер заполнен, он должен дождаться, пока некоторые данные будут сброшены на диск, прежде чем он сможет поместить в буфер больше, поэтому копия затем медленно замедляется, эффективно до скорости USB-накопителя. Как только весь файл был помещен в буфер, кажется, что файл был скопирован. Однако не все данные были сброшены из буфера на сам USB-диск. Некоторые программы копирования просто возвращаются и позволяют, чтобы промывка продолжалась в фоновом режиме. Некоторые будут ждать, пока все данные не будут сброшены, поэтому он останется на 100% в течение некоторого времени.

Вы можете переключить диск в синхронный режим, что означает, что все данные сразу записываются на USB-порт диск без использования буфера. Это создаст впечатление более плавной передачи данных, но на самом деле может привести к общему снижению скорости.

Если вы вручную монтируете диск из командной строки, вы можете добавить -o sync.

Если вы установите его с помощью fstab, вы можете добавить параметр sync.

Если вы полагаетесь на Ubuntu, монтируя его для вас, когда вы обращаетесь к нему в GUI, вы можете изменить параметры монтирования из Командная строка после монтирования:

sudo mount -o remount -o sync /media/yourname/diskname
8
ответ дан 23 May 2018 в 13:43

Вероятно, проблема в том, что файл прочитан и сохранен в памяти полностью, прежде чем он полностью будет записан на целевой диск.

Это не значит точно ответить на вопрос, но обходной путь может использовать 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
2
ответ дан 23 May 2018 в 13:43

Существует несколько альтернатив. Вы можете использовать подход к командной строке:

cp *source* *target*

, где источником является файл, который вы хотите скопировать, а цель - это файл или папка, которую вы хотите скопировать. Дополнительные параметры можно найти на странице https://softwarerecs.stackexchange.com/

1
ответ дан 23 May 2018 в 13:43
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
ответ дан 23 May 2018 в 13:43

Нет необходимости в всех вышеперечисленных. Просто откройте окно терминала, когда передача покажет 0% слева и введите sync. На man-страницах команда sync сбрасывает буферы файловой системы, но, разумеется, она будет только скрывать те, на которые у вас есть права. Если вы хотите сбросить их все типа sudo sync

0
ответ дан 23 May 2018 в 13:43

Другие вопросы по тегам:

Похожие вопросы: