Обращаюсь ко всем экспертам по OS X.
Я скопировал два диска по 1 ТБ (бывшие Windows) на новый диск USB 3.0 объемом 2 ТБ с помощью Finder на Mac (OS X 10.9). Диск объемом 2 ТБ теперь заполнен примерно на 90%.
Теперь я хочу скопировать этот диск 2Tb на другой диск 2Tb с помощью Mac, однако он продолжает утверждать, что около 40% файлов заняты. Ни один из файлов на диске 2Tb никогда не открывался ни в одном приложении, кроме этой попытки скопировать файлы.
Я пробовал копировать 2Tb на 2Tb с помощью Finder, который, как только нашел 1 занятый файл, просто прекратил копирование. Не особо полезно. Я пробовал использовать вид значков, вид списка и вид столбцов.
Затем я переключился на Терминал, используя cp -RXvn, а затем просто -cp RXn. Оба смогли скопировать около 60% файлов.
Я пробовал отмонтировать оба диска, перезагрузить и переформатировать второй диск. Я пробовал все три, прежде чем снова попытаться, и каждый раз получал около 1,34 ТБ. Я пробовал несколько раз и заметил, что проблема не всегда в одних и тех же файлах, хотя трудно сказать, когда файлов тысячи.
Вот что я получаю:
cp -RXn "/Volumes/USBdrive 1/" "/Volumes/USBdrive 2"
cp: /Volumes/USBdrive 1/My photos/USA trip/image 1472.png: Resource busy
cp: /Volumes/USBdrive 1/My photos/USA trip/image 1483.png: Resource busy
cp: /Volumes/USBdrive 1/Our holiday/Rome/tour map 2014.pdf: Resource busy
Я новичок в OS X, поэтому не понимаю, как файл оказался в состоянии занятости, или что с этим делать. Мне не кажется разумным не копировать файл, даже если он в любом случае используется (Windows бы так сделал).
Может кто-нибудь подсказать, как обойти это и перенести все файлы с одного диска на другой? Нужно ли мне сначала найти способ, чтобы ресурс не считался занятым, и если да, то как?
решение1
ОБНОВЛЕНИЕ: Думаю, я понял, как это можно исправить.
Попробуйте это из терминала:
cd <drag and drop the volume you want to copy here>
Теперь сделайте:
lsof +D <drag and drop the volume you want to copy here> | grep <drag and drop the volume you want to copy here>
Эта команда покажет вам все открытые файлы на этом томе. Вы увидите имя приложения, которое удерживает файл. Допустим, ради аргумента, что это Finder
.
Теперь введите (только убедитесь, что вы закрыли все свои приложения, чтобы быть уверенным):
killall Finder
Теперь запустите lsof
команду снова, и вы больше не должны видеть эти файлы. Теперь вы сможете их скопировать.
Надеюсь, это сработает.
Предыдущий пост
Введите .Terminal
env
Посмотрите, где написано, USER=
и скопируйте это имя в точности.
Теперь мы изменим владельца всех файлов на диске, просто убедитесь, что вы смонтированы на диске, который хотите скопировать, а не на системном диске. Смонтируйте корневой каталог диска, который хотите скопировать, и введите:
sudo chown -fhRL [owner]
Для того, где написано [owner]
, введите имя пользователя сверху. Вам будет предложено ввести пароль, потому что мы добавили, sudo
что такое Super User.
Если он выходит со статусом 0
, то ошибок не было. Если вы получаете код выхода > 0
, то вы можете убрать f и вы увидите все диагностические сообщения.
Далее мы изменим права доступа к файлам. Введите:
sudo chmod -fhRL u=rwx
u - пользователь r - чтение w - запись x - выполнение Опять же, если произошла ошибка, статус выхода будет больше, чем 0
Далее мы изменим флаги:
sudo chflags -fhRL nouchg
sudo chflags -fhRL noschg
Теперь вернитесь к команде копирования и для верности добавьте sudo
перед ней , и, надеюсь, это решит проблему.
решение2
Я дал баллы тем, кому я могу их дать, потому что информация была хорошей. Коренной причиной моей проблемы был неисправный HDD.
После покупки нового диска на 2 ТБ мне удалось перенести данные с помощью команд, приведенных в ответах здесь.
Еще раз спасибо тем, кто оказал помощь.