Apakah ada alat penyalin file yang bagus?

8

Dialog salin macet saat 0 detik tersisa ...

Setiap kali saya mencoba menyalin file besar ke flashdisk USB saya (dalam format apa pun), selalu terhenti di saat terakhir. Itu selesai setelah waktu yang lama .

Saya mencari di Tanya Ubuntu untuk Posting yang mirip dan mendapat banyak , tetapi tidak ada yang memiliki solusi yang baik.

Jadi ... Apakah ada alat penyalin alternatif seperti Teracopy di Windows?

Atau ada perbaikan yang bisa saya lakukan?

Masukkan deskripsi gambar di sini

Severus Tux
sumber
Tolong juga beri tahu saya file apa yang harus saya Unggah untuk referensi
Severus Tux
2
Tidak begitu yakin, tapi saya sangat berasumsi masalah Anda terkait dengan caching penulisan USB . Cari posting tentang cara menonaktifkannya. Seluruh proses penyalinan akan tampak lebih lambat, tetapi harus benar-benar selesai saat kelihatannya selesai.
Byte Commander
@ ByteCommander Dengan lebih lambat, maksud Anda kecepatan aktual ??
Severus Tux
2
Saya tidak terlalu akrab dengan topik itu, tetapi caching hanya menyimpan data yang ingin Anda tulis ke perangkat USB Anda di memori dan benar-benar menulisnya nanti, ketika dianggap bus atau perangkat kurang sibuk, atau ketika dapat mengoptimalkan cara untuk menyimpan blok data bersama-sama ... Ini seharusnya tidak meningkatkan kecepatan tulis fisik aktual (banyak), itu hanya akan muncul lebih cepat untuk Anda, karena proses penyalinan melaporkan akan selesai segera setelah semua data untuk menulis ada dalam cache. Tetapi masih membutuhkan lebih banyak waktu untuk menulis cache ke perangkat. Anda tidak dapat segera mencabutnya sebelum cache ditulis
Byte Commander
Ya, kecepatan penyalinan yang sebenarnya akan sama (mungkin sedikit lebih lambat karena buffer membuatnya lebih kecil kemungkinannya bahwa akan ada saat ketika tidak ada yang ditulis ke disk, tetapi tidak banyak pada sistem yang ringan), tetapi dialog progres akan lebih akurat.
hobbs

Jawaban:

6

Anda seharusnya tidak terlalu khawatir tentang hal ini.
Mungkin flashdisk USB Anda "berkualitas lebih rendah".
Output dialog mengenai waktu menyesatkan.

Alat salin lain mungkin memiliki perilaku keluaran yang berbeda,
tetapi mereka tidak meningkatkan kecepatan penulisan drive USB.
Yang paling penting dari semua adalah bahwa akhirnya tindakan penyalinan berhasil.

Yang dapat Anda lakukan adalah mengoptimalkan penjadwal input / output disk.

Instal gksu(ketika Anda belum melakukannya) untuk mengedit file dengan geditsebagai root:

sudo apt-get install gksu  

Sekarang optimalkan prioritas semua proses yang berjalan untuk berbagai jenis disk:

gksudo gedit /etc/udev/rules.d/60-schedulers.rules

Rekatkan baris berikut ke file kosong ini dan simpan file setelahnya:

# set cfq scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq"

# set deadline scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"  

Perubahan yang Anda buat berlaku setelah restart sistem operasi.

Juga ... solusi salin alternatif tersedia di repositori Ubuntu:

sudo apt-get install dirdiff  

Sekarang luncurkan alat dari terminal untuk membandingkan atau menyalin file dan folder:

dirdiff

dirdiffadalah GUI untuk diffdan dapat menangani hingga 5 pohon. Ini menampilkan jendela utama dengan daftar file yang berbeda antara pohon, dengan kotak berwarna untuk menunjukkan usia relatif dari versi. Menu memungkinkan Anda untuk menampilkan perbedaan antara dua versi di jendela lain. Menu lain memungkinkan Anda untuk menyalin file dan folder dari satu pohon ke pohon lain.

Ringkasan: Yang paling relevan dari semua adalah kualitas disk USB dan kemampuan kecepatan penulisan!

cl-netbox
sumber
7

Alasan Anda melihat penyalinan terjadi seperti yang Anda lakukan adalah menulis ke drive USB tidak sinkron .

