rsync "Операція не дозволена"


9

Я намагаюся настільки простий rsync на жорсткий диск USB, команда така

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

Я запускаю це як корінь.

але я отримую багато помилок, які, як видається, стосуються недостатнього дозволу:

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]

Це версія 3.0.7. Я спробував використовувати варіант --super безрезультатно. Будь-які ідеї?


Що таке файлова система на USB-диску?
Калеб

Чи форматовано зовнішній диск у вигляді FAT (32)? Це не працює, оскільки FAT не знає атрибутів власності на файли.
Свен

@Caleb Я б здогадався, що це FAT, хоча як це сказати?
Тім Чарівник

Біг mount | grep /mnt/exthdповинен вам сказати.
Калеб

@Caleb каже vfat
Тім Чарівник

Відповіді:


14

Файлова система FAT (яку монтує Linux закликає vfat) не в змозі зберігати деякі дані дозволу та права власності, які зберігаються про ваші файли на стороні Linux.

Ваші варіанти, здається, такі:

  • Відформатуйте диск за допомогою ext3 / 4 або іншої файлової системи, яка підтримує ці атрибути. Я думаю, що навіть NTFS зробить цю роботу, якщо ви ділитесь з Windows.
  • Зберігайте ці додаткові властивості за допомогою --fake-superпараметра, щоб rsync записував xattrs у файл, а не використовував атрибути файлової системи
  • Ігноруючи помилку, ці властивості просто втратяться.
  • Загорніть набір даних у файл смоли та покладіть файл tar на систему FAT. Усі атрибути зберігаються і будуть присутніми, якщо ви коли-небудь видобуваєте їх.

--fake-super також не працює, хоча помилка змінюється з Операція не дозволена (1) на Операція не підтримується (95)
Тим чарувачем

Гм. Ви можете використовувати, --no-ownerщоб не намагатися встановити власника на збіг. (FAT не має власності власника) і можливо --no-perms.
Калеб

дякую за вашу допомогу, дуже добре, все ще не працює, хоча помилка знову змінилася, кожен рядок помилки тепер є rsync: failed to write xattr user.rsync.%statна початку.
Тім Чарівник

3

Rsync намагається виконати операцію (chown та symlink), яку файлова система не дозволяє або не може виконати. Я здогадуюсь, що ваш зовнішній HD має файлову систему FAT.

Якщо ви хочете зробити правильну резервну копію, можливо, ви бажаєте скористатися дьогтем.


1
Або гідна файлова система.
живіт

FAT більше схожий на сховище файлів, а не на файлову систему. :-)
Janne Pikkarainen

Особисто я ненавиджу rsync. Я бачив занадто багато помилок різних типів, коли використовував його для копіювання файлів і каталогів з мого MAC в мережеву спільну частину мого маршрутизатора, яка використовує файлову систему NFS. Мені також довелося переформатувати цей диск декілька разів, оскільки rsync створював файли, які були заблоковані та неможливо видалити. Причиною, що я намагався використовувати rsync vs cp, було те, що він підтримує виключення фільтрів, і він повинен бути швидшим. Врешті-решт я написав пару дуже простих Java-класів - Copy.java та CopyJob.java, який є Runnable для підтримки багатопотокової передачі та додав підтримку фільтрів ... :)
jrobertsz66
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.