字体:  

今天和zef在irc上交谈了一下,我来传达一些精神,有关chameleon--变色龙

youminbuluo 发表于: 2008-8-07 23:54 来源: 远景无限博客

看之前先看看以下帖子^_^
ksong的
http://bbs.pcbeta.com/viewthread.php?tid=294247

下面是偶的内容了
boot0的大小为512B,写入硬盘
dd if=boot0 of=/dev/rdiskX bs=400 count=1
boot1h的大小为1024B,写入分区
dd if=boot1h of=/dev/rdiskXsY bs=512 count=2
原理大致如下,zef说的啦
把boot0写在硬盘X上面,boot0就会向后寻找有引导代码的hfs+分区,如果找到代码(boot1h),就会启动.但是,如果它找到引导代码,但那段代码却是错误的,就会显示hfs+ partition error,而不会继续向后搜索;如果一直没搜索到可以引导的hfs+分区,则它会一直搜索下去.
注意boot0和boot1h是配套的,如果先安装了pc_efi,又安装变色龙的话,可能导致某个hfs+分区上面的引导是错误的,因此必须把引导的那两个扇区清零
dd if=/dev/zero of=/dev/rdiskXsY bs=512 count=2
这样就好了。这里还要补充一下:用zef的原话就是,由于GPT分区并没有激活分区的概念,所以,你可以把你要激活的hfs+分区之前的hfs+分区的引导代码统统清零,就可以达到相当于激活分区的效果了(即默认启动的分区),这个主意很妙啊

ps:
偶又向zef讨教了好些个问题
下面一一列出:

