从Mac删除系统文件后,如何找回系统文件?


17

我已经从Mac中删除了系统文件,需要将其取回。

系统文件可以包括:

  • /根目录中的隐藏文件-尤其是/ private中的 unix文件
  • /系统文件
  • /库文件
  • 核心操作系统随附的/ Applications文件

系统文件不是任何应用程序,用户文件或可以按已知顺序重新生成的文件,例如缓存文件,Spotlight索引文件等。


规范问题和答案通过bmike此评论♦


1
/ private需要一个单独的答案- 有关/ private / var / folders的信息,请参阅-/ private / tmp不需要还原
user151019 2015年

Answers:


22

如果您有最新的Mac,则它具有恢复分区

开启Mac并按住Command+ R直到出现Apple徽标。这将导致您的Mac使用恢复分区启动。

进入恢复分区后,即可重新安装操作系统。

此Apple技术说明《OS X:关于OS X恢复》提供了更多详细信息。

您可以重新安装操作系统,并保持文件完整。Apple删除了“擦除/安装”选项,因此您不必担心Recovery Installer会擦除文件。现在,当从恢复操作系统启动时,您必须显式启动“磁盘工具”工具以擦除或重新格式化/重新分区驱动器。


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在成功启动Mac并登录后从Time Machine 还原。


2
所有答案都应该像这样详细:) +1
Ruskes

磁盘工具修复磁盘功能将扫描并修复文件系统的潜在问题。它对恢复任何类型的丢失数据毫无影响。您的答案很棒,但是很遗憾,这是错误的。询问者将必须还原OS X(如答案开头所述,他们可以使用Internet Recovery)。

@cksum感谢您指出这一点,我认为值得一试,因此将其列为三个选项中的最后一个。至于您认为OP需要还原OS X的主张,我认为没有必要。我提供的第一个选项应该可以做到,我已经对其进行了测试。
jaume 2014年

4
复制/ bin的内容并不理想,因为它可能不会继承ACL和适当的权限(使用Disk Utility修复权限可能会修复其中的一些内容)。它也可能没有正确的版本(因为某些版本可能已更新)。你能保证这些被控制吗?同样,它看起来像是大手笔,但是重新安装OS X可能是最理想的解决方案。最少会导致更多问题。

@cksum Disk Utility将修复权限,但我同意您的其他观点,我安装了Recovery HD,检查其中包含的版本com.apple.recovery.boot/BaseSystem.dmg,是的,其中有些二进制文件已过时bash。我编辑了我的答案以反映这一点,并且如您在上一条评论中所述,在测试Disk Utility确实不能还原文件后删除了第三个选项。
2014年

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}

即使你删除了cp二进制文件(可能发生),有/usr/bin/ditto/usr/bin/tar而且可以站在其他几个命令cp

重新安装OS X

如果您具有通过Recovery HD,Internet Recovery或OS X安装介质重新安装OS X的能力,则重新安装OS X将“修复”您的安装并将所有丢失/损坏的系统文件复制回您的系统。


我建议您在手动复制文件然后重新启动后,使用“磁盘工具”进行权限修复。如果修复程序有效,现在将是另一个备份快照的绝佳时机。

1并非所有系统文件都在Recovery HD上,但是很多。如果复制命令不起作用,请检查该文件是否在Recovery HD上。


4
从Recovery OS复制时:注意!Recovery OS 的版本与OS X的版本匹配是很常见的。例如:将OS X 10.9更新为10.9.2的安装将限于Recovery OS 10.9(带有SSL漏洞,依此类推)。 。
Graham Perrin 2014年

2
@GrahamPerrin有一些明智的话-我编辑了一个警告,大多数熟悉终端的人都可以评估从可能未完全修补的Recovery HD复制下层文件的风险。仍然值得牢记的是,如果您经常使用此技巧或在系统的关键部分(可靠性或安全性方面)使用此技巧,则节省重新安装时间可能会产生影响。
bmike

确保所有更新之后,我将使用组合更新进行软件更新
user151019 2015年

在APFS上,BaseSystem.dmg不在同一位置。不知道我们是否需要一个新的问题或在此处进行编辑以转到其他路径,或者至少是一条注释,这个极好的技巧适用于哪些版本的macOS。
bmike

6

有一个需要Internet连接的解决方案。

