Saturday, November 1, 2008

Still waiting for root device II


This post is a continue part of my previouse "Still waiting for root device" post that covered several solutions including:

  • use RD=DiskXsY darwin switch
  • BIOS configuration
  • flag OSX86 partition as bootable

this post will display more good options to get pass this error, starting with the simplest:


1. Download another distribution
the simplest solution is sometimes the less obviouse, although you probably thinking "what good can another copy of Hackintosh do for my hardware compatability error?" well the thing is that OSX86 is a shrinked OSX with hacked, tweaked, opensource drivers for a PC, this what makes you PC compatible with OSX, one distribution does not include the same drivers as the other, also versions of the same published contains different drivers, for instamce Leo4All_v2 may work on your machine but Leo4All_v3 might not. so be sure to download as much distributions you can until your problem is solved.


2. Plug USB/Firewire drive (even DiskOnKey)
another simple solution is to plug an external drive like a USB or Firewire drive or even a USB DiskOnKey (size doesn't matter, in this case anyway) in your USB port and reboot the system, with the Hackintosh OSX86 DVD in the DVD drive, once the darwin countdown appear press F8 in order to get the boot prompt and use the RD=DiskXsY switch (switch use is explained in this post in greater details) and point the disk number and partition number to the external drive. this solution is only to get the installtion started, not a permanent solution, after the installation is running you can choose different combination of drivers until the installed system will load without the need to use the USB plug trick.


3. Use External DVD
if you can access external DVD drive or a SATA drive then try using it, most of the times the problem is hardware inconsistency with the driver installed on the DVD, this means that you might have a DVD that the booting driver set (this set is different then the driver it contains in order to install on your system) includes SATA harddrive driver, and your harddrive might be SATA but the DVD is IDE, and ofcource it can be vice versa, that the HD is IDE and the DVD is SATA and driver is one of them (IDE/SATA), so try to make it consistent, use the same HD and DVD type (even by plugging external DVD so it will be USB instaed of SATA or IDE) and find a distribution that will load them.


4. Play with Master/Slave settings
sometimes when your PC contains IDE hraddrive and IDE DVD you need to play with the master slave configuration (use this option only if you know what it means, this option involve openning the PC case and play with harddrive/DVD jumpers)


5. More darwin swiches to try
there are more swich you can try beside rd=diskXsY, you can read about them in this post, try these next swiches: platform=X86PC -x -f cpus=1, try them in different combinations until you succeed.


6. Create an HFS+ partition prior to the installation
if the installation cannot find your root device although you tried previouse sulutions then try creating an HFS+ partition and point to it using the rd=diskXsY at boot time.


from windows create a partition of AF type (HFS+ type), do it like this:

  • from windows press Start->run and write: cmd and press enter
  • write diskpart and press enter

  • write: list disk (it will display all available HD)

  • select the number of the one you want to install Leopard on like this: write: select disk NUM_OF_DISK and press enter (replace NUM_OF_DISK with the number of the disk you want)

  • next write: list partition and press enter

  • it will display all the partitions on that disk, now delete the partition you planed to install on like this: delete part NUM_OF_PART and press enter (replace NUM_OF_PART with the partition you wanted to install leopard on), if you don't have such partition then skip to the next part

  • create a partition of the AF type like this: write: create partition primary id=AF and press enter

  • write: active and press enter

  • reboot and try to load the installation from the DVD again

7. Copy the Extensions folder from DVD to the Harddrive
this solution is for all of you that got the "Still waiting" error after the installation processed finished and first reboot occurred. if this is your case then it means that you have succeeded to boot into the DVD inorder to install (so the correct drivers for your system reside in the DVD boot extensions folder) but when you finished installing the drivers you selected they just won't boot and the Still waiting for root device appears, then all you have to do is to copy the DVD boot extensions folder into your installed copy and by that boot from your harddrive using the DVD drivers, do it like this:


boot from the install DVD, from utilities menu item select the terminal and write the following commands, but replace the word Leopard with your installation partition name (you set it during installation):
cd /System/Library
mv /Volumes/Leopard/System/Library/Extensions /Volumes/Leopard/System/Library/Extensions.bak
cp -R Extensions /Volumes/Leopard/System/Library
cd /Volumes/Leopard/System/Library
chmod -R 755 Extensions
chown -R 0:0 Extensions

after this the system should be able to boot on its own, you may need to flag the partition as bootable read how to do this here.


8. Change the ATA driver on the DVD
this last suggestion is very good but very hard to nail. it involves hacking the IOATAFamily.kext. this is the kext that is responsible for the attached hardware on your machine (ATA= AT Attachments, SATA = Serial ATA) like IDE hard drives or CD/DVD we will insert your controller Vendor ID and Device ID to it. follow these instructions:


  • boot into windows

  • open control panel

  • find your Disk controller

  • right click and choose properties

  • chose the Details tab

  • the first line contains something like this: PCI\VEN_30BE&DEV_004A...

  • Vendor id is the 4 characters after the word: VEN_

  • Device id is the 4 characters after the word: DEV_

  • write on a paper the sting like this: 0x + VendorID + DeviceID (without plus or space for instance this example should be like this: 0x30BE004A)

  • next stage involve using MacDrive and some util that will mount your install DVD ISO file (like alcohol), you need to mount the DVD after installing MacDrive that allows you to access Mac file system,

  • cd into the folder:

  • make sure you have at least these folders in there: AppleGenericPCATA.kext AppleOnboardPCATA.kext IOATAPIProtocolTransport.kext AppleIntelPIIXATA.kext AppleVIAATA.kext AppleNForceATA.kext IOATABlockStorage.kext

  • also make sure you have the folder: /System/Library/Extensions/JMicronATA.kext (if you use a JMicron controller and IDE hard drive)

  • next open in an editor the file: /System/Library/Extensions/IOATAFamily.kext/Contents/PlugIns/AppleVIAATA.kext/Contents/Info.plist

  • find this tag: <>IOPCIPrimaryMatch< /key >

  • after it you will find a tag: <> with allot of strings like you wrote on the paper in it.

  • add your string (one you wrote on the paper, but first make sure it is not already there, if it is - abort this step (Solution 8) completely) with a space between it to the others (location isn't matter as long as it is in the tag like the others)

  • save it

  • delete the file: /System/Library/Extensions.mkext

  • save the ISO file with these changes, burn it onto a DVD, boot from it with -F at the darwin prompt.

hope all these solutions help you,
ShayBC.


You might want to read these related posts:
Still waiting for root device
Darwin Boot Options
Download Hackintosh OS X Leopard
Blinking cursor after OSX86 install
Restore bootable partition

Tuesday, October 28, 2008

Make secondary install bootable


This post explain how to make a Leopard (hackintosh) secondary install bootable, any computers that has more then one OSX86 installd have a primary install and secondary install, a secondary install can be install on USB driver, Disk-On-Key, another partition, as long as you can boot more then one OSX86 on that computer, that means that you will load the working OSX86 and from there repair the non-bootable OSX.
for only and primary install read this post.

please note that this proccess will work for MBR and GUID partition scheme, if you don't know what this means, or want to learn how to check which of the two partition scheme you have then you can read this post.

in order to make your secondary partition bootable, please follow these next steps:
1. boot into your working OSX86 partition
2. download this file and extract it, for this post i will extract it in the root folder / so now i have a folder named: /MakeBootable
3. make sure you know what partition scheme you have (MBR or GUID)
4. open terminal (Applications->Utilities) and write the following commands
5. sudo -s (and write your password)
6. cd /MakeBootable (this is the folder you downloaded and extracted at step 2)
7. diskutil umount force /Volumes/Leopard (replace the word Leopard with your non-bootable drive name)

the result should look like this:

Volume Leopard on disk1s1 forced unmounted

if you don't know the name of the drive (that is non-bootable) then you can write this:
mount -t hfs

then you get a list of all known drives in your system the result should look like this:
/dev/disk0s2 on / (hfs, local, journaled)
/dev/disk1s1 on /Volumes/Leopard (hfs, local, journaled)

8. now write the command:
dd if=./mbr/boot1h of=/dev/rdiskXsY bs=512 count=1
(replace the letter X with your non-bootable drive number and the letter Y with your non-bootable partition number, in this example it will be: rdisk1s1)
also if you have MBR partition scheme then leave the word mbr as written in the example, if you have a GUID partition scheme then write guid instead of the mbr word then it should look like this: dd if=./guid/boot1h of=/dev/rdiskXsY bs=512 count=1

the result should look like this:
1+0 records in
1+0 records out
512 bytes transferred in 0.008498 secs (60250 bytes/sec)
9. write the command:
dd if=./mbr/boot0 of=/dev/diskX bs=400 count=1
(replace the letter X with the number of the non-bootable disk, in this example it will be 1 then for this example it should look like this: disk1)
also if you have MBR partition scheme then leave the word mbr as written in the example, if you have a GUID partition scheme then write guid instead of the mbr word then it should look like this: dd if=./guid/boot0 of=/dev/diskX bs=400 count=1

the result should look like this:
1+0 records in
1+0 records out
400 bytes transferred in 0.018606 secs (21498 bytes/sec)

10. write the command:
diskutil umount force /Volumes/Leopard
(replace the word Leopard with your non-bootable drive name)

the result should look like this:
Volume DiskOnKey on disk1s1 forced unmounted

11. write the command:
./startupfiletool -v /dev/diskXsY ./boot_v8
(replace the letter X with your non-bootable drive number and the letter Y with your non-bootable partition number, in this example it will be: disk1s1)

the result should look like this:
HFS+ filesystem detected
Looking for 1 word free
reading 4096,4096
Marking word 196
writing back 4096,4096
allocated blocks 32 at start 6272


now the disk should be bootable and should be able to boot on his own, you may do the steps in this post or this post as a completeing procedure in order to make sure that the OSX is the first partition to boot from.

Shay.

Sunday, October 19, 2008

Make primary install bootable



how to make a primary installation OSX partition bootable?
sometimes you are going to need a solution for a non bootable partition that was previousely bootable or after successful installation the partition remain non-bootable.

please note that the solution sugested here is for a primary installtion, which means it is for the main and only OSX installation on your computer and you have no way to boot into another OSX system. although it is possible to restore a secondary OSX installaion to be bootable again using this method, there is a simpler solution and it is described at this post.

primary installaion = the first and only OSX installation on your computer.
secondary installation = second (or greater) installation of OSX type (means you have more then one OSX installed on your computer) a disk-on-key/external USB/Firewire drive can be considered a secondary installation for this matter.

also note that this post is for MABR partition scheme (and not for GUID partition scheme). if you don't know what MBR or GUID partition scheme means then please read this post first.

in order to make an OSX86 partition bootable follow these next steps:
1. boot leopard DVD into Single Mode (you can red how to do that here)

2. type the next commands at the command line:
cd /usr/standalone/i386
ls


the result of these two lines should be a list displaying all the files in the i386 folder,
please make sure that at least these files exist:
boot0
boot1h
boot_v8
startupfiletool


if these files does not exist they can be copied from the installation DVD, in order to copy the files from the DVD use the method explained in this post. the files can also be downloaded from here.

3. if this is the case then type:
dd if=./boot1h of=/dev/rdiskXsY bs=512 count=1
(replace the X letter with the drive number that the OSX is installed on, the first drive is 0 the second is 1 and so on. replace the Y letter with the OSX partition number, the first partition is 1, the second partition is 2 etc. example: my computer has only one drive so my drive number is 0, and i have windows installed on the first partition and OSX on the second partition, so my OSX partition should be 2, therefor my parameter should be: rdisk0S2)

you should see an output result similar to this:
1+0 records in
1+0 records out
512 bytes transferred in 0.008498 secs (60250 bytes/sec)


4. now type this command:
dd if=./boot0 of=/dev/diskX bs=400 count=1
(replace the X letter with the OSX drive number, first drive is 0, second drive is 1 etc. also please note that it is diskX and not rdiskX as the previouse command)

you should see an output result similar to this:
1+0 records in
1+0 records out
400 bytes transferred in 0.018606 secs (21498 bytes/sec)


5. type in the next command:
./startupfiletool -v /dev/diskXsY ./boot_v8
(replace the X with the number of the OSX drive and Y with the number of the OSX partition)

you should see an output result similar to this:
HFS+ filesystem detected
Looking for 1 word free
reading 4096,4096
reading 8192,4096
reading 12288,4096
Marking word 510
writing back 1288,4096
allocated blocks 32 at start 81856


now the disk should be bootable and should be able to boot on his own, you may do the steps in this post or this post as a completeing procedure in order to make sure that the OSX is the first partition to boot from.

Shay.

Wednesday, October 15, 2008

Honey i'm home

hi,


i know that i have been away for several month from the blog, but in my defenece i have to say it was for the greater good, i took the time to create a hebrew blog and a forum that helped a hundred people or so, small group, i know, but in israel it is alot.
i wish to revive this blog but i am thinking of writing more on mac related issues tips, tricks, applications review site spoted etc. ofcource that i will also write posts regarding hackintosh, the thing is that hackintosh subjects are hard to find since most have been written and covered allready, most of my work is support people through email or forum, i have decided to add donation button so it will keep me motivated, if you find my work helpfull please consider donating, i hope i can help you guys more this way.

if you wish you may send me mail and request issues to cover on the blog, kind of a wish list, also there are about 4-5 mail i received and yet to answer but be sure i will get to them on the comming weekend.
thanks guys for reading this blog, drop me a line and let me know what you like most about it.
Shay.

 
the menu is from: Milonic DHTML menus