help-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

xnu_kernel64: Unable to boot into Mountain Lion


From: Mihai Draghicioiu
Subject: xnu_kernel64: Unable to boot into Mountain Lion
Date: Thu, 26 Sep 2013 13:53:20 +0300

Hello everyone!

I'm trying to get a triple boot 64-bit Intel PC going correctly. There are Windows 8, Debian 7 and OSX Mountain Lion on it.

Windows 8 and Debian boot fine from Grub, but the only way I got Mountain Lion to boot was via chainloading the Chameleon bootloader. The other option is using the xnu_* commands available, and update-grub generates the proper menu entries, however, when I choose the 32 bit menu entry it says there is no suitable kernel for 32 bit, and when I choose the 64 bit entry, it hangs for 1-2 seconds and then reboots. I've managed to place echo's in the boot sequence, and every command is executed before the reboot takes place. There is no output, the machine reboots before reaching the Apple logo loading screen.

If this is a bug, and not a misuse on my part, please mention so I can submit it to the grub and debian bug trackers (personally I think it's already a Debian bug).

Also, perhaps there are some debug flags I can turn on to see what's happening?

I've found a similar situation on this webpage http://www.insanelymac.com/forum/topic/282748-grub2-xnu-kernel/

Now I'm going to provide as much info as I can, please specify if more is needed to get a proper idea why this doesn't work:

OS X version is Mountain Lion 10.8

HDD is 1TB
Partition table (MBR):
  Primary 200G NTFS (Win 8)
  Primary 100G HFS+ (OSX) Active
  Extended
    Linux 20G
    Swap 5G
    600G NTFS (Storage)

# fdisk /dev/sda

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.

Command (m for help): p

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xfa12c820

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   419432447   209715200    7  HPFS/NTFS/exFAT
/dev/sda2   *   419432448   629147647   104857600   af  HFS / HFS+
/dev/sda3       629147648  1953525167   662188760    5  Extended
/dev/sda5       629149696   671092735    20971520   83  Linux
/dev/sda6       671094784   681580543     5242880   82  Linux swap / Solaris
/dev/sda7       681582592  1953525167   635971288    7  HPFS/NTFS/exFAT



Here are a few menu entries that generate this behavior:

This I got from some webpage - it seems minimal
menuentry "Mac OS X" {
  set root=(hd0,2)
  insmod video
  insmod vbe
  gfxmode="1280x800x32"
  xnu_kernel /mach_kernel rd=disk0s2
  if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ]; then
     xnu_mkext /System/Library/Extensions.mkext
  else
     xnu_kextdir /System/Library/Extensions
  fi
}


This is generated by update-grub:

menuentry "Mac OS X (64-bit) (on /dev/sda2)" --class osx --class darwin --class os {
insmod part_msdos
insmod hfsplus
set root='(/dev/sda,msdos2)'
search --no-floppy --fs-uuid --set=root 689f9c8a6b4f3520
        load_video
        set do_resume=0
        if [ /var/vm/sleepimage -nt10 / ]; then
           if xnu_resume /var/vm/sleepimage; then
             set do_resume=1
           fi
        fi
        if [ $do_resume = 0 ]; then
           xnu_uuid 689f9c8a6b4f3520 uuid
           if [ -f /Extra/DSDT.aml ]; then
              acpi -e /Extra/DSDT.aml
           fi
           xnu_kernel64 /mach_kernel boot-uuid=${uuid} rd=*uuid
           if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ]; then
              xnu_mkext /System/Library/Extensions.mkext
           else
              xnu_kextdir /System/Library/Extensions
           fi
           if [ -f /Extra/Extensions.mkext ]; then
              xnu_mkext /Extra/Extensions.mkext
           fi
           if [ -d /Extra/Extensions ]; then
              xnu_kextdir /Extra/Extensions
           fi
           if [ -f /Extra/devprop.bin ]; then
              xnu_devprop_load /Extra/devprop.bin
           fi
           if [ -f /Extra/splash.jpg ]; then
              insmod jpeg
              xnu_splash /Extra/splash.jpg
           fi
           if [ -f /Extra/splash.png ]; then
              insmod png
              xnu_splash /Extra/splash.png
           fi
           if [ -f /Extra/splash.tga ]; then
              insmod tga
              xnu_splash /Extra/splash.tga
           fi
        fi
}

And, finally, this is what I'm using which works by chainloading (one of the commands, possibly search, generates an error, but that's fine, it works anyway):

menuentry "Mountain Lion (Chameleon)" --class osx --class darwin --class os {
insmod part_msdos
insmod hfsplus
set root=(hd0,2)
search --no-floppy --file --set=root (hd0,2)
parttool (hd0,2) boot+
sendkey enter
chainloader /boot0
}

Any ideas and hints are welcome, thanks!

reply via email to

[Prev in Thread] Current Thread [Next in Thread]