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