overdue-scratch

Author Topic: How to get '/boot' file to use 'org.chameleon.Boot.plist' in same partition  (Read 7179 times)

0 Members and 1 Guest are viewing this topic.

scopaev

  • Entrant
  • Posts: 2
I have 2 HD in my system:
  HD 0: MBR
    Partition 1: Dedicated GRUB
    Partition 2-4: Linux OS's

  HD 1: GPT
    Partition 2: Snow Leopard  (OsX 10.6)
    Partition 3: Lion  (OsX 10.7)
    Partition 4: Mountain Lion (OsX 10.8 )

I installed the OsX systems using specific Multibeasts for each OS.

I boot from 3 OsX grub menu listings that let me start the appropriate '/boot' file for any of the OsX partitions:
  Example To boot Lion:
    set root=(hd1,gpt2)
    multiboot /boot
I have verified that each of my grub selections runs the proper '/boot' file in the proper partition.


Here is my issue:
  No matter which partition '/boot' file I call from grub, the '/Extra/org.chameleon.Boot.plist' file from Snow Leopard is the only one that is ever read.
  This is only an issue because I had specified a different "Default Partition" for each plist hoping to get chameleon to autoboot that partition without me manually selecting it (since I had already manually selected it through grub).


What is the suggested course of action to ensure that if I called '/boot' from grub for "Mountain Lion", my "Mountain Lion" Partition '/boot' file will run the '/Extra/org.chameleon.Boot.plist' within it's own partition?


I have read (some random posting from a few years ago) that chameleon always looks at the first partition for an '/Extra/org.chameleon.Boot.plist', I guess that is what I am trying to override.


I can't seem to find any documentation on the boot1h partition loader...is that something I need/may be missing?


If there is no way around the booting from the first partition issue I was considering:
  Opening the boot file with a hex editor replacing all occurrences of 'org.chameleon.Boot.plist' with 'org.chameln01.Boot.plist'
  Then saving the file as bootpart01.

  I am assuming (which is probably wrong) that the 'org.chameleon.Boot.plist' file is called out in the /boot file and there are no checksums being used in chameleon for verifying the '/boot' file.

  I was going to create 3 of these special files (bootpart01,bootpart02,bootpart03).
  Place each one in a dedicated partition (in the root directory).

  Then I was going to place 3 plist files in the first/SnowLeopard Partition.
    org.chameln01.Boot.plist with special settings for the Snow Leopard  (specifically "Default Partition" )
    org.chameln02.Boot.plist with special settings for the Lion                  (specifically "Default Partition" )
    org.chameln03.Boot.plist with special settings for the Mountain Lion  (specifically "Default Partition" )

  Finally I would use grub to multiboot appropriately:
    set root=(hd1,gpt2)
    multiboot /bootpart01
    OR
    set root=(hd1,gpt3)
    multiboot /bootpart02
    OR
    set root=(hd1,gpt4)
    multiboot /bootpart03

  Assuming that the special /bootpart files are going to open special plist files.

  Am I going to waste my time tonight with this weird attempt or is there a cleaner/working solution that someone can point me in the appropriate direction?

  Thanks for any guidance.

scopaev

  • Entrant
  • Posts: 2
Just verified, IT works!!!!

So to recap, I kept all my Mac OsX partitions on a separate drive setup for a gpt file-system.

To boot from grub2 all you need for each menu entry is:
  insmod part_gpt           # needed for a gpt file-system
  insmod hfsplus
  set root='hd1,gpt3'        #  point to your hard drive and the specific partition
  multiboot /bootpart01   #  the modified boot file where all the occurrences of org.chameleon.Boot.plist were replaced with org.chameln01.Boot.plist


Then modify the original boot file (that came with chameleon) by replacing all the occurrences of the plist file with the new filename.  Then place the new boot file (I named as  bootpart01) in the root directory of the partition you want to boot.

Take the /Extra/org.chameleon.Boot.plist file from the partition you want to boot and create a new copy called org.chameln01.Boot.plist.
Finally copy that file into the first OsX partition /Extra folder (mine happened to be snow leopard).

You can modify the custom plist files as needed, I specifically used "Default Partition" on the partition I wanted to autoboot, and I also used "Hide Partition" on all the other partitions.

That's it.  If anyone needs better clarification/assistance, just let me know.

Is there any chance a future version of chameleon can simplify this process?  Maybe let the boot file be rename-able.  That is if I change the name from boot to bootmydrive.   Then internally, make the boot file look for something like org.chameleon.bootmydrive.Boot.plist.

That way no one would need to open the boot file and do a find/replace. 

The ability to rename the boot file sure got me over a hump I was struggling with for a couple of weekends now.

Hope this helps someone else
 :)