Как я могу вернуть системный файл после удаления его с моего Mac?

17

Я удалил системный файл с моего Mac, и мне нужно его вернуть.

Системные файлы могут включать в себя:

  • скрытые файлы в корне / - особенно файлы unix в / private
  • / Системные файлы
  • / Библиотечные файлы
  • / Файлы приложений, которые поставляются с основной ОС

Системные файлы - это не какие-либо приложения, пользовательские файлы или файлы, которые могут быть восстановлены с помощью известной последовательности, такой как файлы кэша, индексные файлы Spotlight и т. Д.


Канонический вопрос и ответ на этот комментарий от bmike ♦ .

Grg
источник
1
/ private нужен отдельный ответ - см. один для / private / var / folder - / private / tmp не нуждается в восстановлении
user151019

Ответы:

22

Если у вас последний Mac, то у него есть раздел восстановления .

Включите ваш Mac и удерживайте Command+, Rпока не появится логотип Apple. Это приведет к загрузке вашего Mac с использованием раздела восстановления.

Попав в раздел восстановления, вы можете переустановить операционную систему.

Эта техническая заметка Apple, OS X: О OS X Recovery , дает более подробную информацию.

Вы можете переустановить ОС и оставить ваши файлы без изменений. Apple удалила опцию удаления / установки, чтобы вам не пришлось беспокоиться о том, что установщик восстановления удалит ваши файлы. Теперь вам нужно явно запустить утилиту Disk Utility, чтобы стереть или переформатировать / переразбить диск при загрузке из операционной системы восстановления.

Тони Уильямс
источник
11

Если вы уверены, что ваш Recovery HD исправлен для соответствия ОС в вашей основной системе, вы можете поймать файл и посмотреть, работает ли он без необходимости полной переустановки ОС.

Удерживайте -R во время запуска, пока не увидите окно, похожее на это:

введите описание изображения здесь

Это ваши варианты:

  1. Выберите «Утилиты»> «Терминал»:

    введите описание изображения здесь

    Ваш диск OS X будет установлен в /Volumes/<your disk name>. Например, на моем Mac он был установлен в /Volumes/Mavericks:

    df
    Filesystem     1K-blocks      Used Available Use% Mounted on
    /dev/disk0s2   249219484 145891460 103072024  59% /Volumes/Mavericks
    

    Теперь скопируйте /binна диск OS X:

    cp -a /bin /Volumes/<your disk name>
    

    Обратите внимание, что содержимое /binбудет устаревшим , поскольку диск восстановления не обновляется вместе с остальной частью ОС, поэтому восстанавливайте /binс Time Machine после успешного запуска Mac и входа в систему.

Жауме
источник
2
все ответы должны быть такими подробными, как этот :) +1
Ruskes
Disk Utility Repair Disk позволяет сканировать и устранять потенциальные проблемы с файловой системой. Это никак не влияет на восстановление потерянных данных любого рода. Ваш ответ потрясающий, но, к сожалению, неверный. Запрашивающему придется восстановить OS X (они могут использовать Internet Recovery, как вы указали в начале вашего ответа).
@cksum Спасибо за указание на это, я подумал, что стоит попробовать, поэтому я назвал его последним из трех вариантов. Что касается вашего утверждения о том, что OP нуждается в восстановлении OS X, я не думаю, что это будет необходимо. Первый вариант, который я предоставляю, должен сделать это, я проверил это.
Jaume
4
Копирование содержимого / bin не является идеальным, поскольку оно может не переносить ACL и соответствующие разрешения (Восстановление разрешений с помощью Дисковой утилиты может исправить некоторые из них). Это может также не содержать правильные версии (поскольку некоторые, возможно, были обновлены). Можете ли вы заверить, что они контролируются? Кроме того, это может показаться кувалдой для подхода «на лету», но простая переустановка OS X, вероятно, является наиболее идеальным решением. Наименее вероятно, приведет к дальнейшим проблемам.
Дисковая утилита @cksum исправит разрешения, но я согласен с вашей другой точкой зрения: я установил Recovery HD, проверил включенные версии com.apple.recovery.boot/BaseSystem.dmgи, да, некоторые из них устарели bash. Я отредактировал свой ответ, чтобы отразить это, и удалил третий вариант после проверки того, что Дисковая утилита действительно не восстанавливает файлы, как вы сказали в своем предыдущем комментарии.
Jaume
11

