Hoạt động rsync không được phép


9

Tôi đang cố gắng để một rsync đơn giản vào một đĩa cứng USB, lệnh là

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

Tôi đang chạy này là root.

nhưng tôi nhận được rất nhiều lỗi mà tất cả dường như liên quan đến việc không đủ quyền:

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]

Đây là phiên bản 3.0.7. Tôi đã thử sử dụng tùy chọn --super để không có hiệu lực. Có ý kiến ​​gì không?


Hệ thống tập tin trên đĩa USB là gì?
Caleb

Đĩa bên ngoài có được định dạng là FAT (32) không? Điều đó sẽ không hoạt động vì FAT không biết thuộc tính sở hữu tệp.
Sven

@Caleb Tôi đoán rằng đó là FAT, mặc dù vậy tôi phải nói thế nào?
Tim the Enchanter

Chạy mount | grep /mnt/exthdnên nói với bạn.
Caleb

@Caleb nói vfat
Tim the Enchanter

Câu trả lời:


14

Hệ thống tệp FAT (mà mount của Linux gọi là vfat) không thể lưu trữ một số dữ liệu về quyền và quyền được lưu trữ về các tệp của bạn về phía Linux.

Các tùy chọn của bạn dường như là:

  • Định dạng đĩa với ext3 / 4 hoặc một số hệ thống tệp khác hỗ trợ các thuộc tính này. Tôi nghĩ thậm chí NTFS sẽ thực hiện công việc nếu bạn đang chia sẻ với Windows.
  • Lưu trữ các thuộc tính bổ sung đó bằng cách sử dụng --fake-supertùy chọn để rsync ghi xattrs trong tệp thay vì sử dụng các thuộc tính hệ thống tệp
  • Bỏ qua lỗi, những thuộc tính đó sẽ bị mất.
  • Gói dữ liệu của bạn trong một tệp tar và đặt tệp tar trên hệ thống FAT. Tất cả các thuộc tính được duy trì và sẽ có mặt nếu bạn giải nén nó.

--fake-super cũng không hoạt động, mặc dù lỗi thay đổi từ Hoạt động không được phép (1) sang Hoạt động không được hỗ trợ (95)
Tim the Enchanter

Hừm. Bạn có thể sử dụng --no-ownerđể không cố gắng đặt chủ sở hữu phù hợp. (FAT không có tài sản chủ sở hữu) và có thể --no-permslà tốt.
Caleb

cảm ơn sự giúp đỡ của bạn, thực sự tốt, vẫn không hoạt động mặc dù lỗi đã thay đổi một lần nữa, mỗi dòng lỗi hiện có rsync: failed to write xattr user.rsync.%statngay từ đầu.
Tim the Enchanter

3

Rsync đang thử một hoạt động (chown và symlink) mà hệ thống tập tin không cho phép hoặc không thể thực hiện. Tôi đoán HD bên ngoài của bạn có hệ thống tập tin FAT.

Nếu bạn muốn tạo một bản sao lưu thích hợp, bạn có thể muốn sử dụng tar.


1
Hoặc một hệ thống tập tin phong nha.
womble

FAT giống như một kho lưu trữ tệp, không phải hệ thống tệp. :-)
Janne Pikkarainen

Cá nhân - tôi ghét rsync. Tôi đã thấy quá nhiều lỗi thuộc các loại khác nhau khi sử dụng nó để sao chép các tệp và thư mục từ MAC sang chia sẻ mạng trên bộ định tuyến sử dụng hệ thống tệp NFS. Tôi cũng đã phải định dạng lại ổ đĩa đó nhiều lần vì rsync đã tạo các tệp bị khóa và không thể xóa được. Lý do tôi tiếp tục cố gắng sử dụng rsync vs cp là vì nó hỗ trợ loại trừ các bộ lọc và nó được cho là nhanh hơn. Cuối cùng, tôi đã viết một vài lớp Java rất đơn giản - Copy.java và CopyJob.java, một Runnable để hỗ trợ đa luồng và thêm hỗ trợ cho các bộ lọc ... :)
jrobertsz66
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.