rsync "Operasi tidak diizinkan"

9

Saya mencoba jadi rsync sederhana ke hard disk USB, perintahnya adalah

rsync -az --modify-window=2 /home /mnt/exthd/tmp/

Saya menjalankan ini sebagai root.

tapi saya mendapatkan banyak kesalahan yang sepertinya berhubungan dengan izin yang tidak mencukupi:

rsync: chown "/mnt/exthd/tmp/home/someuser" failed: Operation not permitted (1)
rsync: chown "/mnt/exthd/tmp/home/someuser/.bash_logout" failed: Operation not permitted (1)
rsync: chown "/mnt/exthd/tmp/home/someuser/.bash_profile" failed: Operation not permitted (1)
rsync: chown "/mnt/exthd/tmp/home/someuser/.bashrc" failed: Operation not permitted (1)
rsync: chown "/mnt/exthd/tmp/home/guest" failed: Operation not permitted (1)
rsync: chown "/mnt/exthd/tmp/home/guest/.bash_logout" failed: Operation not permitted (1)
rsync: chown "/mnt/exthd/tmp/home/guest/.bash_profile" failed: Operation not permitted (1)
rsync: chown "/mnt/exthd/tmp/home/guest/.bashrc" failed: Operation not permitted (1)
rsync: symlink "/mnt/exthd/tmp/home/guest/fred2" -> "fred" failed: Operation not permitted (1)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1042) [sender=3.0.7]

Ini adalah versi 3.0.7. Saya telah mencoba menggunakan opsi --super tanpa efek. Ada ide?

Tim sang Enchanter
sumber
Apa sistem file pada disk USB?
Caleb
Apakah disk eksternal diformat sebagai FAT (32)? Itu tidak akan berfungsi karena FAT tidak tahu atribut kepemilikan file.
Sven
@ Caleb Saya akan menebak bahwa itu FAT, meskipun bagaimana saya tahu?
Tim the Enchanter
Berlari mount | grep /mnt/exthdseharusnya memberitahu Anda.
Caleb
@Caleb is vfat
Tim the Enchanter

Jawaban:

14

Sistem file FAT (yang oleh Linux disebut sebagai vfat) tidak dapat menyimpan sebagian data izin dan kepemilikan yang disimpan tentang file Anda di sisi Linux.

Pilihan Anda tampaknya:

  • Format disk dengan ext3 / 4 atau sistem file lain yang mendukung atribut ini. Saya pikir bahkan NTFS akan melakukan pekerjaan jika Anda berbagi dengan Windows.
  • Simpan properti ekstra tersebut menggunakan --fake-superopsi sehingga rsync menulis xattrs dalam file alih-alih menggunakan atribut sistem file
  • Abaikan kesalahan, properti-properti itu hanya akan hilang.
  • Bungkus set data Anda dalam file tar dan letakkan file tar pada sistem FAT. Semua atribut dipertahankan dan akan ada jika Anda mengekstraknya.
Caleb
sumber
--fake-super tidak berfungsi, meskipun perubahan kesalahan dari Operasi tidak diizinkan (1) ke Operasi tidak didukung (95)
Tim the Enchanter
Hm Anda dapat menggunakan --no-owneruntuk tidak mencoba mengatur pemilik agar cocok. (FAT tidak memiliki properti pemilik) dan mungkin --no-permsjuga.
Caleb
terima kasih atas bantuan Anda, sangat bagus, masih tidak berfungsi meskipun kesalahan telah berubah lagi, setiap baris kesalahan sekarang ada rsync: failed to write xattr user.rsync.%statdi awal.
Tim the Enchanter
3

Rsync sedang mencoba operasi (chown dan symlink) yang tidak diizinkan oleh filesystem, atau tidak dapat dijalankan. Saya menduga HD eksternal Anda memiliki sistem file FAT.

Jika Anda ingin membuat cadangan yang tepat, Anda mungkin ingin menggunakan tar.

Sgaduuw
sumber
1
Atau sistem file yang layak.
womble
FAT lebih seperti repositori file, bukan filesystem. :-)
Janne Pikkarainen
Secara pribadi - saya benci rsync. Saya telah melihat terlalu banyak kesalahan dari berbagai jenis ketika menggunakannya untuk menyalin file dan direktori dari MAC saya ke jaringan berbagi di router saya yang menggunakan sistem file NFS. Saya juga harus memformat ulang drive itu beberapa kali karena rsync membuat file yang dikunci dan tidak dapat dihapus. Alasan saya terus mencoba menggunakan rsync vs cp adalah ia mendukung filter yang dikecualikan dan seharusnya lebih cepat. Pada akhirnya, saya menulis beberapa kelas Java yang sangat sederhana - Copy.java dan CopyJob.java yang merupakan Runnable untuk mendukung multi-threading dan menambahkan dukungan untuk filter ... :)
jrobertsz66