Архив рубрики: OS X

Как восстановить файлы из корзины на Маке

Даже опытные пользователи Мака иногда ошибаются и делают то, что совсем не планировали. Одна из таких ошибок — случайно отправить в корзину все файлы, найденные Spotlight’ом.

Если вам повезло, и до этого в корзине ничего не было, а все удаленные файлы находились в одной папке, то надо просто зайти в корзину, выделить все и нажать «Put back».

Put backК сожалению, события не всегда складываются настолько удачно, и вы можете оказаться с несколькими сотнями файлов, ранее разбросанных по всему жесткому диску, а теперь печально глядящих на вас из корзины. Восстановить их штатными средствами системы не получится.

Специально для таких случаев я исправил свой старый скрипт, чтобы он мог восстановить максимально возможное число файлов. Логика его работы предельно проста:

  • Сначала попытаться восстановить каждую папку (предполагается, что число вложенных уровней не превышает 50);
  • Затем поместить каждый файл на свое место с помощью команды «Put back».

Так как все это реализовано с помощью интерфейсных команд, то, во-первых, скрипт работает не быстро, а, во-вторых, надо дать ему доступ к управлению компьютером. Для этого нужно добавить приложение «Put all files back» в список разрешенных в разделе Security & Privacy > Privacy.

Privacy

Скачать скрипт можно тут.

Кому интересно, ниже приведен исходный код. Буду рад замечаниям и комментариям.

UPD: Пока что скрипт работает только на англоязычной системе. Вы можете временно изменить язык системы на английский (перетащить английский на первое место в списке в разделе настроек «Язык и регион»), запустить скрипт, а затем вернуть настройки обратно.

Читать далее

Share Button

Как исправить ошибки в архиве TimeMachine

Этот пост основан на вот этой замечательной статье, которая меня не раз выручала.

Что делать если у вас есть NAS (например, Synology, Buffalo или D-Link), и при попытке сделать бэкап система выдает ошибку «Time Machine completed a verification of your backups. To improve reliability, Time Machine must create a new backup for you.»? 

screenshot20120309at746

 

В двух словах, вам нужно:

  1. Исправить ошибки в образе, содержащем бэкап.
  2. Снять пометку о том, что образ не прошел проверку.

1. Исправление ошибок в образе, содержащем бэкап

Сначала нужно подключиться к диску по протоколу afp. Желательно при этом использовать проводное гигабитное подключение, иначе любые действия будут просиходить целую вечность. Не забудьте временно отключить TimeMachine.

Затем откройте Terminal и перейдите в режим администратора, набрав

sudo su -

После этого введите свой пароль.

Т. к. TimeMachine уже пометила образ как плохой, нам нужно снять блокировку изменений. Для этого выполняете команду:

chflags -R nouchg /Volumes/{Название диска}/{Название бэкапа}.sparsebundle

Это займет какое-то время, вплоть до нескольких часов.

По зааершении подключаете диск к системе, введя команду

hdiutil attach -nomount -noverify -noautofsck /Volumes/{Название диска}/{Название бэкапа}.sparsebundle

Вместо того, чтобы печатать путь к образу (/Volumes/{Название диска}/{Название бэкапа}.sparsebundle), можетепросто перетащить образ из Finder в Terminal. Вы увидите примерно следующее:

/dev/diskx Apple_partition_scheme
/dev/diskxs1 Apple_partition_map
/dev/diskxs2 Apple_HFSX

/dev/diskxs2 Apple_HFSX — это и будет название диска, с которым надо работать. Если файловая система содержит ошибки, система может запустить автоматическую проверку. Чтобы узнать, что происходит, выполните команду

tail -f /var/log/fsck_hfs.log

Если идет проверка, дожитесь ее завершения. Чтобы выйти из команды tail, нажмите Ctrl + C.

После этого запустите принудительное исправление ошибок. Не забудьте заменть «X» в названии диска на номер, который выдала программа hdiutil.

fsck_hfs -drfy /dev/diskxs2

Ключи -drfy означают следующее: d — показывать дополнительную информацию (Debug), r — перестроить дерево каталогов (Rebuild catalog tree), f — принудительное исправление (Force), y — автоматически отвечать «Да» на запросы (Yes).

Выполнение команды займет несколько часов, после успешного окончания можно будет видеть:

‘The Volume was repaired successfully’

После этого надо отключить образ.

hdiutil detach /dev/diskxs2

Все вышеперечисленное можно делать на любом образе TimeMachine, в т. ч. подключив внешний бэкап-диск напрямую к компьютеру.

 2. Снятие пометки о том, что образ не прошел проверку

Нажмите в Finder правой клавишей на образ и выберите «Показать содержимое». В нем вы увидите файл «com.apple.TimeMachine.MachineID.plist» — это и есть файл настроек образа. Откройте его в любом текстовом редакторе и удалите строчки:

<key>RecoveryBackupDeclinedDate</key>
 <date>{дата неудачного бэкапа}</date>

После этого укажите, что образ прошел проверку. Для этого замените строчки

<key>VerificationState</key>
 <integer>2</integer>

на

<key>VerificationState</key>
 <integer>0</integer>

Вот и все. Сохраняете текстовый файл, вновь запускаете TimeMachine и наслаждаетесь продолжением истории бэкапов.

Share Button