View Single Post
  #35 (permalink)  
Old 08-21-2007, 03:30 PM
zef
Status: Offline
Junior Member
 
Join Date: May 2006
Posts: 7
Rep Power: 0
zef is on a distinguished road
Thumbs up

Nice work blackchungo!

I had the same fight with the boot loader issues. I've found that the key components are the MediaKit.framework 8.5, bless 24.0 and the boot files (credits goes for JaS and goodtime). This framework can be found originally on the 10.4.4 Restore Discs, bless from darwin8 up to 10.4.1 dtk, boot files from darwin8 up to 10.4.3 dtk discs. I wanted to know the origins of these files for a long long time where they come from originally.

Now i'm using the new iMac 10.4.10 DVD as an install base and it can create a bootable partition with its DiskUtility. It even activates the target partition without editing OSInstall.mpkg's postfilght script...

Regarding OSInstall.dist the simpliest way to bypass hw model checking is to clear the reference for the checking script like this:

Code:
<installation-check script=""/>
The really great "news" what i read here is the package making process. Thanks for the important info about the old XCode We're using a dirty method for replacing already installed kexts with older versions (AppleSMBIOS.kext for example).

And there's another thing what i've found really useful:
Instead of burning DVDs all the time i created a small bootable partition on my disk then dittoed the original DVD image contents to that partition and changed the necessary files over there. You can get to the installer in about 30 secs, the full installation takes 3-5 minutes depending on your hw and disk layout. So this method seems much more quicker. After everything goes well you can create the image. I'm using this slightly modified script for creating the boot image:

Code:
#!/bin/sh

# Path to mkisofs binary
MKISOFS=/usr/bin/mkisofs

# Volume label of the target image
VOLNAME="Mac OS X Install Disc"

I386ISO=/tmp/i386booter.iso

# Path for where to find source files for the image
CDDIR="/Volumes/InstallPartition"

# Size of the image
SIZE="4000M"

# Final image name
CDDMG=/tmp/bootimage.iso

mkdir -p /tmp/i386
cp "$CDDIR"/usr/standalone/i386/* /tmp/i386/
cd /tmp/i386
"$MKISOFS" -V "$VOLNAME" -no-emul-boot -boot-load-size 4 -c boot.cat -b cdboot -o "$I386ISO" .

sectors=`du "$I386ISO" | tail -1 | awk '{print $1}'`

# create a bootable image and remove any previous copies
if [ -f "$CDDMG" -o -f "$CDDMG".dmg ]; then
        rm -f "$CDDMG" "$CDDMG".dmg
fi
hdiutil create "$CDDMG".dmg -size $SIZE -layout NONE
dev=`hdid -nomount "$CDDMG".dmg | tail -1 | awk '{print $1}'`
rdev=`echo $dev | sed s/disk/rdisk/`

pdisk $rdev -initialize
blocks=`pdisk $rdev -dump | grep 2: | awk -F" " '{print $4}'`
pdisk $rdev -dump

# create the partition on the image
pdisk $rdev -createPartition "$VOLNAME" Apple_HFS $sectors `expr $blocks - $sectors`
# figure out what slice the partition was created on
slice=`pdisk $rdev -dump | grep "$VOLNAME" | awk -F: '{print $1}' | awk -F" " '{print $1}'`

# copy the data onto the image
dd if="$I386ISO" of=$rdev skip=64 seek=64 bs=512
newfs_hfs -v "$VOLNAME" ${rdev}s${slice}
mkdir -p /mnt
mount -t hfs -o perm ${dev}s${slice} /mnt
cd "$CDDIR"
ditto -rsrc "$CDDIR" /mnt
umount /mnt
hdiutil eject $dev

# clean up temporary files and folders
rm "$I386ISO"
rm -rf /tmp/i386
Keep up the good work!

Last edited by zef; 08-22-2007 at 01:34 PM.
Reply With Quote