Какой быстрый способ скопировать множество файлов с внутреннего жесткого диска на внешнее (USB) хранилище?

8

У меня большой объем данных - около 500 ГБ - на внутреннем жестком диске настольного ПК. Это включает в себя музыку, видео, PDF-файлы ... вы называете это.

Я хочу скопировать все на внешний жесткий диск USB (емкостью 1,5 ТБ).

Настольный ПК работает под управлением Ubuntu. Для начала я просто подключил и установил жесткий диск и перетащил папку верхнего уровня на диск.

Он начал копировать, но, похоже, идет очень медленно. Примерно через 10 минут, и это только около 500 МБ. Я уверен, что это медленнее, чем то, что я мог бы достичь с меньшим количеством общих данных.

Поэтому мне интересно, есть ли более быстрый способ сделать это.

Было бы лучше скопировать это в разделы (то есть 500 МБ или около того), а не все сразу?

jonathanconway
источник

Ответы:

10

Убедитесь, что вы используете порт USB 2.0 и убедитесь, что контроллер USB 2.0 говорит «высокая скорость» - многие авторитетные производители продают «полноскоростные (12)» USB-устройства с заметной надписью «USB 2.0» на их, что технически точно, но дурачит людей, которые думают, что USB 2.0 подразумевает «высокую скорость».

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

mount -o remount,async... /dev/usbdisk ...
rkthkr
источник
+1 .. 500 МБ / 10 мин = 50 МБ / мин = 5 МБ / 6 с = 0,83 МБ / с = 6,7 МБ / с. это даже не удар на полной скорости.
шарлатан-кихот
10

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

Короче говоря:

rsync -avP src/ dst/

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

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

Shadok
источник
1
Я знаю, что опоздала, но rsync действительно спас меня. Мне пришлось восстановить некоторые данные для клиента, и копия файла в моей системе Xubuntu была заблокирована (старая машина, старые диски). RSYNC включается прямо через копию файла. Я использовал немного разные варианты. rsync источник dest -r -v --ignore-Существующий
pStan
9

Если бы у меня было действительно огромное количество данных для копирования, я бы вытащил диск из внешнего корпуса и вставил его внутрь компьютера, а затем положил обратно в корпус, когда закончил. Я держу пару кабелей SATA и отсеки для дисков открытыми именно для такой потребности. Открытие корпуса и повторное его закрытие отнимает много времени, но сама копия будет в несколько раз быстрее.

Пол Томблин
источник
3

Вы не упомянули, какая файловая система была на USB-диске. Это родная файловая система Linux или вы используете ntfs / fat32? Я думаю, что если вам придется пройти через предохранитель, это будет стоить вам производительности.

Для этого я просто подключил и установил жесткий диск и перетащил папку верхнего уровня на диск.

Если у вас есть столько данных для копирования, лично я бы пропустил GUI, так как это добавит накладные расходы к вашей операции копирования. Вместо этого я бы использовал одну из многих команд CLI (cp, rsync, cpio, tar и т. Д.) Для копирования файлов.

Было бы лучше скопировать его порциями по 500 МБ или около того, а не все сразу?

Если вы работаете с чем-то вроде rsync, не должно быть причин для копирования файлов небольшими наборами.

Zoredache
источник
вы правы, производительность ntfs на linux очень низкая.
шарлатан-кихот