Re: FreeBSD/FDisk geometry problems - SOLVED!

From: Hendrik Hasenbein (hhasenbe_at_techfak.uni-bielefeld.de)
Date: 01/24/04

  • Next message: Hendrik Hasenbein: "Re: Folding@Home problem"
    Date: Sat, 24 Jan 2004 10:43:17 +0100
    To: Keith Kelly <c0d3h4x0r@hotmail.com>
    
    

    Keith Kelly wrote:
    > I've found a bug in FDisk which is responsible for all the problems I've
    > had trying to get FreeBSD installed. I also found a work-around, and
    > I'm happy to report I'm typing this message from Konquerer inside
    > FreeBSD 5.1-RELEASE right now.

    Gratulation.

    > Basically, the problem is that FreeBSD's FDisk and the motherboard BIOS
    > independently calculate a set of CHS values (Cylinders/Heads/Sectors)
    > based on the total sector count of the disk, but they do it in different
    > ways and thus end up with different values.

    Yes. That is because there are different ways to calculate that.

    > So, the problem is that FDisk makes *different* assumptions than my BIOS
    > does about what the sectors and heads values should be.

    That has always been the problem for CHS conversions.

    > I ran across
    > some information on a BIOS manufacturer's site which claimed that for
    > "LBA mode" SCSI drives (more accurately known as "LBA-Assist translation
    > mode"), that it is safe to assume that sectors should be 63 and heads
    > should be 255. Given that FreeBSD's roots and developer community seems
    > historically SCSI-centric, I can see how these assumptions would have
    > been picked up and used in FDisk and considered acceptable. But these
    > assumed values are clearly not correct for how CHS gets calculated by
    > many PC BIOSes for IDE drives.

    LBA is the only common mode known to all BIOS vendors, Harddrive
    manufactures and so on, because at least someone made up some
    assumptions and published them instead of developing their own CHS
    translation. SCSI was first to breach the BIOS CHS barrier on PCs and so
    they defined that method. If your BIOS is in auto mode, it tries to get
    the current format from the harddisk most times uses CHS, but will also
    find a disk with LBA. So in a modern system LBA would be the safe pick
    and not CHS. Most likely it picks it from disk (the partition table uses
    entries for cylinders, heads and sectors to describe the partitions), so
    the first fdisk sets the addressing the bios chooses. So to avoid
    conflicts and enhance the usabilty of your drive in different PCs and
    with different systems use LBA.

    > Furthermore, I believe that the reason FDisk rejects the manually
    > entered CHS of 19618/16/255 is because either (1) it tries to enforce
    > those bad assumptions about heads and sectors, or (2) it gets confused
    > by the rounding error. In other words, in the case of rounding error,
    > FDisk may be taking the manually-entered values, multiplying them
    > together, and seeing that it doesn't exactly match (or come close enough
    > to, in its humble but flawed opinion) the total sector count for the
    > drive. The way Fdisk's geometry validation ought to work is like this:
    >
    > - Divide the total sector count of the drive by (H*S), where H and S are
    > the user-supplied values.
    > - Round the result to the nearest whole number.
    > - Compare that result to the user-supplied value for cylinders.
    > - If the result matches, accept the user's input as good.

    The test will ensure that the user dont make typos, but it can't ensure
    that the C. H and S are arranged the same in both conversions.

    > In the meantime, the workaround for anyone experiencing this problem is
    > to go into their BIOS and set the hard drive to "User" mode, and
    > manually enter the same C/H/S settings that FDisk calculated for the
    > drive. Unfortunately, I think this means that if you have to
    > repartition and reformat the entire drive, since the BIOS will now be
    > addressing the drive using different C/H/S settings and will be unable
    > to read any partitions that were formatting using different C/H/S
    > addressing. So while there is a workaround, it is far from an ideal
    > user experience.

    Better solution, put the IDE drives to LBA and you'll see that you get
    the same CHS every time and on every system except MSDOS < 6.3. If you
    got a filesystem which doesnt bother about CHS and uses linear
    addressing you 'only' need a new partition table. After redoing the
    drive you can put the IDE back to Auto.

    Hendrik

    _______________________________________________
    freebsd-questions@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-questions
    To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org"


  • Next message: Hendrik Hasenbein: "Re: Folding@Home problem"

    Relevant Pages

    • Re: Configuring disk geometry from SCSI miniport driver
      ... the BIOS will translate CHS to LBA using the current BIOS's ... FDISK and not with NT Setup OR b) use the LBA mode only, ... Surely only the drives known to BIOS are there. ...
      (microsoft.public.development.device.drivers)
    • FreeBSD/FDisk geometry problems - SOLVED!
      ... the problem is that FreeBSD's FDisk and the motherboard BIOS ... while keeping the total sector count the same). ... SCSI drives, ...
      (freebsd-questions)
    • FreeBSD/FDisk geometry problems - SOLVED!
      ... the problem is that FreeBSD's FDisk and the motherboard BIOS ... while keeping the total sector count the same). ... SCSI drives, ...
      (freebsd-questions)
    • Re: FreeBSD/FDisk geometry problems - SOLVED!
      ... >>I've found a bug in FDisk which is responsible for all the problems I've ... the problem is that FreeBSD's FDisk and the motherboard BIOS ... >from the harddisk most times uses CHS, but will also find a disk with LBA. ... As I've said multiple times now, LBA was already enabled on all my drives. ...
      (freebsd-questions)
    • Re: Hard drive limit?
      ... shouldn't need to enter the CHS in the BIOS, as these newer drives use ... ZonedBit recording and LBA to address the locations/regions/tracks. ... Therefore the AUTO setting (in the BIOS) should suffice for most every ... CHS are entered. ...
      (comp.os.linux.hardware)