Gnome, menyalin file nautilus ke USB berhenti pada 100% atau dekat

29

Saya memiliki masalah serupa sebelumnya tetapi saya tidak ingat bagaimana saya menyelesaikannya.

Ketika saya mencoba menyalin sesuatu ke USB stick, dengan FAT, berhenti di akhir, kadang-kadang 100%. Dan tentu saja, ketika saya mentransfer memory stick di tempat lain, itu tidak mengandung file lengkap. (file adalah film!)

Saya mencoba me-mount perangkat dengan mount -o flush, tetapi saya mendapatkan masalah yang sama.

Juga, saya memformat USB stick dengan partisi FAT baru ...

Ada ide apa yang dingin saya lakukan?

ps Saya percaya itu tidak terkait dengan OS, yaitu Debian, dan saya percaya bahwa mengatasi dari drive SSD tidak membuatnya macet.


sumber
3
Di suatu tempat saya telah bertemu dengan penjelasan soal berikut. Dalam hal penyalinan dilakukan melalui memori operasi, dan idicator menunjukkan proses membaca data dari drive. Tetapi proses penulisan jauh lebih lama terutama untuk USB-stick (bisa 100 kali lambat: seperti 2Mb / detik membaca 200Mb / detik membaca misalnya) dan lebih dari itu jika Anda menggunakan sistem file asli seperti FAT atau NTFS di linux . Jadi cobalah untuk menunggu akhir transaksi walaupun dihentikan pada 100% tetapi jangan ditutup (yang seharusnya mengindikasikan selesai).
Costas
hanya ingin tahu apakah mungkin sama sekali untuk memeriksa kemajuan dalam situasi itu ???
cobalah untuk memformat flashdisk dengan opsi menimpa data yang ada dengan angka nol Ini berfungsi pada flashdisk My trancend 8GB
Akshay Daundkar
Bagi siapa saja yang menemukan masalah ini, cukup format drive Anda ke NTFS.
Ricky Boyce

Jawaban:

37

Alasan mengapa hal itu terjadi adalah karena program mengatakan "tulis data ini" dan kernel linux menyalinnya ke buffer memori yang di-antri untuk masuk ke disk, dan kemudian berkata "ok, selesai". Jadi program itu berpikir telah menyalin semuanya. Kemudian program menutup file, tetapi tiba-tiba kernel membuatnya menunggu sementara buffer itu didorong ke disk.

Jadi, sayangnya program tidak dapat memberi tahu Anda berapa lama waktu yang diperlukan untuk mem-flush buffer karena tidak tahu.

Jika Anda ingin mencoba beberapa trik pengguna daya, Anda dapat mengurangi ukuran buffer yang digunakan Linux dengan mengatur parameter kernel vm.dirty_byteske sesuatu seperti 15000000(15 MB). Ini berarti aplikasi tidak bisa mendapatkan lebih dari 15MB di atas kemajuan sebenarnya. (Anda dapat mengubah parameter kernel dengan cepat sudo sysctl vm.dirty_bytes=15000000tetapi membuat mereka tetap di reboot membutuhkan perubahan file konfigurasi seperti /etc/sysctl.confyang mungkin khusus untuk distro Anda.)

Efek sampingnya adalah komputer Anda mungkin memiliki throughput penulisan data yang lebih rendah dengan pengaturan ini, tetapi secara keseluruhan, saya merasa terbantu melihat bahwa suatu program berjalan lama sementara ia menulis banyak data vs. kebingungan memiliki Program tampaknya selesai dengan tugasnya tetapi sistem tertinggal dengan buruk karena kernel melakukan pekerjaan yang sebenarnya. Menetapkan dirty_byteske nilai yang cukup kecil juga dapat membantu mencegah sistem Anda menjadi tidak responsif ketika Anda kehabisan memori kosong dan menjalankan program yang tiba-tiba menulis banyak data.

Tapi, jangan terlalu kecil! Saya menggunakan 15MB sebagai perkiraan kasar bahwa kernel dapat menyiram buffer ke hard drive normal dalam 1/4 detik atau kurang. Itu membuat sistem saya tidak merasa "lamban".

kebinasaan
sumber
Saya sedang mencari perbaikan untuk masalah ini selama satu tahun atau lebih, saya pikir itu hanya bug di linux. Terima kasih banyak.
Sidahmed
1
Linux noob di sini, bisakah seseorang memposting cara mengubah nilai <dirty_bytes>?
Brofessor
@ Profesor Oh, maaf, saya seharusnya menggambarkannya dengan nama resmi dan bukan / rincian proc. Jawaban diperbarui.
dataless
1
Ini mirip dengan unix.stackexchange.com/questions/107703/... --- seharusnya sudah diperbaiki, tapi percayalah, tidak. Saya harus menambahkannya ke Ubuntu 18.04 untuk berhenti bersikap lucu ...
Rmano
Bekerja pada Fedora 30 juga. Saya terkejut melihat perilaku bodoh seperti itu bahkan di distro Linux modern.
sziraqui
0

Pertanyaan lama, tetapi sepertinya masalahnya masih muncul. Mengatur buffer ke 15MB seperti yang disarankan sini tidak bekerja pada Ubuntu 19.04, dan menghentikan sistem saya.

Saya mencoba untuk menyalin file 1,5GB ke drive FAT32 16GB kosong (baru diformat). Saya membiarkannya berjalan sekitar 10 menit hanya untuk melihat apakah itu akan selesai, tanpa hasil.

Memformat ulang ke NTFS membiarkan operasi selesai dalam waktu kurang dari 10 detik. Saya tidak tahu mengapa ini penting karena FAT32 harus memungkinkan apa pun di bawah 2GB, tetapi tampaknya berfungsi dengan baik. Bukan perbaikan yang ideal untuk drive yang ingin Anda gunakan dengan MacOS, tetapi solusi yang mudah untuk semua kasus penggunaan lainnya. Saya membayangkan exFAT akan bekerja dengan cara yang sama, tetapi saya tidak mengujinya.

Jacob Jones
sumber