|
From: | Peter Cheung |
Subject: | RE: grub in mac |
Date: | Wed, 11 Nov 2015 11:57:54 +0800 |
I think the key point is "/toolchain/sbin/grub-bios-setup: info: the size of hd0 is 0.", grub think my /dev/disk2 is size zero. But it is 100MB
/Users/peter/NetBeansProjects/PeterI>df -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk1 233Gi 227Gi 5.7Gi 98% 59480109 1501109 98% / devfs 185Ki 185Ki 0Bi 100% 640 0 100% /dev map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home /dev/disk2s1 98Mi 1.0Mi 97Mi 2% 0 0 100% /Users/peter/NetBeansProjects/PeterI/temp thanks > Subject: Re: grub in mac > To: address@hidden > From: address@hidden > Date: Wed, 11 Nov 2015 06:43:14 +0300 > CC: address@hidden > > 11.11.2015 06:29, Peter Cheung пишет: > > Thanks i changed the device.map but still getting the same error :-( > >> cat device.map > > (hd0) /dev/disk2 > > > >> $base/sbin/grub-bios-setup --no-rs-codes -m device.map -c ../../`pwd`/temp/boot/grub/core.img -b ../../toolchain/lib/grub/i386-pc/boot.img $deviceName > > /toolchain/sbin/grub-bios-setup: error: guessing the root device failed, because of `disk `hostdisk//dev/rdisk1' not found'. > > > > > Could you add --verbose to grub-bios-setup and provide output? > > Also try grub-bios-setup ... '(hd0)' instead of passing OS device. > > > > > >> Subject: Re: grub in mac > >> To: address@hidden > >> From: address@hidden > >> Date: Wed, 11 Nov 2015 06:18:38 +0300 > >> CC: address@hidden > >> > >> 11.11.2015 06:05, Peter Cheung пишет: > >>> Hi yes, it is a loopback device in mac, > >>> /Users/peter>diskutil list > >>> /dev/disk0 (internal, physical): > >>> #: TYPE NAME SIZE IDENTIFIER > >>> 0: GUID_partition_scheme *251.0 GB disk0 > >>> 1: EFI EFI 209.7 MB disk0s1 > >>> 2: Apple_CoreStorage Macintosh HD 250.1 GB disk0s2 > >>> 3: Apple_Boot Recovery HD 650.1 MB disk0s3 > >>> /dev/disk1 (internal, virtual): > >>> #: TYPE NAME SIZE IDENTIFIER > >>> 0: Apple_HFS Macintosh HD +249.8 GB disk1 > >>> Logical Volume on disk0s2 > >>> AD00F0B6-B785-409F-B32F-F77FE8E2108E > >>> Unlocked Encrypted > >>> /dev/disk2 (disk image): > >>> #: TYPE NAME SIZE IDENTIFIER > >>> 0: FDisk_partition_scheme +104.9 MB disk2 > >>> 1: DOS_FAT_32 A 104.8 MB disk2s1 > >>> /Users/peter> > >>> This is my device.map: > >>> /Users/peter>cat NetBeansProjects/PeterI/device.map > >>> (hd0) /dev/loop0 > >>> The device.map work in linux, no sure it is the problem or not.thanksfrom Peter > >> > >> Do you have /dev/loop0 in OS X? You probably should have > >> > >> (hd0) /dev/disk2 > >> > >> > >> there. > >> > >> > >>>> Date: Tue, 10 Nov 2015 10:02:28 +0300 > >>>> Subject: Re: grub in mac > >>>> From: address@hidden > >>>> To: address@hidden > >>>> CC: address@hidden > >>>> > >>>> On Tue, Nov 10, 2015 at 9:59 AM, Peter Cheung <address@hidden> wrote: > >>>>> Hi Andrei > >>>>> the $deviceName is /dev/disk2, which is correct because i can see it > >>>>> using mac command "diskutil list". > >>>>> > >>>>> I am create a single file, containing a partition. I will use bochs emulator > >>>>> to boot that single file FS image. > >>>>> > >>>> > >>>> Is it something similar to Linux loop device then? I.e. /dev/disk2 > >>>> actually refers to this file you mention? Correct? What is in your > >>>> device.map? > >>>> > >>>>> thanks > >>>>> from Peter > >>>>> > >>>>>> Date: Tue, 10 Nov 2015 09:27:19 +0300 > >>>>>> Subject: Re: grub in mac > >>>>>> From: address@hidden > >>>>>> To: address@hidden > >>>>>> CC: address@hidden > >>>>> > >>>>>> > >>>>>> On Tue, Nov 10, 2015 at 7:33 AM, Peter Cheung <address@hidden> > >>>>>> wrote: > >>>>>>> hi, > >>>>>>> i am nearly able to build a file system image with FAT partition in mac, > >>>>>>> but i stuck in this command: > >>>>>>> > >>>>>> > >>>>>> Do you mean you create hard disk image and want to install GRUB on this > >>>>>> image? > >>>>>> > >>>>>>> sudo $base/sbin/grub-bios-setup --no-rs-codes -m device.map -c > >>>>>>> ../../`pwd`/temp/boot/grub/core.img -b > >>>>>>> ../../toolchain/lib/grub/i386-pc/boot.img $deviceName > >>>>>> > >>>>>> And what is $deviceName? > >>>>>> > >>>>>>> /toolchain/sbin/grub-bios-setup: error: attempt to read or write outside > >>>>>>> of > >>>>>>> disk `hostdisk//dev/disk2'. > >>>>>>> > >>>>>> > >>>>>> This means GRUB does not detect $deviceName as device available at > >>>>>> boot time. Usual big hammer is suitable device.map. > >>>>>> > >>>>>>> I cross compiled my grub by : > >>>>>>> > >>>>>>> ./configure --prefix=$PREFIX --target=i586-peter-elf > >>>>>>> > >>>>>>> Any tips? > >>>>>>> > >>>>>>> > >>>>>>> Below is my script to make the fs image: > >>>>>>> > >>>>>>> base=/toolchain > >>>>>>> > >>>>>>> rm -fr hd.img > >>>>>>> > >>>>>>> tempDeviceName=`hdiutil info|grep FDisk|cut -d$'\t' -f1` > >>>>>>> > >>>>>>> hdiutil eject $tempDeviceName > >>>>>>> > >>>>>>> commands=( `which dd` `which kpartx` $base/bin/grub-mkimage > >>>>>>> $base/sbin/grub-bios-setup ) > >>>>>>> > >>>>>>> error="false" > >>>>>>> > >>>>>>> for c in address@hidden; do > >>>>>>> > >>>>>>> if [ ! -x $c ]; then > >>>>>>> > >>>>>>> echo "************************************************************"; > >>>>>>> > >>>>>>> echo "$c not found!"; > >>>>>>> > >>>>>>> echo "************************************************************"; > >>>>>>> > >>>>>>> error="true"; > >>>>>>> > >>>>>>> fi > >>>>>>> > >>>>>>> done > >>>>>>> > >>>>>>> > >>>>>>> if [ "$error" == "true" ]; then > >>>>>>> > >>>>>>> exit; > >>>>>>> > >>>>>>> fi > >>>>>>> > >>>>>>> > >>>>>>> dd if=/dev/zero of=hd.img count=10240 bs=10240 > >>>>>>> > >>>>>>> #kpartx -d hd.img > >>>>>>> > >>>>>>> deviceName=`hdiutil attach -imagekey diskimage-class=CRawDiskImage > >>>>>>> -nomount > >>>>>>> hd.img` > >>>>>>> > >>>>>>> deviceName=${deviceName//[[:space:]]/} > >>>>>>> > >>>>>>> echo "deviceName="$deviceName > >>>>>>> > >>>>>>> > >>>>>>> umount temp > >>>>>>> > >>>>>>> rm -fr temp > >>>>>>> > >>>>>>> mkdir temp > >>>>>>> > >>>>>>> # create partition > >>>>>>> > >>>>>>> diskutil partitionDisk $deviceName MBRFormat "MS-DOS FAT32" "A" 100% > >>>>>>> > >>>>>>> umount /Volumes/a > >>>>>>> > >>>>>>> # end create partition > >>>>>>> > >>>>>>> mount -t msdos $deviceName"s1" temp > >>>>>>> > >>>>>>> mkdir -p temp/boot/grub > >>>>>>> > >>>>>>> cp grub.cfg temp/boot/grub/ > >>>>>>> > >>>>>>> cp kernel/kernel temp/boot/ > >>>>>>> > >>>>>>> > >>>>>>> # setup grub > >>>>>>> > >>>>>>> echo "(hd0) /dev/loop0" > device.map > >>>>>>> > >>>>>>> echo "set prefix=(hd0,msdos1)/boot/grub" > mycfg.cfg > >>>>>>> > >>>>>>> > >>>>>>> $base/bin/grub-mkimage --config=mycfg.cfg -p /boot -O i386-pc -o > >>>>>>> temp/boot/grub/core.img biosdisk part_msdos fat vbe vga echo configfile > >>>>>>> multiboot multiboot2 > >>>>>>> > >>>>>>> cp $base/lib/grub/i386-pc/boot.img temp/boot/grub/ > >>>>>>> > >>>>>>> > >>>>>>> $base/sbin/grub-bios-setup --no-rs-codes -m device.map -c > >>>>>>> ../../`pwd`/temp/boot/grub/core.img -b > >>>>>>> ../../toolchain/lib/grub/i386-pc/boot.img $deviceName > >>>>>>> > >>>>>>> # end setup grub > >>>>>>> > >>>>>>> > >>>>>>> umount temp > >>>>>>> > >>>>>>> #kpartx -d hd.img > >>>>>>> > >>>>>>> hdiutil eject $deviceName > >>>>>>> > >>>>>>> rm -fr temp > >>>>>>> > >>>>>>> rm -fr device.map > >>>>>>> > >>>>>>> rm -fr mycfg.cfg > >>>>>>> > >>>>>>> > >>>>>>> thanks > >>>>>>> from Peter (address@hidden) > >>>>>>> > >>>>>>> _______________________________________________ > >>>>>>> Help-grub mailing list > >>>>>>> address@hidden > >>>>>>> https://lists.gnu.org/mailman/listinfo/help-grub > >>>>>>> > >>>> > >>>> _______________________________________________ > >>>> Help-grub mailing list > >>>> address@hidden > >>>> https://lists.gnu.org/mailman/listinfo/help-grub > >>> > >>> > >> > >> > >> _______________________________________________ > >> Help-grub mailing list > >> address@hidden > >> https://lists.gnu.org/mailman/listinfo/help-grub > > > > > > > _______________________________________________ > Help-grub mailing list > address@hidden > https://lists.gnu.org/mailman/listinfo/help-grub |
[Prev in Thread] | Current Thread | [Next in Thread] |