From: utzoo!decvax!cca!mo@Lbl-Unix@sri-unix Newsgroups: net.unix-wizards Title: Re: I/O Error in Push Article-I.D.: sri-unix.4250 Posted: Sat Nov 20 01:22:45 1982 Received: Sun Nov 21 02:11:44 1982 From: mo at Lbl-Unix (Mike O'Dell [system]) Date: 16 Nov 1982 13:18:14-PST There is a tangentially-related bug in the disk drivers for 4.1 - they don't do partial reads. If you want to back-up an RM05 and say dd if=/dev/rhp0c of=/dev/rhp2c bs=100b (do 50Kbyte reads!) you will discover the last transfer gets dropped as an error. The size you give bs MUST integrally divide the size of the disk partition. This is even more annoying when trying to copy only one partition - some of them aren't even an integral number of tracks! The comparison in the hp disk driver says if (base_address_of_transfer + size > MAX_BLOCK_OF_DISK) { u.u_error = E_SCREWED; return; } I would claim the raw disk should act like raw tape in that you should in fact get what data it could give you and return the foreshortened length. The current behavior causes me to have to use dd if=/dev/rhp0c of=/dev/rhp2c bs=32b and do track-at-a-time reads. -Mike