grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

does disk geometry depend on partition table?


From: Zhixu Liu
Subject: does disk geometry depend on partition table?
Date: Mon, 6 Nov 2006 17:07:51 +0800

Hi, all,

We encounter a strange problem recently. In short, following is the output of geometry of
hd0 in situation with correct partition in disk and without partition in disk.
When with correct partition table in disk hd0:

grub> geometry (hd0)
drive 0x80: C/H/S = 500/16/32, The number of sectors = 256000, LBA

When without partition table in disk hd0:
grub> geometry (hd0)
drive 0x80: C/H/S = 126/32/63, The number of sectors = 256000, LBA
The former is correct! However, it's strange that the disk geometry depend on the partition table?!
Maybe this is due to a buggy BIOS implementation. We also check the code in disk/i386/pc/biosdisk.c
or (stage2/bios.c) for grub-0.97, and for code in function grub_biosdisk_open (or get_diskinfo in grub-0.97),
there is a standard int13 check of disk after check with ext int13,

  if(drive & 0x80) {
     ...
    version = grub_biosdisk_check_int13_extension();
      if(version) {
         grub_biosdisk_get_diskinfo_int13_extensions();
      }
   }

   grub_biosdisk_get_diskinfo_standard()

We're wondering does it really need to call grub_biosdisk_get_diskinfo_standard() again if we have get the necessary information
from ext int13? I think we call the later only if ext int13 failed for some reason. Especially in our case the code should be .

  if(drive & 0x80) {
     ...
    version = grub_biosdisk_check_int13_extension();
      if(version) {
         grub_biosdisk_get_diskinfo_int13_extensions();
      } else {
         grub_biosdisk_get_diskinfo_standard()
      }
   }

and it do works!

Of course, maybe there are some details I'm not clear. Does anyone encounter this problem before?

Best regards!
--
Zhixu Liu
reply via email to

[Prev in Thread] Current Thread [Next in Thread]