Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 May 2002 19:24:22 -0700
From:      "Lucky Green" <shamrock@cypherpunks.to>
To:        <freebsd-questions@freebsd.org>
Subject:   Successfully cheating old IDE controller BIOS?
Message-ID:  <00a901c20137$cc505140$c33a080a@LUCKYVAIO>

next in thread | raw e-mail | index | archive | help
I am running an old motherboard containing an AMD K6-333 with a just as
ancient IDE controller. My primary drive is a SCSII drive. I just added
an 160GB Maxtor IDE drive for backup purposes. This is the only IDE
drive on the system.

Now of course the old BIOS in the motherboard would not begin to guess
what to do with a 160GB drive. But I found in the past that you can
assign bogus values for an IDE drive in the BIOS as long as you stay
within a range the BIOS can comprehend, letting FreeBSD take over after
boot using the real drive geometry.

The process works as follows:

1) assign any value for the drive geometry the motherboard's BIOS is
happy with. It really doesn't matter what that value is. This value can
and should be totally unrelated to the actual drive geometry. Pick
whatever your motherboard's BIOS will accept. You can tell the
motherboard's BIOS that you have an 8GB drive connected when in fact
your drive is over 100GB.

2) FreeBSD will figure out during boot what the true drive geometry
looks like.

3) Run fdisk. fdisk will tell you that the drive geometry must be
incorrect since it does not match the geometry stored in the BIOS. You
blatantly ignore this warning and continue.

4) Surprise, surprise, fdisk sees the full drive.

5) You now assign the entire drive as one dedicated FreeBSD slice.
Followed by labeling the drive.

This has worked fine for me in the past. Only this time, FreeBSD would
only assign 150GB of the 160GB actually available on the drive.

Here is the output of fdisk:

Disk name:      ad0                                    FDISK Partition
Editor
DISK Geometry:  19929 cyls/255 heads/63 sectors = 320159385 sectors
(156327MB)

Offset       Size(ST)        End     Name  PType       Desc  Subtype
Flags

         0         63         62        -      6     unused        0
        63  320159322  320159384    ad0s1      3    freebsd      165
C
 320159385      13671  320173055        -      6     unused        0

And here is the output of dmesg:
Copyright (c) 1992-2002 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights
reserved.
FreeBSD 4.5-RELEASE-p4 #0: Wed Apr 24 01:15:47 CEST 2002
 
root@pakastelohi.cypherpunks.to:/usr/obj/usr/src/sys/PAKASTELOHI-2002042
3
Timecounter "i8254"  frequency 1193182 Hz
Timecounter "TSC"  frequency 300683548 Hz
CPU: AMD-K6(tm) 3D processor (300.68-MHz 586-class CPU)
  Origin = "AuthenticAMD"  Id = 0x580  Stepping = 0
  Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX>
  AMD Features=0x80000800<SYSCALL,3DNow!>
real memory  = 134217728 (131072K bytes)
avail memory = 126877696 (123904K bytes)
Preloaded elf kernel "kernel" at 0xc03b1000.
md0: Malloc disk
Using $PIR table, 5 entries at 0xc00fdc80
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pcib2: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0
on pci0
pci1: <PCI bus> on pcib2
isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1
on pci0
ata0: at 0x1f0 irq 14 on atapci0
sym0: <875> port 0xe800-0xe8ff mem
0xe6002000-0xe6002fff,0xe6000000-0xe60000ff i
rq 11 at device 13.0 on pci0
sym0: No NVRAM, ID 7, Fast-20, SE, parity checking
ste0: <D-Link DFE-550TX 10/100BaseTX> port 0xec00-0xec7f mem
0xe6001000-0xe60011
ff irq 10 at device 14.0 on pci0
ste0: Ethernet address: 00:05:5d:fb:37:72
miibus0: <MII bus> on ste0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
ukphy1: <Generic IEEE 802.3u media interface> on miibus0
ukphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
pcib1: <Host to PCI bridge> on motherboard
pci2: <PCI bus> on pcib1
orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on
isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on
isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
IPsec: Initialized Security Association Processing.
ad0: 156334MB <Maxtor 4G160J8> [317632/16/63] at ata0-master UDMA33
[...]

Here is what df -H thinks about the drive (now mounted as /aux1):
 7# df -H
Filesystem    Size   Used  Avail Capacity  Mounted on
/dev/da0s1a   260M   114M   125M    48%    /
procfs        4.1K   4.1K     0B   100%    /proc
/dev/da0s1e  1041M   212M   746M    22%    /var
/dev/da0s1f  1041M    74M   883M     8%    /tmp
/dev/da0s1g    10G   2.2G   7.4G    23%    /usr
/dev/da0s1h    22G   7.9G    12G    39%    /home
/dev/ad0s1e   161G   3.6G   145G     2%    /aux1

Note that 161GB - 3.6GB = 157.4GB, which is 12.4GB more than df shows
available on the drive.

Any suggestions how I can reclaim those missing 12GB from the drive?

Thanks in advance,
--Lucky


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?00a901c20137$cc505140$c33a080a>