Ketika Anda menyalin file itu benar-benar menyalinnya ke buffer drive usb, yang ada di RAM komputer Anda. Bagian pertama dari salinan sangat cepat karena hanya masuk ke buffer. Data memerahdari buffer ke drive USB pada tingkat yang jauh lebih lambat. Setelah buffer telah terisi, ia harus menunggu beberapa data untuk dibilas ke disk sebelum dapat menempatkan lagi di buffer, sehingga salinan kemudian melambat, efektif untuk kecepatan drive USB. Setelah semua file ditempatkan ke dalam buffer, tampak bahwa file tersebut telah disalin. Namun tidak semua data telah dibilas dari buffer ke disk USB itu sendiri. Beberapa program salin baru saja kembali dan membiarkan pembilasan itu berlangsung di latar belakang. Beberapa akan menunggu sampai semua data telah memerah, itulah sebabnya ia akan tetap 100% untuk beberapa waktu.

Anda dapat mengalihkan disk ke mode sinkron yang artinya semua data segera ditulis ke drive USB tanpa menggunakan buffer. Ini akan memberi kesan transfer data lebih halus, tetapi sebenarnya bisa berakhir dengan pengurangan kecepatan secara keseluruhan.

Jika Anda memasang disk secara manual dari baris perintah, Anda dapat menambahkan -o sync.

Jika Anda memasangnya menggunakan fstab, Anda dapat menambahkan syncopsi.

Jika Anda mengandalkan Ubuntu untuk memasangnya saat Anda mengaksesnya di GUI, Anda dapat memodifikasi opsi mount dari baris perintah setelah di-mount:

sudo mount -o remount -o sync /media/yourname/diskname
Majenko
sumber
2
Ini adalah yang jawabannya.
kos
2

Masalahnya adalah kemungkinan file tersebut dibaca dan disimpan dalam memori sepenuhnya sebelum sepenuhnya ditulis ke drive target.

Ini tidak berarti menjawab pertanyaan dengan tepat, tetapi solusi dapat digunakan pvdari baris perintah jika ada file besar:

sudo add-apt-repository universe && sudo apt-get update && sudo apt-get install pv

Setiap kali seseorang perlu menyalin file besar:

pv /path/to/big_file >/media/username/usb/big_file

Perlu dicatat bahwa ini menderita masalah buffering yang tidak diinginkan serupa ketika digunakan dalam pipa; jika itu masalahnya, perbaikan membatasi kecepatan transfer ke sesuatu yang sedikit di atas kecepatan tulis drive target:

[...] | pv -L 10M >/media/username/usb/big_file # Limits the transfer rate to 10 MB/s
kos
sumber
1

Ada sejumlah alternatif. Anda bisa menggunakan pendekatan baris perintah:

cp *source* *target*

di mana sumbernya adalah file yang ingin Anda salin dan targetnya adalah file atau folder yang ingin Anda salin. Opsi lebih lanjut dapat ditemukan di https://softwarerecs.stackexchange.com/

Penatua Geek
sumber
0
dd if=INPUT_FILE_PATH of=OUTPUT_FILE_PATH bs=$(( 64 * 1024 * 1024 )) oflag=sync

Ini akan membaca dari iffile Anda dan menulis ke offile dalam 64MiB chunk dan menunggu sampai setiap chunk ditulis sebelum memulai yang berikutnya. Utilitas yang Anda gunakan kemungkinan besar hanya membaca file ke dalam memori dan kemudian mengirimkannya ke disk (dan tidak ada yang tahu berapa byte pada saat itu melakukannya). Caching tulis bisa di usb dongle itu sendiri .... Jadi kecepatan 60MiB per detik yang Anda dapatkan adalah kecepatan transfer melalui koneksi usb ke cache internal dongle. Tapi itu tidak mungkin kecuali itu dongle USB3. USB2 tidak memiliki throughput yang cukup untuk menangani 60MiB per detik.

Dmitry Rubanovich
sumber
0

Tidak perlu untuk semua hal di atas. Cukup buka jendela terminal ketika transfer menunjukkan 0% kiri dan ketik syncDari halaman manual, perintah sinkronisasi mem-flush buffer sistem file, tetapi tentu saja hanya akan menghapus yang Anda miliki haknya. Jika Anda ingin menyiram semuanyasudo sync

Scooby-2
sumber