admin 发表于 13/5/7 09:14:54

GPT分区表EFI隐藏分区的常规操作说明

看到有部分朋友对于EFI分区的操作有点迷惑,现分享一下经验。其实之前已经有不少贴子讲解过EFI的操作,我这个贴子只是对其中的操作做一些说明。以下步骤中,大部分涉及终端操作,并要一直打开终端窗口,请新手先全文阅读后再实践,且尽可能先熟悉常规的终端命令。四楼将会集中解答一些问题。鸣谢xiaoapple、pcj,是他们教会我使用EFI分区。

以下操作将以disk为0(阿拉伯数字零)作为举例,而EFI分区绝对是1(阿拉伯数字1),所以例子中的磁盘标识符将会是disk0s1。在实际操作中,如果你机器中只有一块硬盘,则正常就是disk0s1,如果你的硬盘数目不止一个,则要操作的disk有可能1或2或3或4等等,但无论disk是多少,s后面的那个数字一定是1,因为EFI分区是整块硬盘的第一分区。

好了,正式开始:
1.获取root权限。所有操作必须在root权限下完成。打开终端,输入:

[*]sudo -s

复制代码

输入密码

2.查看当前设备标识符

[*]diskutil list

复制代码

如图,disk0s1
http://static.pb.pbcdn.com/data/attachment/forum/month_1002/1002021020fd154d05569e200d.png.thumb.jpg 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的宗卷目录

[*]mkdir /Volumes/EFI

复制代码


5.把EFI分区映射到上面新建的EFI宗卷目录

[*]mount_hfs /dev/disk0s1 /Volumes/EFI

复制代码

该命令执行后,正常会在Finder或桌面显示出EFI分区。这时可以手动把boot、Extra、Extensions、com.apple.Boot.plist、Themes、dsdt.aml等等复制进去。文件分布及目录格式如下图,图中的update.sh已上传。
http://static.pb.pbcdn.com/data/attachment/forum/month_1002/10020210437961b29b80347895.png.thumb.jpg 2010-2-2 10:43 上传
下载附件 (79.36 KB)




6.进入EFI分区

[*]cd /Volumes/EFI

复制代码

执行后,手动把update.sh拖进终端回车。update.sh的作用是修复EFI分区里的Extensions目录及其里面所有kext的权限,以及生成缓存文件。

7.进入变色龙的boot目录。事先右键显示变色龙安装包的包内容,把里面的boot目录拷贝到桌面,确保boot目录里包含boot0以及boot1h这两个文件。

[*]cd ~/Desktop/boot

复制代码


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步建立的映射关系

[*]umount /Volumes/EFI

复制代码

执行后,EFI分区将会在Finder或桌面上消失。如果遇到推出失败,可执行umount -f /Volumes/EFI

12.删除第4步建立的EFI宗卷目录。

[*]rm -rf /Volumes/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权限也可以的,也不需要生成缓存文件。
页: [1]
查看完整版本: GPT分区表EFI隐藏分区的常规操作说明