OS X恢复

在Mac OS X 10.7(Lion)之后推出的Mac模型具有直接从基于Internet的OS X Recovery系统版本启动的功能

当硬盘上的恢复系统不可用时(例如,硬盘遇到问题,或者硬盘已被替换或擦除时),OS X会自动使用此功能。OS X Internet Recovery使您可以直接从Apple的服务器启动Mac。从该系统启动后,将对内存和硬盘驱动器进行快速测试,以检查硬件问题。

因此,我建议您插入以太网电缆,因为wifi可能无法正常工作,如果出现选项列表并且您使用的版本正确,请选择从Internet启动的选项。

OS X进行Internet还原后还原iLife应用程序

如果您的计算机装有OS X Lion或更高版本,并且您擦除了硬盘并安装了OS X,则可以从Mac App Store下载iPhoto,iMovie和GarageBand。

  • 安装后,从OS X启动(启动)。
  • 双击扩展坞中的App Store图标。
  • 输入您的Apple ID和密码。
  • 单击购买。如果您以前从未在Mac App Store中接受捆绑的iLife应用程序,则应该看到iLife应用程序出现在屏幕的“接受”部分。
  • 单击接受。可能会再次要求您提供Apple ID和密码。您的iLife应用程序现在移至“购买”部分。这些应用程序是计算机随附软件的一部分。他们不会向您的帐户收费。

  • 单击安装以完成应用程序的安装。


让我们找到一个规范的问题来托管iLife重装部分。确实不适合删除单个系统文件或/ bin目录的用例...
bmike

5

Apple的官方回答是重新安装您的系统,因为Time Machine的登录系统文件可能有风险且棘手。

  1. 系统可能缺少协助恢复过程所需的文件,与使用Time Machine还原照片或应用程序相比,不确定的/无法预测的结果需要更多的专家来协助。
  2. 系统文件可以隐藏,当您从Time Machine备份中还原文件时,您需要知道如何通过命令快捷键导航到那些文件夹。
  3. 系统文件可以具有特殊权限,因此您可能需要在还原后对其进行修复。
  4. 还原后,您可能需要重新引导,如果还原不正确,则系统可能无法再次引导。
  5. 从旧的备份还原可能会撤消补丁程序或安全更新,并使您的系统难以更新。最近备份可以消除此潜在问题。

现在已经冒了风险,这是如何进行。如果使用Time Machine,请连接到备份磁盘,然后打开“查找器”窗口,打开到最后一次看到丢失文件的位置。您可能需要使用Command-Shift-G转到系统文件夹-如果是这样,请在进入Time Machine后准备使用该快捷方式,因为它习惯于在启动时显示用户文件夹。

使用菜单栏中的Time Machine菜单,选择Enter Time Machine。导航回到文件存在的日期,选择文件,然后单击“还原”(右下按钮)。

它将文件或文件夹复制回到正在运行的系统中。此时,进行备份并考虑重新启动以使系统注意到丢失的文件现在已还原。


3

从另一个系统或受信任的1个人的计算机复制文件

如果您有一台安装了类似OS X版本的计算机,则可以从其中复制文件。如果要重新复制,请确保未对要复制的文件进行更改。这对于从其他人的机器复制文件尤为重要,因为更改可能不是所希望的。

随意询问聊天中文件的校验和(不要忘记提供OS X版本),以与您希望确保没有意外(或有意)修改文件的情况进行比较。

复制完文件后,请不要忘记进行权限修复,以确保已在文件上正确设置了权限。

1最好不要在互联网上信任随机的陌生人以获得重要的系统文件。


3

带有OS X安装介质的Pacifist

如果您有OS X安装媒体和Pacifist,则可以浏览安装媒体并获取文件。

如果您有Pacifist,但没有安装媒体,它将提示您下载安装程序。


1
如果您有安装介质,只运行安装程序并修复所有问题会不会更容易?我想这取决于系统损坏的严重程度,以及我们对您仅认为丢失的文件不正确的信心。
bmike

@bmike也许吧,但是对于已经深度定制系统的用户来说,重做它覆盖的所有内容是一件痛苦的事情(可以理解,它不了解损坏的文件和故意修改的文件之间的区别)。此方法意味着可以将特定文件/文件夹而不是所有系统文件作为还原目标。
grg
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.