Если вы не возражаете или уверены, что ваш Recovery HD пропатчен для соответствия ОС в вашей основной системе, вы можете поймать файл и посмотреть, работает ли он без необходимости полной переустановки ОС и без необходимости перезапуска или подключение к интернету / сохраненный установщик.

Используйте раздел восстановления

Многие 1 системные файлы, также включены в раздел восстановления и могут быть скопированы.

  1. Смонтировать Recovery HD

    diskutil mount Recovery\ HD
    
  2. Смонтируйте BaseSystem.dmg

    hdiutil mount /Volumes/Recovery\ HD/com.apple.recovery.boot/BaseSystem.dmg
    
  3. Скопируйте файл

    FILE="/usr/bin/codesign"
    sudo cp -p /Volumes/OS\ X\ Base\ System/${FILE} ${FILE}
    

Этот процесс можно объединить в однострочную команду, если вам приходится часто ее запускать…

FILE="/usr/bin/codesign"; diskutil mount Recovery\ HD && hdiutil mount /Volumes/Recovery\ HD/com.apple.recovery.boot/BaseSystem.dmg && sudo cp -p /Volumes/OS\ X\ Base\ System/${FILE} ${FILE}

Даже если вы удалили cpBinary (что может произойти), есть /usr/bin/ditto, /usr/bin/tarи несколько других команд , которые могут стоять в течение cp.

Переустановите OS X

Если у вас есть возможность переустановить OS X через Recovery HD, Internet Recovery или установочный носитель OS X, то переустановка OS X восстановит вашу установку и скопирует все отсутствующие / сломанные системные файлы обратно в вашу систему.


Я рекомендую вам выполнить восстановление разрешений с помощью Дисковой утилиты после копирования файла вручную и последующей перезагрузки. Если исправление сработает, сейчас будет отличное время для другого снимка резервной копии.

1 Не все системные файлы находятся на Recovery HD, но многие есть. Если команда копирования не работает, убедитесь, что файл существует на Recovery HD.

Grg
источник
4
При копировании из Recovery OS: осторожно ! Обычно версия OS Recovery не совпадает с версией OS X. Например: установка OS X 10.9 с обновлением до 10.9.2 будет ограничена Recovery OS 10.9 (с уязвимостью SSL и т. Д.) ,
Грэм Перрин
2
У @GrahamPerrin есть несколько мудрых слов - я отредактировал предупреждение, и большинство людей, которым не безразличен терминал, могут оценить риски копирования файлов более низкого уровня с HD восстановления, которые могут быть не полностью исправлены. Однако следует помнить, что экономия времени на переустановку может иметь последствия, если вы часто используете этот прием или для критически важной части системы - с точки зрения надежности или безопасности.
bmike
После того, как убедиться, что все обновления, я бы сделал обновление программного обеспечения с помощью комбинированного обновления
user151019
В APFS файл BaseSystem.dmg не находится в одном месте. Не уверен, если нам нужен новый вопрос или редактирование здесь, чтобы перейти к другому пути или хотя бы комментарий, какие версии MacOS работает этот удивительный трюк.
bmike
6

Существует решение, которое требует подключения к Интернету.

OS X Recovery

Модели Mac, представленные после Mac OS X 10.7, Lion, включают возможность запуска непосредственно из интернет-версии системы OS X Recovery .

OS X автоматически использует эту функцию, когда система восстановления на жестком диске недоступна (например, когда ваш жесткий диск сталкивается с проблемой или когда ваш жесткий диск был заменен или удален). OS X Internet Recovery позволяет запускать ваш Mac напрямую с серверов Apple. При запуске из этой системы выполняется быстрая проверка вашей памяти и жесткого диска на наличие аппаратных проблем.

Поэтому я предлагаю вам подключить кабель Ethernet, так как Wi-Fi, вероятно, не будет работать, и выбрать вариант загрузки из Интернета, если появится список параметров и у вас есть правильная версия.

Восстановление приложений iLife после интернет-восстановления OS X

