Ketika saya menyalin file ke perangkat USB, dibutuhkan jauh lebih lama daripada di windows (perangkat usb yang sama, port yang sama) lebih cepat dari kecepatan USB 1.0 (1MB / s) tetapi jauh lebih lambat daripada kecepatan USB 2.0 (12MB / s). Untuk menyalin 1,8GB saya membutuhkan waktu lebih dari 10 menit (seharusnya <3 mnt). Saya memiliki dua stik SanDisk Cruzer 8GB yang identik, dan saya memiliki masalah yang sama dengan keduanya. Saya memiliki SSD USB 32GB super talenta di port tetangga dan bekerja dengan kecepatan yang diharapkan.
Masalah yang sepertinya saya lihat di GUI adalah bahwa progress bar menjadi 90% hampir secara instan, selesai menjadi 100% sedikit lebih lambat dan kemudian hang di sana selama 10 menit. Mengganggu salinan pada titik ini tampaknya mengakibatkan korupsi di ujung file. Jika saya menunggu sampai salinan selesai.
Ada ide? Output dmesg di bawah ini:
[64059.432309] usb 2-1.2: new high-speed USB device number 5 using ehci_hcd
[64059.526419] scsi8 : usb-storage 2-1.2:1.0
[64060.529071] scsi 8:0:0:0: Direct-Access SanDisk Cruzer 1.14 PQ: 0 ANSI: 2
[64060.530834] sd 8:0:0:0: Attached scsi generic sg4 type 0
[64060.531925] sd 8:0:0:0: [sdd] 15633408 512-byte logical blocks: (8.00 GB/7.45 GiB)
[64060.533419] sd 8:0:0:0: [sdd] Write Protect is off
[64060.533428] sd 8:0:0:0: [sdd] Mode Sense: 03 00 00 00
[64060.534319] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.534327] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.537988] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.537995] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.541290] sdd: sdd1
[64060.544617] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.544619] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.544621] sd 8:0:0:0: [sdd] Attached SCSI removable disk
sync
dan lihat apakah itu tidak mempercepat proses. <- belum teruji tetapi mungkinJawaban:
Mengapa menyalin ke drive USB saya sangat lambat di Linux (dan lebih cepat di Windows)?
Alasan 1. Caching file dapat membuat penulisan tampak lebih lambat atau lebih cepat
Satu hal yang perlu Anda pahami adalah file caching. Linux (dan Windows) akan menggunakan RAM "kosong" untuk melakukan cache operasi baca / tulis dan membuatnya lebih cepat pada akses berikutnya. Caching operasi copy ke perangkat lambat menghasilkan perilaku yang Anda lihat - "penyelesaian cepat" sebenarnya menulis ke cache, dan kemudian memperlambat dan berhenti karena pembilasan data yang sebenarnya dalam cache (sinkronisasi) ke perangkat lambat adalah butuh waktu lama. Jika Anda membatalkan pada saat itu, data rusak (seperti yang Anda catat) karena sinkronisasi tidak pernah selesai.
Menyalin seperti itu di Windows mungkin tampak lebih cepat (termasuk kecepatan MB / detik yang dilaporkan) karena kadang-kadang Windows tidak akan menunggu sinkronisasi, dan menyatakan pekerjaan selesai segera setelah data dituliskan ke cache.
Alasan 2. Menulis banyak file, terutama yang kecil, lambat
Karena cara kerja memori flash dan sistem file, throughput tercepat (kecepatan) dicapai saat menulis file yang sangat besar. Menulis banyak file kecil, atau bahkan data campuran yang berisi sejumlah file kecil dapat memperlambat proses banyak. Ini mempengaruhi hard drive juga, tetapi pada tingkat yang agak lebih rendah.
Alasan 3. Kecepatan tulis stik USB dan SSD tidak dapat dibandingkan
Variasi USB stick kebun biasanya terdiri dari chip memori flash yang ditulis secara serial (berurutan), dan tidak memiliki cache sendiri.
SSD, di sisi lain, mengandung pengontrol yang menulis paralel chip memori flash , meningkatkan throughput dengan faktor 2 atau lebih di atas stik USB.
Jadi, dengan satu file besar, 32GB GB Anda dengan struktur 4x yang kami asumsikan, akan 4x lebih cepat; dengan banyak file kecil, itu akan 10x atau lebih cepat karena dapat menyimpannya secara cerdas di cache.
Singkatnya , ini adalah alasan mengapa menyalin file ke stik USB mungkin tampak lebih lambat di Linux. Apakah ini sebenarnya lebih lambat karena masalah perangkat keras / driver atau apa pun ....
Melakukan perbandingan kecepatan tulis yang tepat antara Linux dan Windows
dd if=/dev/urandom of=largetest bs=1M count=7500
, yang memberi Anda file tes 7500 MB. Dengan asumsi sistem Anda memiliki kurang dari 4GB RAM, itu cukup baik. Salin itu ke stik Sandisk 8GB yang baru diformat, dan beri waktu.largetest
dari stik USB ke hard disk Anda. Nyalakan kembali (untuk menghapusnya dari cache). Kemudian format stik USB (vfat / FAT32 sama!), Dan salinlargetest
dari hard disk ke stik.sumber
Menemukan perbaikan yang saya lakukan adalah melepas, menghapus drive, dan jalankan
sudo modprobe ehci_hcd
di Terminal. Masukkan drive dan agiansudo modprobe ehci_hcd
ketika saya memasukkan drive dan wow 20 / mbs pikir saya akan berbagi. Semoga aku tidak harus melakukannya setiap saat ... tapi itu tidak sulit ...https://bugs.launchpad.net/ubuntu/+source/linux/+bug/177235 mengatakan mereka memperbaiki bug.
sumber
Saya pikir kemungkinannya sangat rendah bahwa ini adalah masalah pelabuhan. Kemungkinan besar masalah LINUX (atau konfigurasi linux) - lihat-lihat dan Anda akan menemukan ribuan laporan masalah tentang USB lambat di linux / ubuntu. Bagi saya itu hampir menjadi showstopper untuk linux - Saya sekarang memiliki Ubuntu 12,04 LTS dan masih memiliki masalah ini (jadi saya lebih suka menggunakan pengaturan Win7 - terutama / hanya karena ini). Masalah ini (atau sesuatu dengan gejala serupa) sudah ada selama beberapa tahun sekarang, tampaknya tidak ada perbaikan. Dan selama ini saya mencoba beberapa PC fisik dengan beberapa versi ubuntu yang berbeda (konfigurasi default) dan 2-3 USB stick yang berbeda ....
sumber
Hanya
umount
perangkat jika sudah diautomatiskan, dan pasang secara manual ke/mnt/foldername
.Dalam hal ini,
Setelah itu coping dengan sangat cepat.
sumber
rsync
alih - alihcp
tampaknya melakukan trik.Ini tahun 2019 dan saya masih mengalami masalah yang sama. Jadi saya pikir saya mencari solusi di internet. Saya menemukan halaman berikut yang menyarankan satu: https://gist.github.com/2E0PGS/f63544f8abe69acc5caaa54f56efe52f
Ia mengatakan:
Jalankan perintah berikut di konsol untuk melihat apakah itu memperbaiki masalah untuk Anda. Anda mungkin harus
sudo su
terlebih dahulu memiliki izin yang diperlukan.Jika berhasil, Anda dapat membuat perubahan ini terus-menerus di seluruh reboot dengan menempelkan dua baris di akhir
/etc/rc.local
file Anda .Bagi saya itu memiliki efek sebagai berikut:
Sebelum menyalin file besar ke USB drive akan mulai sangat cepat (seperti 60 MB / s) dan menjadi lebih lambat dan lebih lambat (<10 MB / s) sampai sepertinya tidak akan pernah selesai.
Sekarang dimulai lebih lambat, tetapi semakin cepat dan lebih cepat dan selesai lebih cepat dari sebelumnya. Jadi sepertinya "memecahkan" masalah atau setidaknya memiliki efek positif.
sumber
Jika Anda beralih ke USB 3.0, Anda akan beralih dari 1mb / s menjadi 5-8mb / s yang berliku. Saya beralih ke USB 3.0 pci dan HD eksternal dan belum melihat ke belakang.
sumber
Ketika Anda melihat di / etc / mtab, apakah Anda melihat bahwa perangkat telah dipasang dengan opsi "flush"?
Jika demikian, ini bisa menjadi penyebab masalah (itu untuk saya). Lepas saja perangkat dan pasang kembali, itu seharusnya tidak diatur secara default.
sumber
Saya punya beberapa masalah juga dengan laju transfer pada disk eksternal WD, setelah membukanya di windows SO, saya selalu menggunakan LINUX, setelah itu kecepatan transfernya seperti 1,5mb / s daripada saya melepas drive hard drive eksternal yang dijalankan dmesg di sana. mengatakan bahwa sdb1 itu unmounted unmounted, menjalankan fsck, yang membuat beberapa perbaikan dan setelah itu 20mb / s tingkat transfer lagi ketika copiyng dari sda ke disk eksternal. fsck selalu berisiko jika Anda memiliki data, tetapi itu bekerja untuk saya, tanpa kehilangan data.
sumber
Saya juga punya masalah ini, tetapi saya menggunakan perintah cp dan Anda memperbarui stik usb Anda dalam hitungan detik;
Saya pikir ini adalah jawaban yang sangat terlambat tetapi masih terbuka.
sumber
Oke, saya punya masalah yang sama selama tiga hari dan bagaimana saya berhasil membuat cadangan hard drive 1TB saya adalah dengan menggunakan rsync, saya tahu itu digunakan untuk membuat cadangan tetapi menyelesaikan pekerjaan, bahkan ketika mentransfer file besar saya menggunakannya untuk lakukan pekerjaan itu. Jika Anda ingin menggunakannya dengan GUI saya sarankan menginstal Grsync yang merupakan versi grafis rsync karena rsync berjalan di terminal.
Semoga ini bisa membantu
sumber