I fixed the problem, the root cause is : the following if-loop is never be true 
in apple

#if GRUB_DISK_DEVS_ARE_CHAR
  if (S_ISCHR (st.st_mode))
#else
  if (S_ISBLK (st.st_mode))
#endif
    ret = grub_util_get_fd_size_os (fd, name, log_secsize);


So i force the line "ret = grub_util_get_fd_size_os (fd, name, log_secsize);” 
to be execute, then everything work. I am using this command "hdiutil attach 
-imagekey diskimage-class=CRawDiskImage -nomount hd.img” to mount my loopback.

thanks
from Peter


> Andrei Borzenkov <[email protected]> 於 2015年11月13日 上午2:13 寫道:
> 
> 12.11.2015 13:16, [email protected] пишет:
>> I am in mac, grub called grub_util_get_fd_size() in unix/hostdisk.c, should 
>> i copy it to apple/hostdisk.c and fix the bug?
>> 
> 
> Apparently GRUB expects char devices on Apple. Try
> 
> grub-install ... /dev/rdisk2
> 
> instead. If it does not work, please send verbose log again.
> 
> 
> 
> 
> _______________________________________________
> Help-grub mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/help-grub


_______________________________________________
Help-grub mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-grub

Reply via email to