Le 29.12.10 20:05, Mark Kettenis a icrit : <...>
Can you try the diff below instead of your origional diff?Index: wd.c =================================================================== RCS file: /cvs/src/sys/dev/ata/wd.c,v retrieving revision 1.95 diff -u -p -r1.95 wd.c --- wd.c 22 Sep 2010 01:18:57 -0000 1.95 +++ wd.c 29 Dec 2010 18:52:54 -0000 @@ -548,7 +548,7 @@ __wdstart(struct wd_softc *wd, struct bu nblks = bp->b_bcount / wd->sc_dk.dk_label->d_secsize; if ((wd->sc_flags& WDF_LBA48)&& /* use LBA48 only if really need */ - ((wd->sc_wdc_bio.blkno + nblks - 1> LBA48_THRESHOLD) || + ((wd->sc_wdc_bio.blkno + nblks - 1>= LBA48_THRESHOLD) || (nblks> 0xff))) wd->sc_wdc_bio.flags |= ATA_LBA48; if (wd->sc_flags& WDF_LBA)
dd if=/dev/rwd0c of=/dev/null bs=8192 61048383+0 records in 61048383+0 records out 500107862016 bytes transferred in 8327.499 secs (60054984 bytes/sec) It worked on -current, the whole Apple/Hitachi hard disk could be read ! Nice fix Mark. -- Mathias
