I've been testing grub on a few boxes here. We (mandrake) are wondering about
switching from lilo to grub. grub has a lot of advantages. It's main default is
people not knowing it => less support will be available on mailing lists...

Anyway, here are the problems i got with latest release:
- --disable-lba-support-bitmap-check needed (we can't ask users to recompile if
they have a buggy bios :)

- on a box, the bios doesn't remap and so it says it has 16383 cylinders.
get_diskinfo_standard reports only 1024 cylinders whereas
get_diskinfo_int13_extensions correctly returns 16383 cylinders.

- on yet another box, both get_diskinfo_standard and
get_diskinfo_int13_extensions reports only 1024 cylinders.

To be able to overcome these 2 pbs, i use this _ugly_ patch below. A better (?)
solution would be to remove each use of total_sectors for verification.

thanks, cu Pixel.


PS: lilo 21-4 (was 22) works on this 2 boxes. I didn't have a look to see how it
achives this. I think about something like not checking bounds like my patch does.

================================================================================
diff -r -u -N grub-0.5.94.old/stage2/bios.c grub-0.5.94/stage2/bios.c
--- grub-0.5.94.old/stage2/bios.c       Mon Feb  7 22:21:52 2000
+++ grub-0.5.94/stage2/bios.c   Wed Mar 22 14:38:04 2000
@@ -195,7 +195,7 @@
                           * geometry->heads
                           * geometry->sectors);
        }
-      geometry->total_sectors = total_sectors;
+      geometry->total_sectors = ~0L;
     }
   else
     {
diff -r -u -N grub-0.5.94.old/stage2/builtins.c grub-0.5.94/stage2/builtins.c
--- grub-0.5.94.old/stage2/builtins.c   Tue Feb 29 22:47:48 2000
+++ grub-0.5.94/stage2/builtins.c       Wed Mar 22 14:39:03 2000
@@ -1157,10 +1157,10 @@
 #endif
 
   grub_printf ("drive 0x%x: C/H/S = %d/%d/%d, "
-              "The number of sectors = %d, %s\n",
+              "%s\n",
               current_drive,
               geom.cylinders, geom.heads, geom.sectors,
-              geom.total_sectors, msg);
+              msg);
   real_open_partition (1);
 
   return 0;
================================================================================

Reply via email to