Bagaimana saya bisa menggunakan rsync dengan sistem file FAT?

27

Saya ingin menulis skrip cadangan sederhana yang menyimpan beberapa data ke drive FAT. Haruskah saya memformat ulang drive dan menggunakan sistem file yang lebih baik atau apakah mungkin menggunakan rsync dengan FAT? Jika demikian, masalah apa yang mungkin saya hadapi? Apakah kinerja akan jauh lebih buruk?

EDIT: Ini di linux, bahkan tidak tahu ada rsync untuk windows. Sumbernya adalah berbagai sistem file (berantakan), dan tujuan saat ini diformat dengan FAT32.

Terima kasih atas jawaban Anda, saya mungkin akan memformat ulang, karena saya tidak sepenuhnya yakin tentang ukuran file yang akan kami miliki.

Kim
sumber

Jawaban:

10

Saya akan merekomendasikan memformat ulang ke linux fs jika Anda bisa. Seperti disebutkan, FAT memiliki batas ukuran file yang relatif rendah dan mungkin tidak menangani izin dan kepemilikan dengan benar. Lebih penting lagi, FAT tidak melacak waktu modifikasi pada file setepat, katakan ext3 (FAT hanya tepat dalam jendela 2 detik). Hal ini menyebabkan perilaku yang sangat tidak menyenangkan dengan rsync karena kadang-kadang akan memutuskan bahwa file asli lebih baru atau lebih lama dari file cadangan dengan cukup sehingga perlu menyalin ulang data atau setidaknya memeriksa ulang hash. Semua dalam semua, itu membuat kinerja cadangan sangat buruk. Jika Anda harus tetap menggunakan FAT, lihat flag --size-only dan --modify-window rsync sebagai solusi.

thraxil
sumber
36

Saya menggunakan rsync untuk membuat cadangan foto yang saya simpan dan proses di laptop yang menjalankan Linux (Ubuntu 10.4). Saya mencadangkannya ke NAS yang sangat dasar dengan hard disk 1TB yang diformat sebagai FAT32. Kasing NAS dan firmware sangat mendasar, sehingga tidak memungkinkan untuk memformat ulang drive.

Perintah yang saya gunakan adalah:

$ rsync --progress --modify-window=1 --update --recursive --times \
  /home/mloskot/Pictures /mnt/nas/Pictures

Untuk memungkinkan perbandingan waktu yang benar --modify-window = 1 opsi digunakan, karena FAT32 mencatat cap waktu file dengan resolusi 2 detik yang berbeda dengan sistem file yang digunakan di Linux. - Pembaruan untuk menghindari penyalinan yang tidak perlu dari file yang ada - berperilaku seperti cadangan tambahan.

Untuk melakukan perbandingan berbasis ukuran, Anda dapat menentukan opsi --size-only.

mloskot
sumber
Terima kasih telah berbagi, saya akan memeriksa kombinasi bendera Anda :-) Manual rsync agak besar ...
DutchUncle
3
--modify-window = 1 membuat perbedaan besar. Ini memecahkan - saya sekarang selesai dalam milidetik, bukan menit.
Wolfgang Fahl
4
Untuk beberapa alasan saya perlu menggunakan --modify-window=2. Saat menggunakannya 1masih menyalin semua file. Menyalin dari NTFS ke FAT32.
Luc
Kadang-kadang, bahkan dengan --modify-window, rsync akan bersikeras menyalin semua file saya. Saya menggunakan --size-onlyopsi sekarang dan itu berfungsi ok. Itu dari Mac OS Extended (Case-sensitive, Journaled) hingga FAT32.
diachedelic
Mungkin ide yang baik untuk menambahkan '--ignore-errors --max-size = 4GB' untuk menghindari crash pada file yang tidak sesuai dengan FAT32.
Maksym
2

Apakah rsync ini di linux ke / dari disk FAT (versi FAT?) Atau Anda menggunakan cwRsync versi Windows?

Either way FAT16 dan 32 bekerja dengan kedua versi (belum mencoba FAT12 sendiri). Jika Anda menggunakan sistem linux, saya berharap kinerja dari sistem file FAT menjadi sedikit lebih buruk daripada menggunakan sistem file format-linux seperti pada umumnya mereka sedikit lebih lambat (senang seseorang menempatkan saya tepat pada yang satu ini jika saya salah).

Chopper3
sumber
1

Ya memformat ulang! Anda harus selalu menggunakan sistem file yang lebih baik daripada FAT kecuali Anda harus karena alasan kompatibilitas!

Saya sarankan Anda memformat drive menggunakan sistem file yang sama dengan yang Anda rsyncing dari yang lain, Anda berpotensi kehilangan izin dan atribut yang ditetapkan pada file dan direktori Anda.

FAT (mungkin FAT32) dapat menjadi masalah karena ukuran file maksimum (4GB), ukuran volume maksimum (2TB - toh satu hari!), Fragmentasi dll.

Namun jika tidak ada yang penting dan Anda hanya ingin sistem file yang kompatibel sederhana, cepat & maksimal maka FAT akan baik-baik saja. Kecepatan bijaksana, karena kurangnya penjurnalan, izin dll, FAT mungkin dapat melakukan alternatif - NTFS / Ext3 / HFS ...

Jon Rhoades
sumber
1

Apakah ada alasan Anda menggunakan drive FAT? Rsync seharusnya berfungsi untuk menyimpan data, tetapi Anda akan kehilangan meta informasi tentang file ... kepemilikan, izin, dll ... dan Anda berisiko mengalami masalah jika Anda pernah melakukan rsync file besar karena FAT memiliki batas ukuran file 2 gig.

Kinerja yang tidak dapat saya komentari, saya tidak pernah menjalankan benchmark dibandingkan dengan yang lain. Saya membayangkan itu juga ada banyak hubungannya dengan spesifikasi drive sendiri serta sistem file dalam hal itu.

Jika Anda bisa , saya akan memformat ulang ke format asli yang Anda rencanakan untuk digunakan dengan komputer (OS X? Linux?), Jika tidak lain dari menyimpan metadata dan kehilangan tamparan dahi dalam beberapa bulan ketika saya mengakhiri menyinkronkan sesuatu yang kesalahan karena keterbatasan sistem file. sering berbagi dengan sistem lain dapat dilakukan melalui berbagi ekspor atau jika Anda menggunakan NTFS Anda dapat menyimpan beberapa metadata tetapi masih mendapatkan sebagian besar kompatibilitas lintas-sistem karena Mac, NT, dan Linux semuanya mendukung kemampuan NTFS R / W sekarang.

Bart Silverstrim
sumber