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>