1.如何备份GPT分区表
dd if=/dev/rdiskX of=GPTbackup bs=512 count=63
GPTbackup可以是具体的路径,比如/volumes/Leopard/***.bin 以下雷同

2.如何备份引导
对于hfs+
dd if=/dev/rdiskXsY of=each_partition bs=512 count=2
注意备份变色龙必须要count=2,因为boot1h是1024B.但是估计pc_efi只需要count=1
对于fat32
dd if=/dev/rdiskXsY of=each_partition bs=512 count=1
貌似可以用来备份winxp,vista的引导,呵呵,没试过,不乱说

3.关于GPT+MBR混合磁盘的同步问题
diskutil会自动同步,只要你的GPT分区上有一个非HFS+的分区
不要使用系统自带的fdisk来update mbr,这样会破坏vista的引导,而变色龙手动版里面的fdisk是经过修改的,可以update mbr.因为它只同步前440B而不是512B.

4.关于在mac用磁盘工具调整分区大小会少掉128mb的空间
zef也不知道它是干什么的,但是反正是可以拿来当linux的swap的(这个是我在onmac.net上看到的,自己也验证了,见http://bbs.pcbeta.com/viewthread.php?tid=307335)


手动版 自动版Chameleon-1.0.11-build
http://href.hu/x/5zcp

自动版

chameleon_v.1.0.11.dmg
http://tinyurl.com/528n68

厄,写到这里真的很累了
走过路过的都来顶一下

[ 本帖最后由 youminbuluo 于 2008-8-18 18:22 编辑 ]

talk.zip
(2008-08-07 23:59:33, Size: 7.99 KB, Downloads: 6)

最新回复

kiddy_cui at 2008-8-08 06:43:47
好帖子当然要顶了,
顺便想问一下,用硬盘安装助手和Pacifist安装和什么区别.(这两个软件是不同OS下的我当然知道).如果在Tiger下用pacifist安装Leopard是不是可行?我的意思是用相应的CPU安装相应的版本,不需要使用Don't Panic修改CPUID,引导方面会出现什么问题?谢谢.
xiaoyan-er at 2008-8-08 07:16:08
帮你顶一下
youminbuluo at 2008-8-08 07:26:10
pacifist就是直接解压缩了,带权限
因此解压缩后系统就做好了,但是分区的引导还要自己写

那个安装助手是把iso写入一个空白分区
效果相当于在leopard中恢复一个iso文件到一个空白分区
但是安装助手带写引导的功能
注意,安装助手只是把安装文件拷贝到分区并使之可引导,并没有完成安装

你说的是完全可行的,事实上,一张live dvd就可以了
kiddy_cui at 2008-8-08 08:12:08

QUOTE:

原帖由 youminbuluo 于 2008-8-8 07:26 发表
pacifist就是直接解压缩了,带权限
因此解压缩后系统就做好了,但是分区的引导还要自己写
非常感谢,我昨天就是使用pacifist在Tiger下安装Leopard的,然后发现引导出现问题了.请问具体应该如何写引导?
还有个问题就是:我现在有Tiger(硬盘的主分区)系统可用,Leopard是用Pacifist安装在逻辑分区.而且是用pacifist安装的时候有提示:
是否要替换还是忽略mach_kernel,这是怎么回事,我应该选替换还是?
youminbuluo at 2008-8-08 08:30:10
统统替换或者update
具体写引导可以用os x86 tools

想手动写入的话
要用dd,看看我上面的文章就明白了
boot0的大小为512B,写入硬盘
dd if=boot0 of=/dev/rdiskX bs=512 count=1
boot1h的大小为1024B,写入分区
dd if=boot1h of=/dev/rdiskXsY bs=512 count=2
youminbuluo at 2008-8-08 08:39:01
贴两个最原始的引导文件上来

dd if=boot1h of/dev/rdiskXsY bs=512 count=1
注意dd有危险,操作前先备份

Update MBR bootloader and flag partition 1 as bootable:
  sudo fdisk -e /dev/rdisk0
  fdisk: 1> update
  Machine code updated.
  fdisk:*1> f 1
  Partition 1 marked active.
  fdisk:*1> w
  Device could not be accessed exclusively.
  A reboot will be needed for changes to take effect. OK? [n] y
  Writing MBR at offset 0.
  fdisk: 1> q
这个也忘了,刚才搞混了

dd if=/dev/rdiskXsY of=/volumes/你的盘符/rdiskXsY.bin bs=512 count=1
./startupfiletool /dev/rdiskXsY ./boot 这步差点忘了
然后还要激活,用diskgen算了,千万不要用win的磁盘管理里面的工具

要是出错恢复可以用

dd if=/volumes/你的盘符/rdiskXsY.bin of=/dev/rdiskXsY bs=512 count=1

[ 本帖最后由 youminbuluo 于 2008-8-8 09:37 编辑 ]

boot1h.rar
(2008-08-08 08:39:01, Size: 389 B , Downloads: 2)

boot.rar
(2008-08-08 09:10:59, Size: 31 KB, Downloads: 1)

kiddy_cui at 2008-8-08 09:19:58
谢谢了.
我知道用DDmac怎么用的了,DD写引导只能在win下用吧.而且好象不可以在已经装上的Leopard分区写引导...也许是我没弄明白.
还有种情况就是:我现在已经用pacifist已经装上了Leopard
我现在没有Win,只有Tiger,想用你说的os x86 tools,看了一下介绍,好象不支持Tiger,
请问有没有什么好的办法解决?
谢谢
overtone at 2008-8-08 09:19:58
顶了,还没学习到这一步,不是很明白
youminbuluo at 2008-8-08 09:39:17
你先安装变色龙吧
那个自动版

偶现在思维有点乱
ydyanglq at 2008-8-08 22:59:56
顶了,学习了。
twilightlee at 2008-8-08 23:35:56
只能用在Intel电脑上吧?
wuyisheng at 2008-8-09 01:18:49
这个还没有研究过
cnnn at 2008-8-09 22:39:42
论坛应该多鼓励这种文章
以前用pcefi都dd烦了,现在用boot-132,装到第2硬盘上,用的就是那128M分区.第1硬盘直接引导vista. bios选引导    ... 变色龙看不到我的ntfs,所以干脆用boot132直接引导leopard...第二硬盘是改成gpt/mbr才激活引导的  以后有空试试"引导代码统统清零"的方法.   有空多交流
youminbuluo at 2008-8-09 22:46:06
128M分区
这个识别不了啊
apple偷偷的藏起来了
我现在把它当swap用
cnnn at 2008-8-10 20:34:29
不好意思 没说清楚 是vista下格成fat32了
soonco at 2008-8-10 21:17:45
讲的很清楚
wcccys at 2008-8-10 22:15:23
没办法,都看不懂。。
zongyongchun at 2008-8-14 02:16:54
I will try it!
zongyongchun at 2008-8-18 17:17:40
原来你们说的128M分区,就是第一个分区啊!那是EFI的分区,可以放一些EFI的程序进去,有EFI SHELL 提示符的,可以在EFI SHELL里刷新机器的各种微码……只有真正的Mac机,才会用到……

玩过IA64的,对这个应该很清楚……
zongyongchun at 2008-8-18 17:25:14
另外补充下,变色龙  也包含了CD的引导代码,把原版DMG改成ISO的时候也可以使用变色龙了……

我把DMG直接恢复到USB硬盘里,然后安装 变色龙 到USB硬盘,然后就可以用USB硬盘来引导普通PC安装Leopard了,当然,还是要用破解替换一些东西,比如原版安装器不支持安装在非GPT分区表的分区里,所以黑客们重写了安装器来替换原版安装器……

还有很多破解的部分,但是我没有全部明白,为什么要破解,什么情况下需要破解,什么情况下不需要破解……