# READ DMA UDMA ICRC Error attempting to mount root



## levinas69 (Jun 3, 2009)

Hallo,

I have been fiddling with this problem for three days now and would very much appreciate some help.

After a clean install FreeBSD 7.2 will not boot.  After a successful kernel start I receive READ_DM UDMA ICRC Error on various blocks after. 

Here are some more diagnostic details:

1. The system will boot in safe mode. No problems.  No errors. (Not so clear what is "safe" about safe mode, since a full array of services seem to start.)

2. The blocks are different on each boot and the blocks are not clustered together.  The root file system will not mount. I get the mountroot prompt.

3. The disk is AOK.  No SMART flags.  I have run Spinrite across the disk and no problems are reported.

4. I have tried swapping cabling with no result.  The only thing I cannot do is use a 40pin/80wire cable.  The hard drive is a laptop hard drive and I am connecting with an adapter that is 40 pin *with* the key pin, which is blocked on the 40pin/80wire cables.  I am tempted to snip that pin and try the 40pin/80wire cables

5. Painfully, Ubuntu server installs and boots with no problems.  I am resisting the urge to run for my penguin safety blankie. (I have been using Linux since slackware 0.8.  Ish I am getting old.)

6. The installer seems to be getting the drive geometry right.

Help!  A penguin is frowning at me.

Cheers and thanks,
j.


----------



## levinas69 (Jun 3, 2009)

*More info ...*

I glean from elsewhere that:

"Safe mode forces PIO mode (disabling the use of DMA) and disables write caching for all IDE hard drives and CD ROM drives, disables the probing of EISA slots (as very few systems have them), and in i386 it also disables the use of ACPI and the APICs."

If this is the case, then my guess is that my laptop drive and adapater does not like DMA mode.

This raises two questions:

(1) Does DMA work any better (or only) with 40pin/80wire cabling? Anyone know for sure?

(2) How the frack do I change the default BSD boot settings to turn off DMA permanently.

In safe mode, all seems good.  Ryncing a stack of data to a new zfs pool.  Lovely.

Thanks for any help.
Best,
j.


----------



## indexofire (Jun 4, 2009)

*Got the same error*

I got the same error yesterday when a install a freebsd 7.2 to an old computer which is C800+via MontherBoard+ST 20G.

Before that, a boot failure annoyed me so much. I could't boot to install FreeBSD from the burning disc which is OK at other cdrom in other pc. I changed the cdrom, nothing help. and booted from ubuntu disc or winxp disc was all fine. So I took the harddisk to the other computer to install freebsd at last. then the installation menu showed at last.

Boot at the first 2 times was fine, then the READ_DMA UDMA ICRC Error displayed. When I booted from safe mode which use PIO-mode4 automaticlly, it's all good.

Is that because the computer is too old or something else?


----------



## indexofire (Jun 4, 2009)

when the system boot, it will use UDMA100 sometimes so it crashed as UDMA100.

I use the solution right now:
1. boot freebsd in Safe Mode
2. ee /etc/rc.early
#!/bin/sh
/sbin/atacontrol mode ad0 UDMA2"
3. ee /boot/load.conf
hw.ata.ata_dma = 0
3. reboot

so freebsd normal boot as PIO4 then willbe atacontrol to mod DMA33


----------



## levinas69 (Jun 16, 2009)

Hey Indexofire,

Sorry for the late reply ... I was out of town.

You are absolutely correct.  The problem is a consequence of UDMA settings.  I turned off UDMA in the BIOS and all is well.  Your solution works as well, or better.

Cheers!


----------

