Hello, I was looking into how grub2 works and noticed that in the load list in grub2/boot/i386/pc/diskboot.S sector number is 8-byte integer, while grub2/util/i386/pc/grub-mkimage.c sets the number of sectors to load at 4-byte offset. Because of this it actually patches upper part of the sector rather than number of sectors.
This is the changes I've made: ====================================================== --- grub-mkimage.old Mon May 08 14:29:10 2006 +++ grub-mkimage.c Mon Nov 13 13:41:01 2006 @@ -143,7 +143,7 @@ generate_image (const char *dir, FILE *o /* i386 is a little endian architecture. */ *((grub_uint16_t *) (boot_img + GRUB_DISK_SECTOR_SIZE - - GRUB_BOOT_MACHINE_LIST_SIZE + 4)) + - GRUB_BOOT_MACHINE_LIST_SIZE + 8)) = grub_cpu_to_le16 (num); grub_util_write_image (boot_img, boot_size, out); ====================================================== Sincerely, Andrey Shuvikov ____________________________________________________________________________________ Yahoo! Music Unlimited Access over 1 million songs. http://music.yahoo.com/unlimited _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel