|
手工建立Darwin bootloader教程(Leopard系统装好后不能从硬盘引导的朋友看过来)
1. Darwin Bootloader是什么?
Darwin Bootloader是一个启动引导器,位于主分区最前面的512字节,功能是在活动分区取得系统控权后进行载入kernel 工作。安装Bootloader 基本等同于dos下执行sys 命令。
2. 为何要手工安装Darwin Bootloader?
安装盘为何不提供这个功能?由于在真正的苹果机上采用EFI 启动,不需要Darwin Bootloder,所以原版苹果安装盘不提供这种启动方式的安装和配置程序。而pc的引导方式是 Bios 》MBR 》主分区引导区 》核心。因而产生手动安装Darwin Bootloader 问题。比较完善的Hack版的OSX 安装盘内提供了自动安装Bootloader的功能,所以不需要手动进行安装。在安装盘不提供Bootloader安装,以及需要改变启动硬盘分区等情况下,就需要手工安装Bootloader。
3. Darwin Bootloader组成和生效条件
Darwin Boatloader 存在于分区开头的512字节,以非文件的形式存在,其内容包括程序配置信息,配置信息因分区情况不同而异,所以安装Darwin Bootloader 无法一步搞定。格式化这个分区会使Darwin Bootloader 消失,而删除这个分区上的所有文件则不会。另外Darwin Bootloader 还需要读取com.apple.boot.plist 文件,因此,在双OSX 的硬盘上,如果你把Bootloader所在分区上的文件全删除了,系统启动时会出现com.apple.boot.plist not found,你需要做的是在这个分区上安新系统,或者把bootloader 安装到另外那个系统的分区上。
4. Darwin Bootloader 安装步骤准备工作
最好准备一个U盘格式化成FAT32分区,卷标名为PATCHER,建立一个新文件夹udisk ,把所需文件(注:附件中的文件)解压后拷进里面,因为在安装Boatloader 时候要卸载掉硬盘分区,无法使用在该分区上的文件。 用OSX 安装盘启动计算机,到选择安装语言后出现顶部菜单后,选择工具中的终端,以下步骤均在这个环境下进行。如果你有一个可进入的硬盘上的系统,也可在其中进行 。U盘会被加载到 /Volumes/U盘卷标 目录了,如U盘卷标名为 PATCHER,会被加载到 /Volumes/PATCHER 目录
第一步 收集硬盘信息
输入
mount
回车会看到类似这样的信息
/dev/disk0s2 on / (hfs, local, journaled)
/dev/disk1s1 on /Volumes/My Docu (ntfs, local, read-only, noowners)
/dev/disk1s5 on /Volumes/Mediazilla (ntfs, local, read-only, noowners)
/dev/disk0s1 on /Volumes/Leopard (hfs, local, journaled)
/dev/disk0s3 on /Volumes/Storage (hfs, local, journaled)
可以从回显中得到硬盘分区信息,如要给Leopard 那个分区安装Bootloader,那么他硬盘号是disk0,分区号是disk0s1,后面所述以disk0s1为例.
第二步 设置活动分区 (用chain0,Tboot 引导的不需要做这步,原活动分区(Windows)不变),此步骤也可以dos 、windows 下的磁盘工具替代。(我是用Tboot引导的,没有这样做,不知道命令是否有错)
输入
fdisk -e /dev/rdisk0回车
#选择操作目标硬盘,rdisk0 由disk0s1得出,换成你要操作的硬盘号。rdisk0 表示对硬盘进行的是 raw 操作,后面相同,注意区分。
回显fdisk:
输入
update 回车
回显 Machine code updated.
输入
f 1 回车 #标记活动分区,数字 1 由disk0s1 得出,换成你要操作的分区号
回显 Partition 1 marked active.
输入
w 回车 #写入
回显 Device could not be accessed exclusively.A reboot will be needed for changes to take effect. OK? [n] y
输入 Y #确认
回显 Writing MBR at offset 0.
输入
q 回车 #退出
现在disk0s1,也就是Leopard 这个分区已经是激活的了。
第三步 写入引导信息
以把附件中的文件放到U盘PATCHER/udisk目录上为例(以我自己的实际操作为例子)
输入以下命令,每行一回车:(!!!!毋必将红色字的硬盘代码换成第一步查出来的Leopard分区代码!!!)
diskutil umount disk0s1 #卸载掉分区
cd /Volumes/PATCHER/udisk/files/i386
dd if=boot1h of=/dev/rdisk0s1 bs=512 count=1 #如果执行此命令出现错误信息,在命令前加./
./startupfiletool -v /dev/rdisk0s1 boot #如果执行此命令出现错误信息,把命令前的./去掉
cd /Volumes/PATCHER/udisk/files
./bless -device /dev/disk0s1 -setBoot –verbose #如果执行此命令出现错误信息,把命令前的./去掉
reboot #重启电脑 |
|