在单用户模式下意外将 /* 移动到另一个文件夹

在单用户模式下意外将 /* 移动到另一个文件夹

我的笔记本电脑的 GPU 有问题,在尝试将 AMD 和 ATI kext 移出 /System/Library/Extensions 时,我意外发出了:

mv /System/Library/Extensions/AMD * /Disabled_Extensions。

* 之前的多余空格导致 / 移入 /Disabled_Extensions,现在当我尝试使用 mv 或 ls 时,我得到 -sh: /Disabled_Extensions/bin/mv: 没有这样的文件或目录。我最好的猜测是,这是因为 mv 链接到已移动的库。

我尝试过导出 LD_LIBRARY_PATH,但这似乎不是 osx 的做事方式。我仍然处于单用户模式和 bash shell 中,有人知道我可以做些什么来将这些内容移回吗?

答案1

我能想到两个潜在的解决办法。

简单(如果可行的话):

/Disabled_Extensions/bin/ln -s /Disabled_Extensions/* /
cp -p /Disabled_Extensions/* / # Doing a copy instead of a move in case it doesn't work, and we don't want to split your data

通过上述操作,您还将拥有根目录中原来位于 /System/Library/Extensions/AMD 中的所有内容,因此您之后需要进行一些清理工作。

更复杂(但应该会成功):

使用您的分发 CD/DVD 或 Live CD(例如 Knoppix)启动到救援模式,挂载您的文件系统,并将数据移回其所属的位置。

编辑:如果您尚未进入根目录,请将 ln 行末尾的“。”替换为“/”。

答案2

我最终通过使用另一台 Mac 创建基于 Mint 的实时 USB 来解决这个问题(使用http://sevenbits.github.io/Mac-Linux-USB-Loader/),然后安装损坏的分区并将内容移回原位。AMD/ATI kext 的删除还迫使我的 MacBook 使用英特尔显卡,这使其目前可以正常工作。

相关内容