误删 Recovery HD 的恢复方法

某次用 TimeMachine 回滚系统时误删了 Recovery HD,导致 FileVault 无法正常开启,以及按 Command + R 需要联网启动恢复系统等问题。

误删 Recovery HD 的恢复方法_第1张图片
image.png

于是将恢复方法记录下来,方便以后 手贱

首先需要下载恢复分区的镜像

Lion 恢复更新
其实只需要这个,并不需要任何系统镜像。

然后确认下是不是真的删除了 Recovery HD

$ diskutil list
误删 Recovery HD 的恢复方法_第2张图片
image.png

是真的不见了。

挂载刚刚下载的dmg

$ hdiutil attach ~/Downloads/RecoveryHDUpdate.dmg

释放文件

$ pkgutil --expand /Volumes/Mac\ OS\ X\ Lion\ Recovery\ HD\ Update/RecoveryHDUpdate.pkg ~/Desktop/RecoveryHD

挂载 RecoveryHDMeta.dmg

$ hdiutil attach ~/Desktop/RecoveryHD/RecoveryHDUpdate.pkg/RecoveryHDMeta.dmg

运行并且创建分区

$ ~/Desktop/RecoveryHD/RecoveryHDUpdate.pkg/Scripts/Tools/dmtest ensureRecoveryPartition / /Volumes/Recovery\ HD\ Update/BaseSystem.dmg 0 0 /Volumes/Recovery\ HD\ Update/BaseSystem.chunklist
Creating recovery partition: finished  

检查是否创建成功

$ diskutil list

但是这样恢复的是 Lion 的版本啊

于是依旧没有逃脱下载安装盘的命运。
从安装盘中提取出 InstallESD.dmg 文件,放在下载文件夹。
RecoveryHDUpdate.dmg 也同样放在下载文件夹。
创建一个脚本,保存为 recoveryhd.sh

echo "确定RecoveryHDUpdate.dmg和InstallESD.dmg都已经放在了“下载”文件夹里!"  
read -p "Ensure "RecoveryHDUpdate.dmg" and "InstallESD.dmg" are in your Downloads folder and press [Enter]"  
echo "如果这货最后提示你文件找不到,请手动编辑脚本来修改下安装盘的名字!!!"  
read -p "Please edit the name of ESD by your self if this sh do not work while!!![Enter]"

#access dmtest from RecoveryHDUpdate.pkg
rm -rf /private/tmp/RecoveryHDUpdate  
echo "Expanding RecoveryHDUpdate.pkg"  
hdiutil attach -nobrowse ~/Downloads/RecoveryHDUpdate.dmg  
pkgutil --expand /Volumes/Mac\ OS\ X\ Lion\ Recovery\ HD\ Update/RecoveryHDUpdate.pkg /tmp/RecoveryHDUpdate  
echo "ejecting RecoveryHDUpdate.dmg"  
hdiutil eject /Volumes/Mac\ OS\ X\ Lion\ Recovery\ HD\ Update

echo "Expanding BaseSystem"  
hdiutil attach -nobrowse ~/Downloads/InstallESD.dmg  
#Move BaseSystem to tmp,please edit the name of ESD by your self if this sh do not work while!!!
#就是修改下面的”Mac\ OS\ X\ Install\ ESD“,根据实际情况去掉Mac这个单词~
cp /Volumes/Mac\ OS\ X\ Install\ ESD/BaseSystem.dmg /tmp/BaseSystem.dmg  
cp /Volumes/Mac\ OS\ X\ Install\ ESD/BaseSystem.chunklist /tmp/BaseSystem.chunklist  
echo "ejecting InstallESD.dmg"  
hdiutil eject /Volumes/Mac\ OS\ X\ Install\ ESD/


read -p "一切都已经准备就绪,按回车就可以开始了![Enter]"  
#build Recovery partition
echo "Building Recovery Partition. Please Wait"  
/tmp/RecoveryHDUpdate/RecoveryHDUpdate.pkg/Scripts/Tools/dmtest ensureRecoveryPartition / /tmp/BaseSystem.dmg 0 0 /tmp/BaseSystem.chunklist

clear  
diskutil list  
read -p " Apple_Boot Recovery HD 是不是已经存在了?重启按住option试试,看看recovery HD是不是已经回来了![Enter]"

exit 0  

添加执行权限 chmod +x recoveryhd.sh

然后运行 ./recoveryhd.sh

你可能感兴趣的:(误删 Recovery HD 的恢复方法)