|
看到有部分朋友对于EFI分区的操作有点迷惑,现分享一下经验。其实之前已经有不少贴子讲解过EFI的操作,我这个贴子只是对其中的操作做一些说明。以下步骤中,大部分涉及终端操作,并要一直打开终端窗口,请新手先全文阅读后再实践,且尽可能先熟悉常规的终端命令。四楼将会集中解答一些问题。鸣谢xiaoapple、pcj,是他们教会我使用EFI分区。
以下操作将以disk为0(阿拉伯数字零)作为举例,而EFI分区绝对是1(阿拉伯数字1),所以例子中的磁盘标识符将会是disk0s1。在实际操作中,如果你机器中只有一块硬盘,则正常就是disk0s1,如果你的硬盘数目不止一个,则要操作的disk有可能1或2或3或4等等,但无论disk是多少,s后面的那个数字一定是1,因为EFI分区是整块硬盘的第一分区。
好了,正式开始:
1.获取root权限。所有操作必须在root权限下完成。打开终端,输入:
复制代码
输入密码
2.查看当前设备标识符
复制代码
如图,disk0s1
2010-2-2 10:20 上传
下载附件 (10.37 KB)
3.建立EFI分区。切记,新建EFI分区才用这步,如只是平时维护更新EFI内容则跳过这步。在不同版本的Mac系统里,要使用不同的命令来建立EFI分区,否则会出错,切记。
如果你是在Leopard系统里操作(包括在Leopard版本的光盘预系统下操作),则输入
- diskutil eraseVolume "HFS+" "EFI" /dev/disk0s1
复制代码
如果你是在Snow Leopard系统里操作(包括在Snow Leopard版本的光盘预系统下操作),则输入
- newfs_hfs -v EFI /dev/disk0s1
复制代码
执行该命令后正常将提示Initialized /dev/rdisk0s1 as a 200 MB HFS Plus volume
4.新建一个名为EFI的宗卷目录
复制代码
5.把EFI分区映射到上面新建的EFI宗卷目录
- mount_hfs /dev/disk0s1 /Volumes/EFI
复制代码
该命令执行后,正常会在Finder或桌面显示出EFI分区。这时可以手动把boot、Extra、Extensions、com.apple.Boot.plist、Themes、dsdt.aml等等复制进去。文件分布及目录格式如下图,图中的update.sh已上传。
2010-2-2 10:43 上传
下载附件 (79.36 KB)
6.进入EFI分区
复制代码
执行后,手动把update.sh拖进终端回车。update.sh的作用是修复EFI分区里的Extensions目录及其里面所有kext的权限,以及生成缓存文件。
7.进入变色龙的boot目录。事先右键显示变色龙安装包的包内容,把里面的boot目录拷贝到桌面,确保boot目录里包含boot0以及boot1h这两个文件。
复制代码
8.对硬盘执行boot0代码操作
- fdisk -f boot0 -u -y /dev/rdisk0
复制代码
执行后正常无提示
9.对EFI分区执行boot1h代码操作
- dd if=boot1h of=/dev/rdisk0s1
复制代码
执行后会有两三行提示
10.新建一个名为no_log的空日志文件(原因不明)
- touch /Volumes/EFI/.fseventsd/no_log
复制代码
11.推出EFI分区,解除第5步建立的映射关系
复制代码
执行后,EFI分区将会在Finder或桌面上消失。如果遇到推出失败,可执行umount -f /Volumes/EFI
12.删除第4步建立的EFI宗卷目录。
复制代码
至此完成操作,关闭终端。
说明:
1.如果你没有一个现成的MAC系统对新硬盘进行新建EFI分区操作,则需要光盘启动使用终端,在这种情况下,第5、6、7步涉及的文件复制编排则要完全依靠终端命令,如cp、mkdir这些,一定要熟悉。
2.如果你的硬盘已经在使用EFI分区来引导,现要修改里面的kext或其他文件,则跳过3、7、8、9、10这几步。
3.第11跟12步,顺序一定不能搞乱!否则你之前的操作基本上废掉,因为EFI分区里的内容除了boot0和boot1h代码外,其余都被删除。
4.文中第3步提及的“预系统”,请参考《我对原版与破解版两者所谓“区别”的看法》
===============================
更新:
事实上,不修复/EFI/Extra/Extensions里所有kext权限也可以的,也不需要生成缓存文件。
|
打赏楼主
扫码打赏,你说多少就多少
|