Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxn!ihnp4!houxm!whuxl!whuxlm!akgua!akgub!celerity!sdcc6!sdcsvax!coleman From: coleman@sdcsvax.UUCP (Don Coleman) Newsgroups: net.unix,net.unix-wizards Subject: Re: need help with multi-reel cpio(problem with the suggested solution) Message-ID: <1728@sdcsvax.UUCP> Date: Tue, 29-Apr-86 02:02:50 EDT Article-I.D.: sdcsvax.1728 Posted: Tue Apr 29 02:02:50 1986 Date-Received: Fri, 2-May-86 08:25:56 EDT References: <520@sdcc13.UUCP> <461@ncr-sd.UUCP> Reply-To: coleman@sdcsvax.UUCP (Don coleman) Organization: UCSD Emu project Lines: 27 Keywords: cpio tape backup Xref: watmath net.unix:7723 net.unix-wizards:17856 Summary: not all tape drives can backspace. In article <461@ncr-sd.UUCP> greg@ncr-sd.UUCP (Greg Noel) writes: >In article <520@sdcc13.UUCP> bparent@sdcc13.UUCP (Brian Parent) writes: >>I'm having trouble with cpio going to multiple reels. It seems to ... >The problem is this: if the tape drive asserts EOT while writing or reading >a record, the driver returns an error. That's it; that's the whole problem. ... >No, the problem is with Unix's treatment of tape volumes. Note that as it ... >The mods are simple: when writing a tape, if you get an EOT, backspace the >record ("unwrite the record"), write a EOF marker (so you can't read it back), >backspace again (in front of the EOF, so a close (or a shorter write) will >work as expected), and return an error. There are tape drives that cannot backspace(the qic-02 1/4" tape standard doesn't even contain any spacing commands), so this is not a general solution. It seems like there are two other possible solutions. The archive systems(i.e., tar and cpio) could be modified to understand that an archive may have fragmented blocks. Or, the tape drivers could be modified to understand the real nature of the EOT assertion, and continue writing out the current block, but return on error on the next block. This would of course require that enough good tape exist after the EOT mark to contain the block; I'm not familer enough with the range of tape systems to know if this is an acceptable solution. don coleman@ucsd.edu