Если на вашем компьютере установлена ​​операционная система Lion OS X или более поздней версии, и вы удалили жесткий диск и установили OS X, вы можете загрузить iPhoto, iMovie и GarageBand из Mac App Store.

  • После установки запустите (запустите) из OS X.
  • Дважды щелкните значок App Store в доке.
  • Введите свой Apple ID и пароль.
  • Нажмите Покупки. Если вы ранее не принимали свои приложения iLife в Mac App Store, вы должны увидеть, что ваши приложения iLife появятся в части экрана Accept.
  • Нажмите Принять. Вас могут снова попросить указать ваш Apple ID и пароль. Ваши приложения iLife теперь перемещаются в раздел «Покупки». Эти приложения являются частью программного обеспечения, поставляемого с вашим компьютером. Ваш аккаунт не будет взиматься за них.

  • Нажмите Установить, чтобы завершить установку ваших приложений.

pythonian29033
источник
Давайте найдем канонический вопрос для размещения части переустановки iLife этого. Это не совсем подходит для случая использования одного системного файла или каталога / bin ...
bmike
5

Официальным ответом Apple будет переустановка вашей системы, поскольку системные файлы доступа с Time Machine могут быть рискованными и хитрыми.

  1. В системе может отсутствовать файл, необходимый для оказания помощи в процессе восстановления, а для неопределенных / непредсказуемых результатов требуется больше эксперта, чем при использовании Time Machine для восстановления фотографии или приложения.
  2. Системные файлы могут быть скрыты, и вам нужно знать, как перемещаться по этим папкам с помощью сочетания клавиш при восстановлении файлов из резервной копии Time Machine.
  3. Системные файлы могут иметь специальные разрешения, поэтому вам может потребоваться исправить их после восстановления.
  4. После восстановления может потребоваться перезагрузка, и, если вы восстановите неправильно, система может не загрузиться снова.
  5. Восстановление из старой резервной копии может отменить исправления или обновления безопасности и усложнить обновление вашей системы. Наличие последней резервной копии может устранить эту потенциальную проблему.

Теперь, когда риски на столе, вот как действовать. Если вы используете Time Machine, подключитесь к резервному диску, а затем откройте окно Finder, чтобы открыть, где отсутствующий файл был в последний раз замечен. Вам может понадобиться использовать Command-Shift-G для перехода к системным папкам - если это так, просто будьте готовы использовать этот ярлык после входа в Time Machine, поскольку он имеет привычку показывать пользовательскую папку при ее запуске.

Используйте меню Time Machine, в строке меню выберите Enter Time Machine . Вернитесь к дате, когда файл существовал, выберите файл и нажмите « Восстановить» (нижняя правая кнопка).

Он скопирует файл или папку обратно в вашу работающую систему. На этом этапе сделайте резервную копию и рассмотрите возможность перезагрузки, чтобы система могла заметить, что отсутствующие файлы теперь восстановлены.

С. Марачи
источник
3

Скопируйте файл из другой системы или с доверенного компьютера 1 человека.

Если у вас есть второй компьютер с установленной сопоставимой сборкой OS X, вы можете скопировать файл с него. Убедитесь, что вы не внесли изменения в файл, который копируете, если вам нужна свежая копия. Это особенно важно для копирования файлов с чужого компьютера, поскольку изменения могут быть нежелательны.

Не стесняйтесь попросить контрольную сумму файла в чате (не забудьте указать версию для OS X), чтобы сравнить ее с тем, хотите ли вы убедиться, что файл не был изменен случайно (или преднамеренно).

Не забудьте выполнить восстановление разрешений после копирования файла, чтобы убедиться, что разрешения были правильно установлены для файла.

1 Вероятно, не стоит доверять случайным незнакомцам в Интернете важные системные файлы.

Grg
источник
3

Pacifist с установочным носителем OS X

Если у вас есть установочный носитель OS X и Pacifist , вы можете просмотреть установочный носитель и получить файл.

Если у вас есть Pacifist, но нет установочного носителя, вам будет предложено загрузить установщик.

Grg
источник
1
Если у вас есть установочный носитель, не будет ли проще просто запустить установщик и позволить ему все исправить? Я полагаю, это зависит от того, насколько изолированным был ущерб системы и насколько мы уверены, что только те файлы, которые, по вашему мнению, отсутствуют, неверны.
bmike
@bmike Может быть, но для пользователей, которые глубоко настроили свою систему, очень сложно переделывать все, что она перезаписывает (понятно, что она не понимает разницы между поврежденным файлом и файлом, который был изменен специально). Этот метод означает, что целевые файлы / папки могут быть предназначены для восстановления, а не все системные файлы.
grg