tape(HW) 06 January 1993 tape(HW) Name tape - magnetic tape device Description The tape device implements the UNIX interface with a tape drive. QIC-02 cartridge tape drives are supported by the ct device driver, QIC-40 and QIC-80 tape drives connected to the floppy disk controller are supported by the ft device driver, and Irwin tape drives connected to the floppy disk controller are supported by the mc device driver. SCSI tape devices are supported by the Stp driver, and cpqs controls Compaq SCSI tape de- vices. Typically, the tar(C), cpio(C), dd(C), backup(ADM), xbackup(ADM), xrestore(ADM), or restore(ADM) commands are used to access a tape drive. Each device supports a single tape drive with a raw (character, non- blocking) interface, except for the SCSI tape driver which supports up to four devices. There are four standard tape device types. Devices begin- ning with the ``r'' prefix, (for ``raw device''), should be used for most normal tape work, while devices with the ``n'' prefix, (for ``no rewind on close''), should be used for storing and restoring multiple files. Devices beginning with the ``x'' prefix are control devices, which are used for issuing ioctl(S) calls to the tape subsystem. Devices beginning with the ``e'' prefix (for ECC device) support a 2/64 error recovery scheme. Thus, two 512-byte blocks out of every 64 blocks can be bad and the driver will correct the errors. This software ECC support provides a high degree of error recovery. ECC encoding and decoding for the ft and mc floppy tape drivers is auto- matically used with the standard ``r'' device; the ft and mc floppy tape drivers do not support the ``n'' or ``e'' device types. ECC encoding and decoding is automatically used with the standard ``r'' device. On the QIC-40, QIC-80 and Irwin 80MB drives, for every 29K written to the tape, 3K of ECC data is written with it to provide error recovery. On the Irwin 10, 20, 40 and 60MB drives, for every 16K written to the tape, 2K of ECC data is written. QIC-40 and QIC-80 tapes must be formatted before use; use pre-formatted QIC-40 and QIC-80 tapes for best results. Similarly, Irwin tapes must be first servo-written and then formatted with tape(C) before use, unless you use pre-formatted Irwin tapes. The mc driver can read tapes format- ted and written under the old version of UNIX but cannot write to them. The following table summarizes the base naming conventions for the tape drives supported: ct0,1 QIC24 unit 0,1 ct2,3 QIC11 unit 0,1 Stp0,1,2,3 SCSI tape unit 0,1,2,3 rmt/cst0,1,2,3,4 Compaq SCSI tape unit 0,1,2,3,4 ft0\ \ QIC-40 or QIC-80 floppy tape unit mc0\ \ Irwin floppy tape unit ctmini default mini-cartridge device mt0,1 reel to reel unit 0,1 1600 bpi mt2,3 reel to reel unit 0,1 800 bpi mt4,5 reel to reel unit 0,1 6250 bpi The default tape device is stored in the file /etc/default/tape, which is also used by tape(C). /etc/default/tape should always contain the ``x'' (control) device name of the default device, and is normally updated by mkdev(ADM) tape. If the default device is a QIC-40, QIC-80 or Irwin tape drive, the appropriate device from the table above will be linked to the ctmini device node. QIC-02 tape drives will always be accessed by the ct0,1 device nodes as shown in the table. If a SCSI tape drive is installed as the default device and there is no QIC-02 drive installed, it will be linked to the ct0 device node. If both SCSI and QIC-02 drives are installed, the SCSI device node cannot be linked to the ct0 device node. Compaq SCSI tape devices use a different convention and are dis- cussed in a separate section. Certain DAT drives (HP, for example) support advanced features such as partitions and setmarks and have special device nodes. See dat(HW) for more information. tape(C) describes the commands used to access tape drives. Definition of ioctl calls The following request arguments to the ioctl(S) call can be used with the various tape device drivers supported under UNIX. Where the request requires an argument, this is passed by the argument arg to ioctl. The letters following each description indicate which drivers support each ioctl call: A All drivers C QIC-02 cartridge tape driver S SCSI tape driver F QIC-40 and QIC-80 mini-cartridge tape drivers I Irwin mini-cartridge tape driver MTSTATUS Writes the status of the drive into a device-independent structure tapeinfo pointed to by the argument arg. The tapeinfo structure is defined in /usr/include/sys/tape.h. (C,S,F) MTDSTATUS Writes status information for the drive into the de- vice-dependent structure pointed to by the argument arg. (C,S,F) MTRESET Resets the driver software and the tape drive. Inter- rupts tape operations in progress. (C,S,F) MTREPORT Writes a code according to the type of tape device to an integer pointed to by the argument arg. The device type codes are defined in /usr/include/sys/tape.h. (C,S,F) MTRETEN Winds the tape forward to EOT and then backward to BOT. (A) MTREWIND Rewinds the tape to BOT. (A) MTERASE Erases the data on the tape and retensions the car- tridge. (C,S,F) MTAMOUNT Writes a count of the amount of the last data transfer to an integer pointed to by the argument arg. (C,S,F) MTFORMAT Formats the tape. Expects as an argument (arg) the num- ber of tracks to format, which must be an even number. If no argument is provided, the default is 20 tracks for QIC-40 drives, and 28 tracks for QIC-80 drives. (FI) MTGETHDR Expects as an argument (arg) a pointer to a struct ftheader or struct irheader and copies the header of the current tape into it. (FI) MTPUTHDR Takes a pointer to a struct ftheader or struct irheader as an argument (arg), and writes it onto the tape. This call should be used with caution. (FI) MTGETNEWBB Takes a pointer to a struct ftnewbbt or struct irnewbbt as an argument (arg), and copies in a list of bad blocks detected on the last write operation. (FI) MTPUTNEWBB Takes a pointer to a struct ftnewbbt or struct irnewbbt as an argument (arg), reads in the header from the tape, then writes a new bad block onto the tape with the new bad blocks from the provided bad block table. (FI) MTSETBLK Sets the block size (in bytes) of the tape blocks. Takes as an argument (arg) the size in bytes. (S) MTGETVTBL Takes a pointer to a struct ftvtbl as an argument (arg), and copies in the volume table from the tape. (FI) MTPUTVTBL Takes a pointer to a struct ftvtbl as an argument (arg), and writes the volume table onto the tape. This call should be used with caution. (FI) MTRFM Winds the tape forward to the next filemark. (A) MTWFM Writes a filemark at the current location on the tape. (A) MTLOAD On devices which are capable of doing so, loads the tape into the drive. (S) MTUNLOAD On devices which are capable of doing so, unloads the tape from the drive. (S) Floppy tape drive configuration and media This section is concerned with QIC-40 and QIC-80 tape drives and sup- ported floppy tape cartridges. Configuration options for the floppy tape driver (ft) Five configuration options are available for the floppy tape driver (ft) for QIC-40 and QIC-80 tape drives. To alter these variables, it is necessary to edit the configuration file /etc/conf/pack.d/ft/space.c, relink the kernel, and reboot the system with the new kernel. While all options may be edited manually in space.c, the first and second options, ftdrivetype and ftselectmode, can also be modified using the mkdev tape command. These options are summarized in the following table: Floppy tape drive configuration options _________________________________________________________________________ Variable Values Editing mkdev Manual _________________________________________________________________________ ft_drive_type FTQIC40 yes yes FTQIC40XL (FTQIC60) FTQIC80 FTQIC80XL ft_select_mode FTHARDSELECT yes yes FTSOFTSELECT ft_alloc_switch FTOPENTIME no yes FTINITTIME ft_minbufs 2 <= x <= (ft_maxbufs) no yes ft_maxbufs (ft_minbufs) <= x <= 20 no yes ftdrivetype When set from FTQIC40 to FTQIC40XL, or from FTQIC80 to FTQIC80XL, ftdrivetype enables support of extended length (307.5 ft) DC2120 mini-cartridges in the driver. FTQIC60 is an obsolete value; FTQIC40XL should be used instead. A QIC-40 drive should never be operated with ftdrivetype set to FTQIC80 or FTQIC80XL. Also, a QIC-80 drive should never be operated with ftdrivetype set to FTQIC40 or FTQIC40XL. If they are, your system may panic or hang, or data may be lost from the tape media ftselectmode When set to FTHARDSELECT, the ft driver expects a normal tape drive with a drive select jumper to be present. If ftselectmode is set to FTSOFTSELECT, the ft driver uses Soft Select mode to access the tape drive, which must be a Soft Select-compatible QIC-40 or QIC-80 tape drive with no drive select jumpers installed. ftallocswitch When set to FTOPENTIME, the ft driver allocates memory when it is needed, and frees memory once it is no longer needed. Typically, memory is allocated at open time and released at close time. When ftallocswitch is set to FTINITTIME, all memory allocation is done at init time (when the system boots) and the ft driver retains this memory. The advantage of init time allocation is that more memory is available for the ft buffers. The disadvantage is that this memory is held by the tape driver and cannot be used elsewhere in the system. ftminbufs ftmaxbufs These variables set the minimum and maximum number of 32K buffers that the ft driver is allowed to use. The lower limit of the mini- mum is hard set to 2, with any value lower than 2 interpreted as 2. The upper limit of the maximum is hard set to 20, with numbers greater than 20 interpreted as 20. When the ft driver allocates memory for buffers, it requests ftmaxbufs first. If this fails, ft reduces its request by one and tries again. This continues until either the request is satisfied or ftminbufs buffers fail to be allocated. If the request is satisfied, then ft proceeds. Other- wise, the tape operation fails and ENOMEM (Error, no memory for buffers) is returned. The exception to this is when ftallocswitch is set to FTINITTIME (allocation takes place at init time). If the ftminbufs are not available at init time, then ft resorts to allocation as needed (as if ftallocswitch were set to FTOPENTIME). If this condition occurs, a warning is printed at init time. It is recommended that ftminbufs be set to at least 3. Although the driver can operate with only two buffers, performance is seriously degraded; the tape never streams, and in fact produces an underrun for every 32K block written to the tape. Floppy tape cartridge media There are three mini-cartridge types appropriate to floppy tape drives: Floppy tape mini-cartridge types _________________________________________________________________________ Cartridge Length Width Maximum (ft) (in) density (ftpi) _________________________________________________________________________ DC2000 205 0.25 12,500 DC2080 205 0.25 14,700 DC2120 307.5 0.25 14,700 DC2000 and DC2080 are available unformatted or preformatted from the man- ufacturer. Irwin format tapes are incompatible with the floppy tape driver. If a 2120 cartridge is inserted into a drive, it can be detected as an extended length tape and will be formatted for 60 Mbytes on QIC-40 drives, and 120 Mbytes on QIC-80 drives. Some older QIC-40 drives are not able to detect extended length tapes. These models should never be operated with a DC2120 inserted, since they will expect a 205 foot tape length. Drives cannot distinguish between blank (unformatted) DC2000 & DC2080. Never attempt to format a DC2080 in a QIC-40 drive, or a DC2000 in a QIC-80 drive. Media configurations for floppy tape drives are summarized in the follow- ing table: Floppy tape drive media configurations _________________________________________________________________________ Drive ft_drivetype Media Formatted Operations capacity (M) _________________________________________________________________________ QIC-40 FTQIC40 DC2000 40 r/w/f QIC-40 FTQIC40XL DC2000 40 r/w/f DC2120 60 r/w/f QIC-80 FTQIC80 DC2000 40 r DC2080 80 r/w/f QIC-80 FTQIC80XL DC2000 40 r DC2120 60 r DC2080 80 r/w/f DC2120 120 r/w/f Irwin-specific ioctl interface Device-specific functions of the Irwin tape drive are accessed via spe- cial commands passed to the Irwin driver using the ioctl(S) interface. An Irwin driver interface library is available. This library provides a system-independent interface to ioctl via the entry point mcioctl: #include <sys/mc.h> int mcioctl(fh, request, arg) int fh; /* File handle from open() */ int request; /* MCCTL_* command code */ void *arg; /* Additional argument pointer */ mcioctl(fh, MCCTL_NOP, NULL) mcioctl(fh, MCCTL_VERSION, verbuf) mcioctl(fh, MCCTL_CAPACITY, capp) mcioctl(fh, MCCTL_LSEEK, lskbuf); mcioctl(fh, MCCTL_REWIND) mcioctl(fh, MCCTL_RETEN) mcioctl(fh, MCCTL_REWIND_NW) mcioctl(fh, MCCTL_RETEN_NW) mcioctl(fh, MCCTL_GETDRVCFG, cfgbuf) mcioctl(fh, MCCTL_GETCFG, cfgbuf) mcioctl(fh, MCCTL_SETCFG, cfgbuf) mcioctl(fh, MCCTL_GETTHDR, hdrbuf) mcioctl(fh, MCCTL_PUTTHDR, hdrbuf) mcioctl(fh, MCCTL_GETDLISTS, listbuf) mcioctl(fh, MCCTL_FLUSH) mcioctl(fh, MCCTL_FORMAT, fmtbuf) mcioctl(fh, MCCTL_FMTSTAT, fmtbuf) mcioctl(fh, MCCTL_ABORT) mcioctl(fh, MCCTL_DEVSTAT, dstatp) mcioctl(fh, MCCTL_GETERCTL, erctlp) mcioctl(fh, MCCTL_SETERCTL, erctlp) mcioctl(fh, MCCTL_GETER, ierrp) struct mcver *verbuf; /* version buffer */ long *capp; /* capacity in bytes */ struct mclseek *lskbuf; /* tape logical position descriptor */ struct mccfg *cfgbuf; /* configuration buffer */ char *hdrbuf; /* 1024 byte header buffer */ unsigned short * listbuf; /* 2048 byte defect list buffer */ struct mcfmt *fmtbuf; /* format control/status buffer */ unsigned short *dstatp; /* device status word */ unsigned short *erctlp; /* error control word */ unsigned short *ierrp; /* device specific error */ mcioctl provides a system-independent ioctl interface to the Irwin driver. This subroutine is essentially a pass-through; that is, argu- ments are passed through to ioctl. If a device-specific error occurs (that is, a non-system error) at completion of the system ioctl and the function is not a MCCTLNOP or MCCTLVERSION, mcioctl executes ioctl(MCCTLGETER) to retrieve the device-specific error. The following request arguments to a mcioctl call are available for the Irwin driver. If an argument is required, it is passed using the argument arg. MCCTLNOP No operation. Any argument is ignored. A status of 0 is returned if the special file refers to the mc driver. MCCTLVERSION Writes driver version information to a version information buffer (struct mcver, defined in /usr/include/sys/mc.h) pointed to by argument arg. MCCTLCAPACITY Writes a tape's capacity in bytes to the long integer pointed to by the argument arg. MCCTLREWIND, MCCTLRETEN, MCCTLREWINDNW, MCCTLRETENNW These four calls physically position the tape at high speed. MCCTLRETEN and MCCTLRETENNW run the tape to the early warning hole first. All four calls return the tape to the load-point hole. MCCTLREWINDNW and MCCTLRETENNW start a request but do not wait for completion. MCCTLGETDRVCFG, MCCTLGETCFG, MCCTLSETCFG These three function calls provide access to configuration parameters for a particular mini cartridge tape unit. The structure containing these parameters is struct mccfg (defined in /usr/include/sys/mc.h). This structure has driver, tape drive, and cartridge related fields. A pointer to a structure of this type is passed by the argu- ment arg. Both MCCTLGETDRVCFG and MCCTLGETCFG copy the driver's mccfg structure to the caller's buffer. When MCCTLGETDRVCFG is used, members of struct mccfg with driver and tape drive related fields are returned. No error is given when a cartridge is absent. When MCCTLGETCFG is used successfully, all fields are returned with valid data. An error is returned if no cartridge is present. MCCTLSETCFG allows the caller to adjust certain fields in the driver's configuration. MCCTLGETTHDR, MCCTLPUTTHDR MCCTLGETTHDR and MCCTLPUTTHDR read and write the 1024- byte tape header in block 0. MCCTLPUTTHDR assumes an Irwin-style header. (The argument arg is used to pass a pointer to the header buffer.) Then the following pro- cedure is used to write the header: Tape block 0 is read to a buffer. The caller's 1024-byte header buffer is copied to the first, fifth, and when space permits, the ninth and thirteenth 1024-byte sectors in the buffer. When the cartridge format uses ECC (that is, other than 110 cartridge format), the header's ECC in use field is set. When the cartridge format uses ECC, ECC is encoded. A checksum is calculated for the buffer. The buffer is written back to block 0. Block 0 is reread and the cartridge state is redetermined. A new checksum is calculated and compared against the original. MCCTLGETDLISTS Returns lists used by the driver's flaw management. The argument arg must point to a buffer that is at least 2K in length. Four lists are copied to the buffer. Each list comprises of physical tape block numbers stored as unsigned short integers and terminated with the value 0xffff. The lists are contiguous and given in the follow- ing order: Primary Defect List (PDL) Working Defect List (WDL) Grown Defect List (GDL) Relocation List (RL) MCCTLFLUSH Flushes dirty buffers to tape. MCCTLFLUSH forces dirty buffers in the Irwin driver's cache to be written to tape. The pointer argument is ignored. Control returns when data is written. Buffers are automatically flushed upon a close or when the device is idle for a certain period (see mcautoflush in struct mccfg in /usr/include/sys/mc.h). MCCTLFORMAT, MCCTLFMTSTAT MCCTLFORMAT starts an erase, servo-format-certify- initialize header or re-certify operation. The argument (arg) is the address of struct mcfmt (see /usr/include/sys/mc.h). Formatting operations performed depend upon the values in the structure's fmcmd and fmoption fields, and struct mccfg mccartstate field. When an MCCTLFORMAT call completes successfully, MCCTLFMTSTAT is used to determine the progress (when a no-wait flag is set) or results of formatting. Like MCCTLFORMAT, MCCTLFMTSTAT uses the struct mcfmt struc- ture (typically the same one passed to MCCTLFORMAT). MCCTLABORT Used to interrupt and terminate operations started by MCCTLFORMAT. The pointer argument is ignored. Control returns after formatting has terminated. MCCTLDEVSTAT Writes a 16-bit device status word to an unsigned short integer whose address is passed by the argument arg. This field is intended for use by applications that use the tape drive interactively. The status bits are defined in struct mclseek in /usr/include/sys/mc.h. MCCTLGETERCTL, MCCTLSETERCTL MCCTLGETERCTL and MCCTLSETERCTL give application access to the state of, and control over, certain error mecha- nisms. The argument arg is the address of a 16-bit error control variable which the Irwin driver writes with current values for MCCTLGETERCTL and reads for MCCTLSETERCTL. Certain flags may or may not have an effect depending on the implementation. Bit values for the error control variable are defined in /usr/include/sys/mc.h. MCCTLGETER Writes a device-specific error (IE*) to the unsigned short integer pointed to by the argument arg. In general, the value 0 is returned to indicate success or -1 to indi- cate an error. When mcioctl returns the value -1, an error has occurred. The error condition may have been detected in the operating system or in the driver. In order to tell where the error comes from, the global mcerrno should be examined first (before errno). If mcerrno is non-zero, the error was returned by the driver. Values for mcerrno are defined in /usr/include/ierrno.h with an IE prefix. Irwin drive and cartridge models This section is concerned with Irwin tape drives and cartridges sup- ported. Drive models Many Irwin mini-cartridge drives have a three-digit model number. Each digit has a meaning. The high-order digit encodes the form factor and cabinetry: 1xx 51/4 inch drive (mounted in system cabinet). 2xx 31/2 inch drive (mounted in system cabinet). 3xx 51/4 inch drive in a metal cabinet with power supply. 4xx 31/2 inch drive in a plastic cabinet (no supply). 7xx 31/2 inch drive in a metal cabinet with power supply. The middle digit gives the approximate capacity, in 10 megabyte units, for a standard capacity (not extra-long) tape. The low digit encodes the drive's normal data transfer rate (that is, the floppy controller data clock rate). xx0 250 kilobits/second xx5 500 kilobits/second xx7 1 megabit/second In addition, a new 4-digit model numbering system is in use. These model numbers are associated with drives which are adaptable to different sys- tem hardware environments with accessory hardware kits. 2020 31/2 inch, 20 megabyte, 250 kilobits/second 2040 31/2 inch, 40 megabyte, 500 kilobits/second 2080 31/2 inch, 80/120 megabyte, 500 kilobits/second 2120 31/2 inch, 80/120 megabyte, 1 megabit/second Mini cartridges There are three primary physical mini-cartridges types: DC1000 185 feet of 0.150 inch wide tape (same as TC-200) DC2000 205 feet of 0.250 inch wide tape (same as TC-400) DC2120 307.5 feet of 0.250 inch wide tape The DC1000 cartridge is physically thinner than DC2000 and DC2120 car- tridges. The DC2000 and DC2120 have the same physical form but the DC2120 has a longer tape. These cartridges are distinguished by their labels. Each physical cartridge type has at least two cartridge formats: Mini (Irwin) cartridge format parameters _________________________________________________________________________ AccuTrak Sectors reorder Total Blocks per Cartridge number tape Trks per block Density format (see Note) Cartridge blocks track Data ECC (FTPI) _________|___________|_________|_______|_____|________|____|____|________ 110 | 1000-10 |DC1000 | 1264 | 8 | 158 |8 | 0 | 6400 120 | 2000-20 |DC2000 | 1190 | 14 | 85 |16 | 2 | 6400 120XL | 2000-30 |DC2120 | 1792 | 14 | 128 |16 | 2 | 6400 125 | 1000-20 |DC1000 | 1320 | 12 | 110 |16 | 2 | 10000 145 | 2000-40 |DC2000 | 2480 | 20 | 124 |16 | 2 | 10000 145XL | 2000-60 |DC2120 | 3720 | 20 | 186 |16 | 2 | 10000 165 | 2000-64 |DC2000 | 3936 | 24 | 164 |16 | 2 | 13200 285 | 2000-80 |DC2000 | 2752 | 32 | 86 |29 | 3 | 11600 285XL | 2000-120 |DC2120 | 4160 | 32 | 130 |29 | 3 | 11600 Notes: The suffix part of the AccuTrak reorder number is an approximate cartridge capacity in megabytes. All formats use 1024-byte MFM encoded sectors. Drive read/write compatibility for mini-cartridge formats _________________________________________________________________________ Drive model (see Note) 2020 2040 __________|______|______|______|_______|______|______|_______|___________ | | 720 | 725 | 745 | | | | | | 420 | 425 | 445 | 765 | 2080 | 2120 | | 410 | 320 | 325 | 345 | 465 | 785 | 787 | Cartridge | 310 | 220 | 225 | 245 | 265 | 485 | 487 | format | 110 | 120 | 125 | 145 | 165 | 285 | 287 | Cartridge __________|______|______|______|_______|______|______|_______|___________ 110 | rw | rw | r- | r- | r- | r- | r- | DC1000 120 | -- | rw | -- | r- | r- | r- | r- | DC2000 120XL | -- | rw | -- | r- | r- | r- | r- | DC2120 125 | -- | -- | rw | rw | r- | r- | r- | DC1000 145 | -- | -- | -- | rw | r- | r- | r- | DC2000 145XL | -- | -- | -- | rw | r- | r- | r- | DC2120 165 | -- | -- | -- | -- | rw | r- | r- | DC2000 285 | -- | -- | -- | -- | -- | rw | rw | DC2000 285XL | -- | -- | -- | -- | -- | rw | rw | DC2120 Key: r Drive reads cartridge format w Drive writes cartridge format - Incompatible: When a cartridge is formatted but incompatible for reading or writing, the driver reports that the cartridge is either incompatible or erased. Extra long (XL) DC2120 cartridge compatibility Extra long (that is, DC2120) cartridges are incompatible with the follow- ing drives; the drive will not physically accommodate the cartridge: 110, 310, 410, 125, 225, 325, 425, and 725 Even though DC2120 cartridges are physically accepted in the following drives, you may not be able to format them: 120, 220, 320, 420, 720, 2020, 145, 245, 345, 445, 745, 2040 Drives manufactured prior to 1989 don't recognize the longer tape. How- ever, the mc driver is able to read and write preformatted extra long tapes in these drives, but it is unable to correctly format them. For- matting will start, but terminate in error. To determine whether a drive supports formatting of DC2120 cartridges, use the mcart utility. See tape(C) for information about mcart. If the command mcart drive reports a drive type with the suffix XL, formatting of DC2120 cartridges is sup- ported. Compaq SCSI tape devices Compaq tape drives use a different set of device name conventions. The device node format for accessing DAT and/or 320/525 tape drive on a SCSI tape adapter or a SCSI tape compression adapter follows: /dev/rmt/cstn[cin][-150] where n is the SCSI ID of the tape drive (0-4). The following table describes the available options: _________________________________________________________________________ Option Description _________________________________________________________________________ c Access the tape drive using the compres- sion chip on the tape adapter. To use this option, no other drives on the adapter can be in use by other processes. Once a drive is being accessed using the compression chip, the other drives on the adapter cannot be used until the process using the compression mode closes the tape drive. i Immediate mode. Certain commands, like erase or retension will return to the application program before the command actually finishes on the tape drive. n No rewind. A rewind command will not be issued to the drive when the device is closed. -150 Access the tape in QIC-150 density. This option is only relevant on a 320/525 tape drive. The devices listed access a DAT or 320/525 tape drive. The auto-density mode selects the format to match the data on the media for reading. The highest density for the media type present is selected for writing. On the 320/525 tape drive, the QIC-150 mode is used to force QIC-150 format when writing on high density media so that the tape can be read on 150/250 type drives. If a 6150 or 6250 tape media is used, the drive writes QIC-150 format in the auto-density mode. On both a DAT and 320/525 tape drive, immediate mode returns without waiting for the command to complete, which is useful for executing reten- sion and erase tape commands. Compaq tape formats The Compaq SCSI adapter and 320/525 SCSI tape drive support the tape for- mats listed in the following table: Recording format _________________________________________________________________________ Media type QIC-24 QIC-120 QIC-150 QIC-320 _________________________________________________________________________ DC-300 RD N/A N/A N/A DC-600A RD RD N/A N/A DC-6150 RD RD RD/WR(150 M) N/A DC-6320 RD RD RD/WR(150 M) RD/WR(320 M) DC-6525 RD RD RD/WR(250 M) RD/WR(525 M) The default device automatically determines the tape format to use. For reading, the data written on the tape media determines the tape density and format. The media type determines the default on write operations; that is, the highest density for the type of media present is written. If you want to use a lower tape density, use a device type that explic- itly selects lower density. SCSI minor device numbers The minor device numbering scheme for SCSI tape devices is as follows (other than Compaq SCSI) : SCSI Tape minor devices _________________________________________________________________________ Bits 7 6 5 4 3 2 1 0 Description _________________________________________________________________________ - - - - - - X X Device number - - - - - X - - No unload on close - - - - X - - - No rewind on close - - - X - - - - High density (6250 BPI) - - X - - - - - ECC - X - - - - - - Partition (HP DAT) X - - - - - - - Control/override device Files /dev/rStp0 /dev/rct0 /dev/erct0 /dev/nrStp0 /dev/nrct0 /dev/xct0 /dev/xStp0 /dev/rct2 /dev/rctmini /dev/rft0 /dev/nrct2 /dev/xctmini /dev/xft0 /dev/xct0 /dev/rmc0 /dev/rmc1 /dev/mcdaemon /dev/rmt/cst0 /dev/rmt/cst0-150 /dev/rmt/cst0n /dev/rmt/cst0n-150 /dev/rmt/cst0c /dev/rmt/cst0c-150 /dev/rmt/cst0cn /dev/rmt/cst0cn-150 /dev/rmt/cst0i /dev/rmt/cst0i-150 /dev/rmt/cst0in /dev/rmt/cst0in-150 /dev/rmt/cst0ci /dev/rmt/cst0ci-150 /dev/rmt/cst0cin /dev/rmt/cst0cin-150 Include files: /usr/include/sys/Stp.h /usr/include/sys/tape.h /usr/include/sys/ft.h /usr/include/sys/ir.h /usr/include/sys/mc.h /usr/include/sys/mcheader.h /usr/include/sys/ct.h Notes After certain tape operations are executed, the system returns a prompt before the tape controller has finished its operation. If the user enters another tape command too quickly, a ``device busy'' error is returned until the tape device is finished with its previous operation. Periodic tape cartridge retensioning and tape head cleaning are necessary for continued error-free operation of the tape subsystem. Use tape(C) to retension the tape. See also backup(ADM), cpio(C), dat(HW), dd(C), format(C), mkdev(ADM), restore(ADM), tape(C), tar(C), xbackup(ADM) and xrestore(ADM).