Date: Sun, 7 Sep 1997 14:22:01 +0000 (GMT) From: Terry Lambert <tlambert@primenet.com> To: joerg_wunsch@uriah.heep.sax.de Cc: hackers@FreeBSD.ORG, handy@sag.space.lockheed.com Subject: Re: Tape question Message-ID: <199709071422.HAA08365@usr09.primenet.com> In-Reply-To: <19970907103022.YU02721@uriah.heep.sax.de> from "J Wunsch" at Sep 7, 97 10:30:22 am
next in thread | previous in thread | raw e-mail | index | archive | help
> > - The Exabyte tapes to be read have a variable (logical) block size, > > it typically is 8192 bytes, but often shorter. > > > > - My original c program always attempted to read a 8192 byte block: > > > > nn = read(unit,buffer,8192); > > > > - On the sun this worked, it would read one (logical) block, and > > return the actual number of bytes read. > > > > - In FreeBSD this created unpredictable results, if the logical block > > was shorter than 8192. > > This must be a problem with the Exabyte then. It works fine for me, > with a Tandberg TDC4222, and a QIC-525 cartridge (QIC-150, of course, > doesn't work since it's fixed-length blocking). > > Also, i know that restore(8) basically relies on this feature in order > to determine the tape block size. ISTR that this once was broken, but > that's been quite some time ago. I think it is a driver issue. I would hesitate to actually call it a problem, however. Effectively, one driver does a "sync" for you, and the other does not: man dd /osync ...then read about the "osync" and "sync" options to "conv=". So it's not the driver *OR* the controller (at least IMO). Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199709071422.HAA08365>