boot
现在的boot已经很好使了。其实我希望有一个可以读取Preboot.dmg里自定义目录的cdboot出来就行,因为我确实有打算到时做一个10.6.5的整合版安装盘出来。那个可读写ISO的方式,是我无意中研究出来的,我觉得很好使,可以方便打ppf补丁,如果不放出一个整合版,我有点不甘心。关键是,我希望安装了一个纯净系统后(即这个系统还没安装任何第三方驱动或补丁),用这个引导盘可以去引导。所以我希望可以把不同种类的类Extra放到cdboot同级目录实现按需要来引导。 回复 1# pippo_choi
試試這個!
我已經有試成功可以讀取Preboot.dmg內的資料!
但我不確定你那可不可以用!
再來因為你把光碟是兩個影像檔合併的!所以你的開機磁區變成是Mac的安裝盤!
所以Bootloader做任何修改都是無效的!
我目前是把Preboot.dmg轉換當成是開機磁區!我再USB上測試是OK的!
你在試試看吧! 好像还是不行。我发我的Bootloader.iso你看看,在启动的调试信息里,最后一行Enabled bt(0,0) alias._等了大概5秒才进入变色龙界面。我输入dir=A -v,没有加载成功。
对了Bootloader.iso和Preboot.dmg里的文件是不是要修复权限的? 回复 3# pippo_choi
我知道你為什麼有進度條了!
你先在Bootloader.iso也放個/Extra
裡面先包含com.apple.Boot.plist
<key>Kernel</key>
<string>mach_kernel</string>
<key>Kernel Flags</key>
<string></string>
<key>Rescan</key>
<string>Yes</string>
<key>Instant Menu</key>
<string>Yes</string>
這樣去試試! 回复 4# pcj
见鬼了。我试过在bootloader.iso里只放下图的东西
结果合并镜像后用VM启动,F8后只输入-v,结果还是会刷驱动。
Boot.plist内容如下:
<key>Instant Menu</key>
<string>Yes</string>
<key>Kernel Flags</key>
<string>arch=i386 cpus=1 -v</string>
<key>Legacy Logo</key>
<string>Yes</string>
<key>Rescan</key>
<string>Yes</string>
意思是,就算我用Extra,里面有arch=i386这句一样会刷驱动。但如果我手动输入arch=i386就不会 回复 4# pcj
我用你8月31号给我的Booter编译出来的boot(这段时间我本地硬盘里的boot一直用这个),我刚才才发现,无法读取自定义类Extra文件夹里的com.apple.Boot.plist。
我把这个boot放到U盘里,里面设定一个E文件夹是我台机的相关文件,再设定一个A文件夹是我笔记本的相关文件。E里没有com.apple.Boot.plist,因为我不需要用它来定义arch=i386。但笔记本必须arch=i386,否则启动后不久就五国(GO 7300显卡只能32位)。
我试过,在笔记本中输入dir=A -v的话,看到有些不支持64位的驱动(如我使用的VoodooHDA和IOPCIFamily)会提示,can't link,表示不能加载,然后进入桌面后五国。
我再次启动,输入dir=A arch=i386 -v,这就可以了。所以我认为,那个Booter不支持读取com.apple.Boot.plist。有办法解决吗? 回复 6# pippo_choi
你這是31號的!我不確定我內容有改什麼?
但是應該我有更改預讀com.apple.boot.plist的路徑!
所以一開始不會讀取/Extra內的資料!
後面的我還有變動!所以不要用31號的! 回复 6# pippo_choi
你現在這種合併方式!不管boot怎麼改都是沒用的!
因為合併時!Toast把BootLoader.iso的hfs分區忽略掉了!
所以boot完全認不到這種檔案格式!根本無法讀取檔案!
都會把預系統當做是開機分區!所以只能放在預系統的分區才有效! 回复 7# pcj
从31号以后的Booter我只保留了一个,但也不知道那个能不能用,因为这段时间你改了很多次。
能不能把可以读取Boot.plist的Booter发给我,我马上试试。 回复 8# pcj
嗯,确实是这样,那我就把自定义目录放在预系统根目录好了。 昨晚我在Extra/Boot.plist里加了下面两段做了一个Bootloader.iso在VM里测试:
<key>Instant Menu</key>
<string>Yes</string>
<key>Rescan</key>
<string>Yes</string>
貌似没效果,好像这两段被boot忽略了。而且加了这两段的任意一段,在启动时都会显示如下图
我现在想要一个cdboot,看看pcj有时间能否帮忙编译一个,要求如下:
1.能读取自定义类Extra目录里的内容(以下以目录A举例)。更重要的是,无论预系统里的Extra或/Library/Preferences/SystemConfiguration/里的Boot.plist里面是什么内容,在加载A的时候,都可以完全忽略其内容,而加载A里的Boot.plist的内容。
2.可以加载A里的smbios.plist,在加载的同时,忽略掉cdboot里自带的smbios支持。如果A里不存在smbios.plist,则加载cdboot自身的smbios。
3.要加载A的内容如下:
───com.apple.Boot.plist
───Extensions.mkext
───/Extensions
───smbiso.plist
───dsdt.aml(这个到时未必会有)
暂时只想到这么多,麻烦pcj了。 现在RC5里的fdisk有140K大小(比原来的大了将近100K),它说不会破坏MBR里windows的前440字节。我想问问,如果我把所有boot的安装包里的fdisk都替换为这个140K的,包括预系统里都替换为这个,会不会出现兼容或其他问题呢?还有,是否要用它里面的boot0来配合呢?
==================
补充:
很奇怪,我现在编译出来的cdboot可以读取转换目录里的Boot.plist,但boot却读不了。
我向Booter里添加了台机的kext和dsdt来编译一个boot,放到台机的EFI里(EFI里只有这个boot,没有其他东西)。然后在台机的SL系统分区放了一个e转换目录,里面放了Boot.plist,定义了arch=i386 -v,在e目录里还放了kext。在启动时按住alt出现分区选择界面,输入
dir=e -dismkext
结果是e目录里的kext被成功读取,但Boot.plist被忽略掉,没有-v启动,也没有加载32位内核。
但我把同时编译出来的cdboot放在VM里测试,输入dir=e,确实以-v启动的。
==================
补充:
现发现无法转换内核引导。我刚才试了把10.6.5测试版的内核提取出来,放到本地SL系统根目录,改名为1065,启动时我输入1065,结果还是载入10.6.4的mach_kernel
页:
[1]