As I mentioned in another post, I recently got a new Maxtor DiamondMax 10 250Gb HDD - model is 6L250R0 - and decided to install FreeBSD 6.1 on it. I downloaded and burnt a copy of the distribution to disc, booted from the installer OK and everything went well until it got to the installation commit part where I received a number of errors like this:
CODE:
ad0: WARNING - READ_DMA UDMA ICRC error (retrying request) LBA=0
ad0: FAILURE - READ_DMA status=51<READY,DSC,ERROR> error=84<ICRC,ABORTED> LBA=0
The short version of the solution is to either use an
80 conductor IDE cable to allow correct Ultra DMA transfers OR run the FreeBSD installation in safe mode. The first option is
much prefered, even if only to increase the transfer speed used by the HDD. Installing in safe mode might work ok, but the underlying issues with UDMA may still persist after the installation when the operating system is in use, which is obviously not a good thing. If possible go for upgrading the IDE cable to 80 conductor.
More details of the problem are detailed below:
The problem occurs at the point where the installer attempts to write the disk labels. The disk appears to be formatted ok and the FreeBSD slices (DOS 'partitions') are created ok, the errors occur when the FreeBSD partitions inside each slice are created (ad0s1a-h).
(Incidentally I found that I could only assign a maximum of 7 partitions per slice which seems to contradict what I read somewhere else about this saying that you could create up to 8 partitions per slice. Perhaps this is to do with swap partition creation though, I'm not sure, the 7 does include one swap partition - ie not 7 regular parts plus the swap...)
Anyway back to the problem. After a quick search I found
this post which almost exactly describes my problem along with a much appreciated reply - qutoe from that post:
QUOTE:
Finally I got things working!
First I tried several other IDE cables, which did not help.
Then I tried Carl's advice and bought a 80-connector cable. And amazingly
enough... It worked!
From what I can gather the problem seems to be that the FreeBSD installer doesn't detect the DMA mode correctly and tries to use the faster UDMA mode (Ultra DMA) regardless of whether a compatible 80 conductor IDE cable is in use or not (an 80 conductor cable is required to make use of the extra speed of UDMA (
see here for a good description of 80 conductor IDE cables) and attempting to use UDMA without an 80 conductor cable causes problems *from what little I understand of the thing*). Why this is missing on FreeBSD I don't know - it seems to be detected OK on Windows XP and from what I read, OpenBSD works fine around this problem too.
Anyway, I ordered an 80 conductor IDE cable from ebay so hopefully that will make installation easier and generally increase speed as well for the HDD. Of course by
sod's law, as soon as I'd done this I found a way to get around the problem...
Out of curiousity I decided to try and use the FreeBSD installer's 'Safe Mode' to see if it would fall back to using a safer DMA mode. I had to use a standard PS/2 keyboard instead of my USB one - presumably because USB support isn't included in safe mode - but the installer actually managed to write to the disk properly this time which is good.
The caveat, as mentioned above, is that the problems may still persist after the installation, I've not tested this out as yet so don't know but would be surprised if the problems magically dissappeared without using an 80 conductor cable. End of the day, make sure to use an 80 conductor IDE cable if you run across this kind of problem on FreeBSD.