View Single Post
Old 09-12-2011, 16:19   #1 (permalink)
M,Irfan
Freak Poster
 
M,Irfan's Avatar
 
Join Date: Mar 2011
Age: 41
Posts: 163
Member: 1542608
Status: Offline
Thanks Meter: 94
[Guide] Boot OS X from External USB drive - Complete HOWTO

HOWTO: Boot Mac OS 10.4.8 on an AppleTV without opening the case

Goal: Boot up Mac OS X on an AppleTV from a USB drive without voiding warranty. This is done to allow the user to install hacks on the AppleTV internal drive itself.

Credits:
Modified Kernel by semthex [Cash Advance | Debt Consolidation | Insurance | Free Credit Report | Cell Phones at Semthex.com]
Partitioning portions taken from Turbo's "Creating a disk to boot from USB" notes [0xfeedbeef.com - AppleTV Hacks]
Portions of this guide taken from semthex's "Mac OS X running on Apple TV" howto
Small portions written by Paul Taylor [http://www.addressplus.net]

Required materials:
An AppleTV
A boot.efi file from an AppleTV (don't ask me where to find this)
Intel Mac
Tiger Install CD
External USB 2.0 hard drive

Set up your USB drive
1. In Mac OS, open Disk Utility
2. In the left pane of Disk Utility, select the USB drive
3. Hit the Options button at the bottom of the screen.
4. On the resultant screen, select GUID Partition Table. This is required to be able to install Mac OS X.
5. Lay out your partitions the way you want.. (One big, two, whatever) and format them with Mac OS Extended (Journaled)
6. Let the format finish. When done, you should be able to mount the drive.

Install Mac OS X
1. Pop in your install disk with the external drive attached
2. Reboot, holding down the Option key on your keyboard
3. Select the CD icon to boot from your install CD
4. Run through the complete installation process, selecting your USB drive as the destination.

Customize your USB installation
1. Run through the normal 1st boot stuff (Add user, etc.)
2. Download this: http://www.apple.com/support/downloa...dateintel.html
3. Install the 10.4.8 combo update
4. Reboot. Go to software update and get all the updates EXCEPT 10.4.9
5. System Prefs > Sharing
6. Check Remote Login here (this enables SSH)
7. Check Apple Remote Desktop
8. Click "Access Privileges", check the "VNC viewers" box, and put in a password here. This will let you remote control your AppleTV after you boot it with this installation.
9. Do any other customization you desire, except update to a newer version of Tiger

Get ethernet working with PCGenRTL8139Ethernet 1.2.0
1. Download Download PCGenRTL8139Ethernet-1.2.0.zip from Sendspace.com - send big files the easy way
2. Install per the instructions in the file
(Note: This is needed to get either the built-in Ethernet to work or the *******. This doesn't break Ethernet support for an Intel Core Duo iMac - not sure about others.)

Install proper kernel
1. Boot back up to your internal hard drive
2. Download the kernel from one of the mirrors listed here:
[Kernel] For AppleTV (to run OSX)
3. Mount your external drive
4. From a Terminal window, do this: ls -la /Volumes/YourExternalDisk
5. You will see a file called mach_kernel there.
6. Delete this file (may have to sudo rm /Volumes/YourExternalDisk/mach_kernel). Be careful here NOT to delete the kernel on your Internal Boot disk!
7. Copy the unzipped kernel you downloaded in step 2 to /Volumes/YourExternalDisk

Install boot.efi
1. Replace /System/Library/CoreServices/boot.efi with the boot.efi file from the AppleTV boot drive (it is in the same path)
2. To do the above, you may have to do a "Get Info" on the boot.efi file on your external drive and uncheck the "Locked" checkbox.
3. Bless the installation from a Terminal:
sudo bless --folder=/Volumes/YourExternalDisk/System/Library/CoreServices --file=/Volumes/YourExternalDisk/System/Library/CoreServices/boot.efi --setBoot

Cleanup
1. Delete the Nvidia kexts (all begining with NVD, there are 5) from /Volumes/YourExternalDisk/System/Library/Extensions
2. Delete /Volumes/YourExternalDisk/System/Library/Extensions.mkext and Extensions.kextcache if they exist

Patch AppleFileSystemDriver
NOTE: Perform these steps with a command line text editor or with TextWrangler (http://www.barebones.com/products/te...ownload.shtml). DO NOT USE TEXTEDIT!
1. Edit /Volumes/YourExternalDisk/System/Library/Extensions/AppleFileSystemDriver.kext/Contents/Info.plist
2. Search for "IOPropertyMatch". It will be found similar to this:

PHP Code:
    <key>media-match</key>
            <
dict>
                <
key>IOPropertyMatch</key>
                <array>
                    <
dict>
                        <
key>Content Hint</key>
                        <
string>48465300-0000-11AA-AA11-00306543ECAC</string>
                        <
key>Leaf</key>
                        <
true/>
                    </
dict
3. Just after the line with <array>, copy/paste this in:

PHP Code:
   <dict>
                        <
key>Content Hint</key>
                        <
string>5265636F-7665-11AA-AA11-00306543ECAC</string>
                        <
key>Leaf</key>
                        <
true/>
                    </
dict>
                    <
dict>
                        <
key>Content Hint</key>
                        <
string>Apple_Recovery</string>
                        <
key>Leaf</key>
                        <
true/>
                    </
dict
Change Partition Type
NOTE: Once you do this, you can't mount the disk on your Intel Mac anymore without reversing the change. If you mess up here, you'll need to start over.
1. Open Disk Utility
2. Select the external disk from the left pane. Right click and select "Information"
3. Take note of the "Disk Indentifier". In my case, it is "disk3". For safety reasons, the rest of this guide is written with "diskX". Replace the X with the number of your drive.
4. From Terminal:
gpt -r show /dev/diskX
5. You'll get something similar to this back:

PHP Code:
  start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6         
         40     409600      1  GPT part 
C12A7328-F81F-11D2-BA4B-00A0C93EC93B
     409640   77757488      2  GPT part 
48465300-0000-11AA-AA11-00306543ECAC
   78167128     262144         
   78429272   77610032      3  GPT part 
48465300-0000-11AA-AA11-00306543ECAC
  156039304     262151         
  156301455         32         Sec GPT table
  156301487          1         Sec GPT header 
6. A little explanation here is in order. The first real partition is on the line beginning with 40. In this case, it runs from 40 through 409600. (I'm guessing these are bytes) Next to the size is the index, 1. The very next line is the one we are interested in. This is the partition that contains your bootable install. It is index 2. You may or may not have and index 3)

7. Unmount the disk:
disktool -u diskX

8. Now, we remove the entry in the table for the 2nd partition
gpt remove -i 2 /dev/diskX

I got this back:
gpt remove: /dev/disk3: 1 partition(s) removed

9. Mac OS will remount any remaining partitions. Unmount them:
disktool -u diskX

10. Now, we add a new entry to the table. For index 2, take note of the start, and the size, as you'll need them here. Replace the START and SIZE strings with your values.

gpt add -b START -s SIZE -i 2 -t "5265636F-7665-11AA-AA11-00306543ECAC" /dev/diskX

Note that it doesn't tell you anything back.. You just get a prompt.

11. Performing step 5's command again gets me this:

PHP Code:
 start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6         
         40     409600      1  GPT part 
C12A7328-F81F-11D2-BA4B-00A0C93EC93B
     409640   77757488      2  GPT part 
5265636F-7665-11AA-AA11-00306543ECAC
   78167128     262144         
   78429272   77610032      3  GPT part 
48465300-0000-11AA-AA11-00306543ECAC
  156039304     262151         
  156301455         32         Sec GPT table
  156301487          1         Sec GPT header 
Note that the index 2 partition type is now the required type for AppleTV to boot to.

Boot your AppleTV with OS X
1. Attach your external drive to the USB port
2. If already booted up, hit MENU and "-" on your remote and hold it until a reboot start
3. If your AppleTV isn't on, plug it in to power. No remote finagling required.
4. Watch in AWE as your AppleTV boots up OS X.
  Reply With Quote
 
Page generated in 0.15092 seconds with 7 queries