Patent Publication Number: US-6701450-B1

Title: System backup and recovery

Description:
TECHNICAL FIELD 
     The present invention relates specifically, although not exclusively, to data backup and recovery in data processing systems and, in particular, to magnetic tape based data backup and recovery. 
     BACKGROUND ART 
     For convenience of description herein, the term ‘computer system’ (or computing apparatus) means an Intel™ microprocessor (or equivalent) based computer system, for example a Pentium™ system, typically operating under an MS-DOS, Windows™ NT or 95/98 operating system environment. Commonly, such a computer system is known as a PC, although the description relates equally to servers, notebooks or laptop computers. It is emphasised, however, that the concepts disclosed herein may be equally applicable to other known, or to be developed, types of computer system. As such, the invention is not intended to be limited to only PC-type systems. 
     It is well-known to back up data stored on primary storage, such as a hard disk, of a computer system in order to protect against a disaster that might otherwise irrecoverably destroy all or part of the data. Disasters may for example be fire, flood, computer virus or simply accidental deletion of data. One of the main reasons for using magnetic tape as the backup storage medium is that it provides a stable, reliable and relatively cheap option for storing large volumes of backed up data. 
     Backup application software which executes on the computer system typically provides the functions for enabling such computer system data to be both backed up to, and restored from, tape media, which is written to and read from by a tape drive. Well-known backup application software includes ‘Replica™’ from Stac, ‘ArcServe™’ from Computer Associates, ‘BackupExec™’ from Veritas and ‘Omniback™’ from HP. Well-known tape drives include DDS™ and LTO™ compliant tape drives, both available from HP. 
     Generally, backup application software comprises one or more computer programs for managing data backup and restore operations on a computer system. Typically, the software provides a user interface, which gives the user the opportunity to select which data, or files, the user wishes to back up. The user may select for backup, for example, all files that have been generated or amended since the last backup, all files in a specific directory (or directories), or simply all files (i.e. the whole hard disk system). In addition, backup application software typically permits the user to schedule backup operations to occur when the computer system is not being used, for example at midnight each night. Then, at midnight each night, the backup application software identifies all the files that need to be backed up and stores the files to tape media in the form of a backup data set. In particular, the backup application software will typically format the backup data set into individual records on tape and precede the data set with some form of proprietary information, for example, identifying the backup application software used, the date of the backup, the time of the backup, etc. 
     In the event of a disaster, such as hard disk failure or even system destruction, typically, a priority is to rebuild a working system as soon as possible. This requires the computer hardware to be restored to the same state as it was before the disaster, which can take hours or even days, even before the file system can be restored. Generally, a significant amount of human intervention is required to complete this process. 
     In order to reduce the time and human intervention overhead of restoring a computer system after a disaster, some backup application software provides a so-called disaster recovery (DR) solution, which enables a computer system to be restored in an expedited manner to a state which existed before a disaster occurred. Such a scheme typically involves at least installing and configuring a minimal operating system, tape drivers and the backup application software (or the requisite parts thereof) itself. 
     Known DR solutions typically require a user to generate a set of DR floppy disks. The DR floppy disks may be used to boot the computer system, when it is not possible to boot from the hard disk drive, and execute application software for recovering a backed-up copy of the file system from tape media. The DR floppy disks typically load and execute a minimal version of the operating system along with components of application software comprising DR functionality, thus providing sufficient functionality, for example, for the computer to build new disk partitions, access a tape drive and restore the data from tape media. 
     The DR operating system is required to reflect the exact hardware configuration of the computer system on which it is to be installed, otherwise it would not be possible to communicate with storage devices such as tape drives. 
     Typically, therefore, DR floppy disks need to be regenerated by a user whenever the system hardware configuration changes, and particularly when a SCSI (Small Computer Systems Interface) configuration changes. For example, if a new SCSI Host Bus Adaptor (HBA) is added to a server, with a respective new device driver, this device driver needs to be added to the DR floppy disks so that the new SCSI HBA is recognised when rebuilding the computer system. 
     Generally, therefore, having ‘current’ DR floppy disks available relies on a user generating them, keeping them up to date, and being able to find them if a disaster occurs. This is an overhead, which sometimes leads to DR floppy disks not being generated at all, disks being allowed to get out of date, or disks being misplaced over time. 
     A reason why DR floppy disks are used is that a floppy disk-drive is one of the standard ‘initial program load devices’ (IPLD), which practically every PC is configured to ‘boot’ from. Herein, ‘standard’, as applied to an IPLD, implies that the PC is physically programmed to recognise the device for the purposes of booting. Currently, other standard IPLDs, sometimes known as BAIDS (BIOS Aware Initial Program Load Devices), include the first hard disk drive in a PC and, more recently, the first CD-ROM drive in a PC. Generally, however, an IPLD can be virtually any device that has the ability to load and execute a PC operating system. 
     As already mentioned, it is now possible to boot from a CD-ROM drive, as long as the CD-ROM complies with the ISO 9660 CD-ROM standard, as extended by the ‘El Torito’ Bootable CD-ROM Format Specification, Version 1.0, Jan. 25, 1995, created jointly by IBM Corporation and Phoenix Technologies Ltd. Booting from CD-ROM in a similar manner is also considered in detail in U.S. Pat. No. 5,727,213. As described, to boot from CD-ROM, a PC&#39;s BIOS (basic input/output system) needs to specifically support reading boot record data from a CD-ROM, typically, as well as from a floppy disk or hard disk. U.S. Pat. No. 5,727,213 also proposes that tape media may also serve as a boot source, subject to the PC BIOS being modified to detect and read boot record data from a tape media. To date, however, PC BIOS standards do not support booting from tape media. 
     In a system which is bootable from a CD-ROM, U.S. Pat. No. 5,727,213 specifies that, to read boot record data from a CD-ROM, read commands directed to the floppy disk drive need to re-directed to the CD-ROM drive during a read data part of the boot process. In addition, a modified SCSI driver of the PC needs to convert the 512 byte sectors conventionally used by hard disk and floppy disk into 2 Kbytes sectors conventionally used by a CD-ROM drive. 
     In view of the possibility of booting from CD-ROM, it would obviously also be possible to generate one or more DR CD-ROMs to replace the DR floppy disks. However, there would be little advantage in adopting this approach, and a significant cost increase. In particular, it would still be onerous for the user to have to generate, maintain and keep safe the DR CD-ROMs. 
     It is one object of the present invention to provide a more convenient DR solution. 
     DISCLOSURE OF THE INVENTION 
     According to a first aspect, the present invention provides a method of executing application software in a system comprising computing apparatus and tape drive apparatus, the computing apparatus being bootable from a kind of initial program load device that is not a tape drive apparatus, the method comprising the steps of: 
     generating bootable tape media, by storing to the tape media both application software and bootable data corresponding to that which a said kind of initial program load device would provide to the computing apparatus during booting of the latter from that device; 
     initiating booting of the computing apparatus, thereby causing the computing apparatus to attempt to locate a said kind of initial program load device; 
     controlling the tape drive apparatus to emulate a said kind of initial program load device for interactions with the computing apparatus whilst the latter is booting, whereby the tape drive apparatus identifies itself to the computing apparatus as an initial program load device of the aforesaid kind; and 
     continuing with the computing apparatus recognising the tape drive apparatus as a said kind of initial program load device, booting from the bootable data and executing the application software. 
     According to a second aspect, the present invention provides tape drive apparatus, comprising: 
     a mechanism for controlling the position and motion of loaded tape media; 
     a read/write circuit for transferring data between the loaded tape media and the tape drive apparatus; and 
     a controller for controlling the operation of the tape drive apparatus to identify loaded tape media as containing bootable data, receive from the computing apparatus and processes signals which are intended for a kind of initial program load device that is not a tape drive apparatus and generate response signals which the computing apparatus would expect from the said kind of initial program load device. 
     The foregoing method and apparatus permits a computer system, which may not support booting from tape drive apparatus, to boot from the latter and execute application software, for example DR application software. 
     According to a third aspect, the present invention provides a method of performing a data recovery operation in a system comprising computing apparatus and tape drive apparatus, the computing apparatus being bootable from a kind of initial program load device that is not a tape drive apparatus, the method comprising the steps of: 
     generating a recovery tape media, by storing to the tape media both a backup data set and bootable data corresponding to that which a said kind of initial program load device would provide to the computing apparatus during booting of the latter from that device; 
     initiating booting of the computing apparatus, thereby causing the computing apparatus to attempt to locate a said kind of initial program load device; 
     controlling the tape drive apparatus to emulate a said kind of initial program load device for interactions with the computing apparatus whilst the latter is booting, whereby the tape drive apparatus identifies itself to the computing apparatus as an initial program load device of the aforesaid kind; and 
     continuing with the computing apparatus recognising the tape drive apparatus as a said kind of initial program load device, booting from the bootable data, causing the tape drive apparatus to operate as a tape drive apparatus and recovering the backup data set therefrom. 
     As such, the invention obviates DR floppy disks entirely by storing all the data required for DR onto a single piece of tape media and providing a tape drive which acts like an initial program load device even though it is may not be recognised as one. As a result, minimal human intervention is required to enact DR. 
     The computing apparatus may be arranged to generate bootable data which complies with the ISO 9660 format for CD-ROM apparatus and the El Torito Bootable CD-ROM Format Specification. Other appropriate formats may be available in future. 
     The bootable data comprises data and/or files which, when executed, allow the computing apparatus to access a tape drive apparatus and restore therefrom the backed-up data set from the recovery tape media loaded in the tape drive apparatus. 
     Preferably, the bootable data is written to the recovery tape media starting a pre-determined offset from the beginning of the tape media. As such, appropriately configured tape drive apparatus can read the tape media and locate the bootable data. Preferably, the tape drive apparatus locates the start of the bootable data on the tape media by starting from the logical beginning of the tape media and reading forwards by the pre-determined number of blocks. 
     In a preferred embodiment, the bootable data is written to recovery tape media starting in the 21 st  block from the logical beginning of the recovery tape media. 
     The tape drive apparatus may be controlled to emulate the initial program load device by user operation of initialisation means associated with the tape drive apparatus. 
     In a preferred embodiment, the initialisation means comprises operating an eject button of the tape drive apparatus while the tape drive apparatus is being powered on. 
     In addition, preferably, the tape drive apparatus may be arranged to switch to operation as a tape drive apparatus in response to receipt of a specific signal from the computing apparatus. 
     Alternatively, the tape drive apparatus may be arranged to switch to operation as a tape drive apparatus in response to receipt of a specific signal from the computing apparatus in combination with an amount of data exceeding a predetermined threshold having been read by the computing apparatus from the tape drive apparatus. 
     Preferably, in response to a status request signal from the computing apparatus, which is attempting to locate a said kind of initial program load device, the tape drive apparatus returns a signal indicating that it is in the process of loading media, even if media is not present, thereby to cause the computing apparatus to wait for an extended period of time before attempting to communicate with an alternative initial program load device. 
     In order to improve apparent performance of the tape drive apparatus, the tape drive apparatus is arranged to read from the recovery tape media and cache into volatile memory means of the tape drive apparatus at least some of the bootable data. 
     In particular, said cached bootable data includes directory data representative of the arrangement of the files comprised in the bootable data. As such, the tape drive apparatus needs only to access the tape media once in response to multiple accesses of said directory data by the computing apparatus. 
     In addition, or alternatively, said cached bootable data may include at least some files in the bootable data that need to be accessed more than once during the recovery operation. As such, the tape drive apparatus needs only to access the tape media once to read said files in response to multiple reads of said files by the computing apparatus. 
     The computing apparatus may generate bootable data comprising a plurality of data files by ordering the files in substantially the order in which they are subsequently required to be read by the computing apparatus from the recovery tape media for the purposes of a recovery operation. 
     In accordance with a fourth aspect, the present invention provides tape drive apparatus, comprising a mechanism for controlling the position and motion of loaded tape media; 
     a read/write circuit for transferring data between the loaded tape media and the tape drive apparatus; and 
     a controller for controlling the operation of the tape drive apparatus, there being two modes of operation of the tape drive apparatus, characterised in that the controller is arranged to selectively control the tape drive apparatus to operate in either one of the two modes of operation, in which: 
     a) in a first mode, the tape drive apparatus identifies loaded tape media as containing bootable data, receives from the computing apparatus and processes signals which are intended for a kind of initial program load device that is not a tape drive apparatus and generates response signals which the computing apparatus would expect from the said kind of initial program load device; and 
     b) in a second mode, the tape drive apparatus operates in accordance with tape drive apparatus operation. 
     When in the first mode, the controller may be arranged to generate, in reply to a device type inquiry signal from the computing apparatus, a response identifying the tape drive apparatus as the said kind of initial program load device. 
     Preferably, when in the first mode, the controller is arranged to identify the loaded tape media as containing bootable data by reading from tape media data starting a predetermined offset from the beginning of the recovery tape media. 
     In a preferred embodiment, the predetermined offset is the 21 st  block from the logical beginning of the recovery tape media. 
     In a preferred embodiment, the apparatus further comprises random access memory means, wherein the controller is arranged to read at least some of the bootable data into the random access memory, such that for subsequent accesses of said data by the computing apparatus the controller accesses the random access memory rather than the tape media. 
     Preferably, the apparatus further comprises user selection means responsive to user operation to cause the tape drive apparatus to operate in the first mode. 
     In a preferred embodiment, the user selection means comprises an eject button of the tape drive apparatus, and the controller is arranged to detect user operation of the eject button during a power on, or reset, operation of the tape drive apparatus. 
     In addition, the controller may be responsive to receipt of a particular signal from the computing apparatus to switch the operation of the tape drive apparatus from the first mode to the second mode. 
     Generally, the initial program load device is a CD-ROM drive. 
     Other embodiments and aspects of the invention will become apparent from the following description, claims and drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     For a better understanding of the invention and to show how the same may be carried into effect, there will now be described by way of example only, specific embodiments, methods and processes according to the present invention with reference to the accompanying drawings in which: 
     FIG. 1 is a high-level schematic block diagram showing a computer and a tape drive; 
     FIG. 2 is a diagram representing the high-level logical arrangement of data comprising a CD-ROM file system; 
     FIGS. 3 a  and  3   b  are diagrams representing the high-level logical arrangements of two exemplary DR data formats on tape; 
     FIG. 4 is a flow diagram illustrating the steps involved in writing a DR file system to tape media; and 
     FIG. 5 is a flow diagram illustrating the steps involved in setting a tape drive into ‘DR Mode’ and booting a computer from the tape drive. 
    
    
     BEST MODE FOR CARRYING OUT THE INVENTION, &amp; INDUSTRIAL APPLICABILITY 
     There will now be described by way of example only the best mode contemplated by the inventors for carrying out the invention. In the following description numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent however, to one skilled in the art, that the present invention may be practised without using these specific details. Also, well-known methods and structures have not been described in detail so as not to unnecessarily obscure the present invention. 
     As already alluded to above, currently, PC BIOS standards specify booting from floppy disk, hard disk or CD-ROM devices. In addition, the standards do allow for remote booting across networks, for example using Plug and Play (PnP) functionality (for reference, see for example the “Plug and Play BIOS Specification”, Version 1.0A, by Compaq Computer Corporation, Phoenix and Intel Corporation). For a detailed description of a current BIOS standard, see for example “BIOS Boot Specification”, Version 1.01, Jan. 11, 1996, by Compaq, Phoenix and Intel. 
     In the light of current BIOS standards and of the difficulties perceived by the present inventors in creating and maintaining up-to-date DR floppy disks, the present inventors have developed an improved DR solution, which facilitates DR using only appropriate application software, an appropriate tape drive and a recent tape backup of the file system of a PC that needs to be restored. Significantly, there is no need for generating, updating or keeping DR floppy disks or the like. Significantly, also, the solution described herein requires no changes to be made to the computer hardware, BIOS or operating system in order to function. These features are believed by the present inventors to represent significant advantages over known backup solutions. 
     In future, it is anticipated that BIOS standards may be amended to allow booting from a tape drive, thereby apparently obviating the present DR solution. However, booting from a tape drive would only be supported by newer computer systems which support such a new BIOS. Therefore, the present invention will remain significant, even if BIOS standards are amended, in order that computer systems running an older BIOS can enact the present DR solution. In addition, the present solution would still operate in newer systems, which were running such a new BIOS, so the solution would remain universally usable. Indeed, the ability for a computer system to boot from a tape drive, where the former may not recognise the latter as an IPLD, may find broader application that in just the present DR solution. For example, the concept of having bootable tape media may be used in conjunction with any application, not just a DR application, stored on the same, or even different, tape media. 
     Hardware suitable for operating an embodiment of the present invention will now be described. 
     FIG. 1 is a block diagram, which illustrates a PC  100  connected to a standard tape drive  140 , which has been modified as will be described below. In particular, the diagram illustrates the basic components of the PC  100  and the tape drive  140 . The PC  100  is either an MS-DOS based machine, or a Windows NT or Windows 95/98 machine. 
     The tape drive  140  is, for example, a well-known DDS (Digital Data Storage) tape drive, DLT (Digital Linear Tape) tape drive or other tape media device. 
     As shown very simplistically in FIG. 1, the PC  100  includes a CPU  105  (Central Processing Unit), which is in communication, via a bus  110 , with ROM  115  (Read Only Memory), RAM  120  (Random Access Memory) and an I/O (Input/Output) subsystem  125 . 
     The I/O subsystem  125  connects the PC  100  to a number of storage devices, namely, a floppy disk drive  135  and, via a SCSI HBA  128 , a hard disk drive  130  and the tape drive  140 . The hard disk drive  130  and floppy disk drive  135  are represented as internal devices of the PC  100 , whereas the tape drive  140  is represented as an external device, in this arrangement, although it could alternatively be an internal device. 
     In practice, the bus  110  may comprise multiple busses and respective bus subsystems; for example, host bus, PCI bus, EISA bus, X bus, Y bus etc. However, these are well-documented elsewhere and have not been illustrated for reasons of brevity of description only. Additionally, the I/O subsystem in a typical PC will generally also comprise one or more serial ports, parallel ports, video ports, mouse ports and respective subsystems or adaptors, none of which are shown for reasons of simplicity only. For more detailed information relating to typical PC hardware architectures, including details of PC bus and I/O system architectures, the reader is referred to the book “The Indispensable PC Hardware Handbook”, third Edition, by Hans-Peter Messmer, published by Addison-Wesley ISBN 0-201-403994. 
     As also shown in FIG. 1, a typical tape drive  140  includes a host interface  145  for controlling transfer of data between the tape drive  140  and the PC  100 . Control signals received from the PC  100  are passed to a controller  150 , which controls the operation of all components of the tape drive  140 . The controller  150  typically comprises a microprocessor, for example a Motorola 68000 series microprocessor, a micro-controller (as illustrated in the present embodiment) controlled by firmware stored in ROM  185 , or an ASIC (application specific integrated circuit). 
     For a data backup operation, in response to receipt by the host interface  145  of data write signals from the PC, the controller  150  controls the tape drive  140  to write data to tape, comprising the steps: the host interface  145  receiving data from the PC  100  and passing it to the formatter  155 ; the formatter formatting the data, for example by compressing the data and adding error correction and detection codes, and storing the formatted data in a buffer  160 , comprising, for example, a bank of 8 Mbytes of RAM; when appropriate (for example, when the buffer is nearly full), a read/write block reading the formatted data from the buffer  160  and converting the data into electrical signals suitable for driving magnetic read/write heads  170 , which write the data to tape media  175  in known fashion. The tape media  175  is mounted in a tape mechanism  180 , which loads and ejects the tape media  175  and winds the tape media  175  forwards or backwards as required for reading and writing data. In a DDS tape drive, the read/write heads  170  are mounted on a helical scanning drum, which rotates to sweep the heads past the tape in a motion oblique to the direction of travel of the tape. 
     For a data restore operation, in response to read signals received by the host interface  145  from the PC  100 , the controller  150  controls the tape drive the return the data to the PC  100 , comprising the steps: the heads  170  reading data signals from the tape media  175 ; the read/write block  165  converting the signals into digital data representation and storing the data in the buffer  160 ; the formatter  155  reading the data from the buffer  160 , processing the data to remove errors and decompressing the data to be passed on to the host interface  145 ; and the host interface returning the data to the PC  100 . 
     The host interface  145 , formatter  155  and read/write blocks typically each comprise one or more appropriately programmed ASICs. 
     In the present embodiment, the PC  100  communicates with the tape drive  140  using one of the well-known standard SCSI protocols, such as SCS 12 . Accordingly, the host interface  145  comprises an appropriate SCSI adaptor. A detailed description of the SCSI protocol will not be included herein, since it is well known and only peripheral to the understanding of the invention. Alternatively, other protocols such as EIDE or Fibre Channel, could be used. 
     In general, the PC  100  and tape drive  140  described above are standard and well-known pieces of apparatus, which will, thus, not be described in any more detail so as not to obscure the present invention. 
     For the purposes of the present embodiment, the tape drive  140  is modified only in respect of the program, or firmware  185 , which controls the operation of the tape drive. 
     The firmware  185  may be modified by writing a new set of instructions to the existing ROM (if the ROM is an EEPROM) using a standard firmware update process, which is well known and will, thus, not be described herein. Alternatively, the ROM may simply be replaced with one containing the new instructions. In this way, it is a relatively simple process to modify the behaviour of a standard tape drive  140 . 
     In accordance with the present embodiment, the firmware  185  in the tape drive  140  is modified to provide both a ‘Normal Mode’ of operation, in which the tape drive  140  behaves as a tape drive  140 , and a ‘DR Mode’ of operation, in which the tape drive  140  is arranged to emulate a CD-ROM drive. The CD-ROM drive emulation is achieved in part by configuring the tape drive  140  to identify itself to the PC  100  as a CD-ROM drive and also by modifying a SCSI command set in the tape drive  140  to emulate the SCSI command set of a CD-ROM drive. The specific details of the modified SCSI command set are provided near the end of the present description. With the ability to emulate a CD-ROM drive, the tape drive  140  can act as an IPLD, without the need to modify existing PC BIOS standards, PC hardware or PC operating systems. 
     Whether the tape drive  140  operates in Normal Mode or DR Mode in the present embodiment is determined by user selection. The user selection of mode may be performed without the need for any additional tape drive hardware, by using the tape drive Eject button; if the tape drive  140  is powered on with the Eject button held down, the DR Mode of operation is selected, otherwise the Normal Mode is selected. This selection function is achieved by modifying the tape drive&#39;s firmware  185  to check the status of the Eject button during a power-on self-tests sequence. Alternatively, DR Mode could be selected by holding the Eject button down for a long time period (such as five seconds), when the tape drive  140  is already powered on, by modifying the firmware  185  to check the length of the period the Eject button is held down to determine whether the operation is an eject or the user selecting DR Mode. Various other means for selecting mode could be employed, for example by providing a specific DR button or switch on the tape drive  140 . However, the present implementation has the benefit of not requiring any physical modification to the tape drive  140 . 
     Before describing the operation of the present embodiment in greater detail, by way of background only, the standard boot process of a PC will now be summarised. 
     In order for any PC  100  to function, it must follow program instructions. Typically, standard programs that run on a PC  100  are stored on a hard disk drive  130 , and are loaded into RAM  120  to be processed by the CPU  105  when necessary. From the RAM  120 , the CPU  105  can read the instructions of the respective program and execute them. 
     On power-up, or system reset, however, the RAM  120  in the PC is empty and there are no program instructions to follow. Therefore, a BIOS program is provided, which is written into ROM  115  and is responsible for starting the PC  100 . 
     BIOS programs follow a uniform standard that was created, and has been developed over the years, by the computer industry, so that compliant CPUs always addresses the same place (e.g. FFFF0h) in ROM to find the start of a BIOS program. A CPU retrieves and begins executing its initial instructions from this ROM location. 
     Once initiated, the BIOS program begins the system boot sequence, which calls other programs, gets the operating system loaded, and prepares the PC  100  for normal use. 
     One of the first tasks of a boot sequence is a power-on self-test (POST). After the POST, the PC  100 , under the control of the BIOS program, initialises boot devices such as the keyboard and VDU. One or more of these boot devices may have its own specific BIOS program, which is located and initialised by the main BIOS program. Typically, video drivers and SCSI adapters have their own BIOS programs held in ROM on their respective interface cards. Next, the BIOS program will cause the PC  100  to check the system&#39;s logical devices, such as LPT 1  and COM 1 , and memory configuration. In due course, the BIOS program checks for an IPLD from which it can load and execute bootable data, which normally comprises the data, or files of an operating system. 
     The bootable data typically resides at a specific location on the hard disk drive  130 , which is usually allocated with the drive letter “C:”. Thus, normally, the PC&#39;s operating system is booted from the hard disk drive  130 . 
     However, BIOS programs generally define (or can otherwise be configured) that a floppy disk drive  135 , allocated with the drive letter “A:”, is accessed, before the hard disc drive  130 , to determine whether it is loaded with a floppy disk containing bootable data. In this way, it is possible to boot the PC  100  from a floppy disk irrespective of whether the hard disk drive  130  contains bootable data, or is in a state where it can be accessed at all. This is the main reason why DR floppy disks are the standard means for beginning a DR procedure. 
     Once the BIOS has located an IPLD containing bootable data, it locates and loads into RAM one or more specific files which comprise executable programs, and executes them thereby transferring control of the PC to them. The programs typically load and initialise the remainder of the operating system, for example by partitioning disk drives, configuring device drivers etc. The programs may in addition be configured to load and execute application programs which are not part to the operating system, thereby passing control of the PC directly to the application programs without requiring user intervention. Such programs are sometimes known as auto-executing applications. In principle, such applications could be loaded directly into memory and executed. However, in practice, such programs tend to be copied onto the hard disk, from where they can be executed as required. Once the firmware  185  in the tape drive  140  has been configured to provide the two modes of operation—‘Normal Mode’ and ‘DR Mode’, which provides CD-ROM drive emulation—it is necessary to generate a bootable CD-ROM image on the tape media  175 , for the tape drive  140  to use during DR. 
     In accordance with the present embodiment, a bootable CD-ROM image, or DR CD-ROM image, is stored in a pre-defined location on the tape media  175 . The CD-ROM image contains an entry that identifies the image as being ‘bootable’. The image itself is generated by the backup application software that originally created the backup tape media  175 , as will be described in more detail below. 
     FIG. 2 illustrates the format of a bootable CD-ROM image  200  according to the El Torito specification and the ISO 9660 standard. For convenience, the basic arrangement of the format standard will now be summarised. As defined by the ISO, the first sixteen CD-ROM sectors, noting that those are 2 Kbyte sectors, are designated as the System Area  205 . The System Area  205  may be utilised as desired by a manufacturer for its own purposes. Therefore this is a non-standard area and can be developed as desired. It is particularly noted that conventional CD-ROM development systems allow the manufacturer the capability to provide information into this entire area. In accordance with the present embodiment, sector 15 of the System Area  205  has been used as a Booting Catalogue  210 . The Booting Catalogue  210  includes a pointer to a Bootable Disk Image  240 . According to the ISO standard, at sector 16 (the 17 th  sector) a block called the Primary Volume Descriptor block  215  is located. The Primary Volume Descriptor  215  contains information about the CD-ROM and the data on it. A value in the Primary Volume Descriptor  215  indicates the size of the primary volume space contained on the particular CD-ROM, this being referred to as the volume size. Next, sector 17 (the 18 th  sector) is the El Torito-specified Boot Record Volume  220 , which includes a pointer to the Booting Catalogue  210 . The next sector is defined to be the Set Terminator Volume  225 . This sector provides certain information which indicates that the various other blocks in the volume descriptor set used for providing information are terminating and that the primary volume space is to commence. Following the Set Terminator Volume  225 , in the primary volume space, are sectors containing Directory Path Tables  230  and Directory Structures  235 . Next comes the Bootable Disk Image  240 , pointed to by the Booting Catalogue  210 , which is in effect data from which a computer system can actually boot. This may be a floppy disk image, a hard disk image, or even appropriate raw data (in NO EMULATION mode). Finally comes the CD-ROM Volume Contents  245 , for example the application software files. 
     The contents of the CD-ROM image, which complies with ISO 9660 and the El Torito specification will now be reviewed in more detail with reference to Tables 1-4. 
     Table 1 shows the contents of the Boot Record Volume  220 . In particular, as shown in Table 1, a Boot Record Volume  220  includes, in byte offset 7-26, the text “EL TORITO SPECIFICATION” padded with zeros. As will be described, it is this part of the CD-ROM image that, when encountered, indicates to the tape drive  140  that the tape media is DR media according to the present embodiment. 
     
       
         
           
               
               
               
             
               
                 TABLE 1 
               
               
                   
               
               
                 Offset 
                 Type 
                 Description 
               
               
                   
               
             
            
               
                 0 
                 byte 
                 Boot Record Indicator, must be 0 
               
               
                  1-5 
                 byte 
                 ISO-9660 Identifier, must be “CD001” 
               
               
                 6 
                 byte 
                 Version of this descriptor, must be 1 
               
               
                  7-26 
                 byte 
                 Boot System identifier, must be “EL TORITO 
               
               
                   
                   
                 SPECIFICATION” padded with 0&#39;s. 
               
               
                 27-46 
                 byte 
                 Unused, must be 0 
               
               
                 47-4A 
                 Dword 
                 Must be 0 × 0F (Absolute pointer to first sector of 
               
               
                   
                   
                 Booting Catalogue) 
               
               
                 4A- 
                 byte 
                 Unused, must be 0 
               
               
                 7FF 
               
               
                   
               
            
           
         
       
     
     The Booting Catalogue  210  forms part of the CD-ROM image in a location indicated by a pointer in bytes 47-4A of the Boot Record Volume  220 . The Booting Catalogue  210  contains firstly a Validation Entry that indicates that a Booting Catalogue is present, followed by an Initial/Default entry that describes the form of the bootable image. As already mentioned, the Booting Catalogue  210  is held in a single hitherto unused sector in a fixed location, namely sector 0x0F, although it could be in any other available sector if desired. The formats for the Validation Entry and Initial/Default entry, respectively in Tables 2 and 3, are: 
     
       
         
           
               
               
               
             
               
                 TABLE 2 
               
               
                   
               
               
                 Offset 
                 Type 
                 Description 
               
               
                   
               
             
            
               
                 0 
                 byte 
                 Header ID, must be 01 
               
               
                 1 
                 byte 
                 Platform ID: 0 = 80 × 86, 1 = PowerPC, 2 = Mac 
               
               
                 2-3 
                 Word 
                 Reserved, must be 0 
               
               
                  4-1B 
                 Charac- 
                 ID string, must be “DR-1.0” padded with 0&#39;s 
               
               
                   
                 ter 
               
               
                 1C-1D 
                 Integer 
                 Checksum Word. This sum of all the words in this 
               
               
                   
                   
                 record should be 0. 
               
               
                 1E 
                 byte 
                 Key byte, must be 55 (value is included in checksum) 
               
               
                 1F 
                 byte 
                 Key byte, must be M (value is included in checksum) 
               
               
                   
               
            
           
         
       
     
     
       
         
           
               
               
               
             
               
                 TABLE 3 
               
               
                   
               
               
                 Offset 
                 Type 
                 Description 
               
               
                   
               
             
            
               
                 0 
                 byte 
                 Boot indicator. 88 = Bootable, 00 = Not Bootable 
               
               
                 1 
                 byte 
                 Boot media type. This specifies what media the boot 
               
               
                   
                   
                 image is intended to emulate in bits 0-3 as follows, 
               
               
                   
                   
                 bits 4-7 are reserved and must be 0. Bits 0-3 
               
               
                   
                   
                 are as follows: 
               
            
           
           
               
               
               
            
               
                   
                 0 
                 No Emulation 
               
               
                   
                 1 
                 1.2 meg diskette 
               
               
                   
                 2 
                 1.44 meg diskette 
               
               
                   
                 3 
                 2.88 meg diskette 
               
               
                   
                 4 
                 Hard Disk (drive 80) 
               
            
           
           
               
               
               
            
               
                 2-3 
                 Word 
                 Load Segment. This is the load segment for the initial 
               
               
                   
                   
                 boot image. This value should be set to 0 so that the 
               
               
                   
                   
                 system will use the traditional load segment of 7C0. 
               
               
                 4 
                 byte 
                 System Type. This must be a copy of byte 5 (System 
               
               
                   
                   
                 Type) from the Partition Table found in the boot 
               
               
                   
                   
                 image. This will normally be set to 0 (80 × 86 type) 
               
               
                 5 
                 byte 
                 Unused, must be 0 
               
               
                 6-7 
                 Word 
                 Sector Count. This is the number of virtual/emulated 
               
               
                   
                   
                 512-byte sectors the system will store at Load Segment 
               
               
                   
                   
                 during the initial boot procedure. For disk emulation 
               
               
                   
                   
                 this value is normally set to 1. 
               
               
                  8-0B 
                 DWord 
                 Load RBA. This contains the CD sector that is the 
               
               
                   
                   
                 start address of the bootable disk image. 
               
               
                 0C-1F 
                 byte 
                 Unused, must be 0 
               
               
                   
               
            
           
         
       
     
     Depending on the value set for Boot Media Type, the bootable disk image consists of an exact replica of the floppy or hard disk the system is intended to emulate. This image is created by concatenating all the blocks that make up the source media into a file. It is the responsibility of INT  13  (DOS interrupt  13 ) to interface to recreate the disk geometry and to properly access the information. When NO EMULATION is used for the Boot Media Type, then this is simply a “loader” or stand-alone program. The specified number of sectors are loaded at the specified segment (usually 7C0), and then the BIOS jumps to the load address. 
     The Bootable Disk Image file  240  is placed in ISO-9660 format as the first file in the root directory of the CD Volume. The standard ISO-9660 Directory Path Table  230  and directory entry table are built to take this extra file in the volume into account. Note that if NO EMULATION mode is being used, and the Bootable Disk Image is 15 sectors or less in size, then it could be placed in the unused System Area at the beginning of the CD image, thus avoiding having to make it a file in the CD volume and saving some space. 
     ISO 9660 data structures fall into three main categories: the Volume Descriptors, the Directory Structures, and the Path Tables. The Volume Descriptor indicates where the Directory Structure  235  and the Path Table  230  are located, the Directory Structure  235  indicates where the actual files are located, and the Path Table  230  provides short cuts to each directory. The CD-ROM image is made up of the Path Table, the Directory Structures and of course the actual files (including the bootable disk image file). As illustrated in Table 4, the Primary Volume descriptor must contain at least the following information: 
     
       
         
           
               
               
             
               
                 TABLE 4 
               
               
                   
               
             
            
               
                 Standard Identifier 
                 ISO-9660 Identifier, must be “CD001” 
               
               
                 Volume Identifier 
                 String describing CD contents 
               
               
                 System Identifier 
                 Unused, set to 0 
               
               
                 Volume Size 
                 Number of Logical Blocks in this Volume 
               
               
                 Number of Volumes 
                 1 
               
               
                 in this Set 
               
               
                 Number of this 
                 1 
               
               
                 Volume in the Set 
               
               
                 Logical Block Size 
                 2048 
               
               
                 Size of the Path 
                 How many bytes are in the Path Table 
               
               
                 Table 
               
               
                 Location of the Path 
                 Location in the CD-ROM of the Volume Path Table 
               
               
                 Table 
               
               
                 Root Directory 
                 Contains the information needed to locate and read 
               
               
                 Record 
                 the top level directory, formatted as a directory 
               
               
                   
                 record 
               
               
                 Time Stamps 
                 Information about when the Volume was 
               
               
                   
                 created, etc 
               
               
                   
               
            
           
         
       
     
     The ISO 9660 specification contains full details on the Primary and Set Terminator Volume Descriptors, the Path Table, and the Directory Structures. The actual files are written to the CD image at the sector locations specified in the Directory Structures (note that each file starts on a new sector). 
     According to the present embodiment, for the purposes of generating DR-capable tape media, the backup application software is arranged to add the CD-ROM image (as described above) onto the tape media  175  each time a backup operation that overwrites the media is enacted, if the tape drive  140  is DR capable. One method of achieving this is by writing the CD-ROM image to the tape media  175  in the specified location as part of a standard tape format operation (which is performed each time a backup that overwrites the media is done). 
     Additionally, or alternatively, it is believed to be advantageous for the backup application software to provide a user option to add the CD-ROM image, even when the tape drive  140  is not DR capable, so that the resulting tape media  175  could still be used in a DR-capable drive. One method for the backup application software to detect the DR capability of a tape drive  140  is to check for the presence of a new SCSI Mode page for DR control, which is described below. 
     The CD-ROM image reflects the current PC configuration in terms of installed hardware devices, for example SCSI HBA  128 . In other words, the equivalent of an up-to-date set of DR floppy disks is created automatically each time the PC  100  is backed up, which may be as frequently as on a daily basis. Therefore, the chance of there only being in existence out of date DR media is greatly reduced. 
     Preferably, the initial DR CD-ROM image is created by the application software as a standard file. This DR CD-ROM image file contains an exact image of bootable CD-ROM media, which complies with the ISO 9660 specification and the El-Torito bootable CD-ROM specification. 
     The contents of the bootable CD-ROM include a minimum operating system plus minimum backup application software, such that the system data can be restored from the backup tape after booting from the CD-ROM image. Essentially, the CD-ROM image contains the same contents as the current floppy-based DR software solutions, except for the following modifications: 
     ability to run from a bootable CD-ROM structure (instead of multiple floppy disks); 
     any hard-coded device type dependencies (e.g. floppy/CD paths) are removed; and 
     the random-access performance characteristics of the CD-ROM should most preferably (although not necessarily) be optimised for sequential use on the tape drive to ensure that the maximum seek time between file accesses is 10 seconds, as described below. 
     The diagram in FIG. 3 a  illustrates one possible location for a CD-ROM image  305  at the beginning of a length  300  of tape media  175 . The CD-ROM image  305  is followed by two filemarks,  310  and  315 , an application software vendor (SV) header  320 , which identifies that the media has been generated by particular backup application software, and finally, the backup data  325  itself. 
     However, given that known backup application software generally uses the first few blocks of data on the tape media  175  for an SV header, the above scheme would mean that the new DR-capable backup tape media  175  would not be recognised by previous versions of the application software. Therefore, the present inventors have determined that the scheme depicted in FIG. 3 b  is more preferable, as it supports backwards compatibility with previous versions of backup application software. 
     In FIG. 3 b , the first few blocks of data on a length  330  of tape media  175  are a standard SV header  335  (with application software sized blocks), followed by multiple blank blocks  340  (of any block size) to pad the application header  335  out to a predefined size of 20 blocks (0-19), and then by the CD-ROM image  345  (of 2048 byte block size), followed by a filemark  350 , and, finally, the backup data set  355  (of application software block size). This arrangement determines that the CD-ROM image  345  always starts in the 21 st  block from LBOT (the Logical Beginning Of Tape), and thus is very easy for the tape drive  140  to locate. 
     With reference to FIG. 4, there will now be described a method of writing the entire DR image file to tape media  175  in a fixed location in the format illustrated by FIG. 3 b.    
     In step  400 , the tape media  175  is rewound to LBOT. Then, in step  405 , the normal application software label blocks  335  are written to the tape media  175  with the standard application software block sizes. In step  410 , the application software normal fixed block size is read using a Mode Sense command, and the value is saved. Then, in step  415 , the fixed block size is changed to 2048 bytes using a Mode Select command. In step  420 , “N” null blocks  340  of data are written to the tape media  175  using fixed block mode write until the specified start location of the CD-ROM image, where: 
     N=(20−number of application label blocks) 
     Next, in step  425 , any hardware compression is disabled using an appropriate SCSI Mode Select command (this is optional, since the image could be written as either compressed or uncompressed data). Then, in step  430 , the CD-ROM image  345  is written to the tape media  175  with fixed block mode write. In step  435 , the current fixed block size is changed back to the original application block size, and, in step  440 , hardware compression (if applicable) is re-enabled using appropriate SCSI Mode Select commands. Finally, a filemark  350  is written to tape. 
     The resulting tape format will not interfere with backwards compatibility of the backup tape with previous versions of the application software, since the CD-ROM image data after that application label should never be accessed by previous versions. 
     If the PC configuration changes such that the current DR image file needs updating, then, preferably, DR image file updates should be applied without needing to re-create the entire DR image file. Such updates may be due to hardware changes (e.g. new SCSI HBAs) or operating system partition/volume changes. Then, the updates to the DR image file are written to the tape by overwriting only the old parts of the image file. 
     If the DR image file has been updated but subsequent backup operations are appending to the backup media rather than overwriting, then an error message should be generated by the application software, warning the user that their current backup media does not include the latest DR updates and that a full backup with overwrite is recommended. 
     A DR operation will now be described in more detail with reference to the flow diagram in FIG.  5 . In FIG. 5, the solid lines represent the primary process flow and the broken lines represent interactions between the PC  100  and the tape drive  140 . 
     According to FIG. 5, in step  500 , a user initiates DR Mode in the tape drive  140  by holding down the Eject button when the power is switched on. As a result, the tape drive  140  displays an appropriate signal on the front panel (not shown) of the tape drive; for example, by setting one or more front panel LEDs to flash or generating a graphical message on an LCD display. The tape drive  140  then continues as follows. 
     In step  505 , the tape drive  140  determines whether tape media  175  is present in the tape drive  140  in normal fashion, and generates an appropriate warning signal to the user if not, in step  510 . While waiting for the media to be loaded and while checking the media for DR capability, the tape drive  140  is arranged to respond to a Test Unit Ready command from the PC  100  by returning “CHECK CONDITION”, with sense key ‘NOT READY’ (0×02) and extended sense ‘LOADING’ (0×0401). This in fact may be a false response, which is intended to trick the BIOS into waiting for the tape to load (if it has not done so already), which can take up to thirty seconds after being inserted into the tape drive after power-on. In this case, if a true response were returned before a tape had been loaded (a true response including extended sense ‘MEDIA NOT LOADED’), the BIOS would move straight on from the tape drive in an attempt to find a different IPLD. In other words, DR would not work. The false response causes the BIOS to wait at least  60  seconds before timing out after waiting for the tape drive (which is emulating a CD-ROM drive) to read the first block. This time is sufficient for the tape media to be inserted, loaded and checked for DR capability. The ability to generate a false response is a key requirement of tape drive operation when the tape drive  140  is an ‘internal’ tape drive, which shares the power of the PC. In the absence of this feature, it is highly likely that an ‘internal’ tape drive would not be able to provide the DR Mode. Obviously, the feature is not such an issue with an ‘external’ tape drive, which has its own power supply and can be switched on and prepared in advance of switching the PC on. 
     If, or once, tape media  175  is loaded by the user, in step  515 , the firmware  185  controls the tape drive  140  to check to see if the tape media  175  is valid DR tape media. This is achieved by rewinding the tape media  175  to LBOT, reading from the beginning of the tape media  175  and searching for an appropriate Boot System Identifier entry in a Boot Record Volume Description of a CD-ROM image. For the purposes of the present embodiment, the tape drive Locates from LBOT to block  37 , and bytes 0×7 to 0×26 must be “EL TORITO SPECIFICATION” padded with 0&#39;s. In addition, the tape drive firmware  185  determines whether the image was written with 2048 byte blocks, by Locating to block  20  (from LBOT) and reading 2048 bytes. If no Illegal Length Indicator (ILI) is generated, then the DR image is written in 2048 byte blocks. 
     If the tape media  175  is found to be DR media then, in step  525 , the tape drive  140  switches to DR Mode by enabling the appropriate CD-ROM SCSI command set and displaying an appropriate DR Mode signal on the front panel. Otherwise, in step  520 , the tape drive  140  ejects the tape media  175  and another appropriate warning signal is provided via the front panel display, in step  510 . 
     The tape drive  140  remains in “DR Mode” until one of the following conditions are met: tape drive  140  is power cycled; backup application software sends a DR Mode page command to disable DR Mode; user manually ejects the loaded DR capable media; or, the tape drive  140  receives a SCSI bus rest after  100  CD-ROM blocks or more have been read while in DR Mode. 
     When exiting “DR Mode”, the emulated CD-ROM SCSI commands are disabled and the tape drive  140  reverts to Normal Mode; the tape drive  140  then appears to be in the same state as if it had just been powered on. 
     In step  530 , the PC  100  is booted and carries out the steps defined by the BIOS program, as described above. In particular, in step  535 , the PC  100  searches for an IPLD, which contains a bootable file system. The typical BIOS boot sequence is: 
     1. Search for a floppy disk drive containing a bootable floppy disc—if found, then attempt to boot from this, otherwise 
     2. Search for a CD-ROM drive containing bootable CD-ROM media—if found, then attempt to boot from this, otherwise 
     3. If no bootable floppy disk or CD-ROM drive is found, then attempt to boot from hard disk drive. 
     Assuming no other IPLDs containing bootable data are found, the PC  100  accesses the tape drive  140 , in step  540 , and issues a SCSI “INQUIRY”. In response, in step  545 , the tape drive  140 , operating in DR Mode, returns a Standard Inquiry Data CDB (Control Data Block) having a Peripheral Device Type value of 5 (CD-ROM device type) rather than 1 (tape drive device type), which identifies the tape drive  140  as a CD-ROM drive. In addition, the Standard Inquiry Data includes a signature string, for example “DR- 1 . 0 ”, which indicates to the application software (when installed and running) that the tape drive is DR-capable, and also indicates what version of DR firmware is present. Then, in step  550 , the PC  100  reads the beginning of the CD-ROM image from the tape drive  140  to check for a bootable CD-ROM file system, and, when returned by the tape drive  140  in step  555 , the PC  100  designates the tape drive  140  as the boot path in step  560 . 
     This means that the PC  100  will boot from the CD-ROM image in the tape drive  140  path, even if there are other, real CD-ROM drive devices present in the system (as long as they do not contain a bootable CD-ROM). The only other requirement for the present DR operation to function is that the PC BIOS, or SCSI host adaptor BIOS, supports bootable CD-ROM drives (which is typically the case in all modern SCSI host adaptor cards or motherboard chipsets). 
     In step  565 , the PC  100  reads the CD-ROM image, which is returned by the tape drive  140  in step  570 . The operating system files are read directly into RAM  120  and are executed by the CPU  105  in order to configure the PC, including to be able to access a tape drive  140 . The backup application software files are read and stored on the hard disk, from where they can be executed. 
     Next, in step  575 , the PC  100  executes the backup application software for DR and issues a SCSI Mode Select command that accesses the DR Mode page of the tape drive to terminate DR Mode and begin Normal Mode, to continue with normal tape drive operation. 
     In step  580 , the tape drive  140  reverts to Normal Mode, the buffer  160  is purged and the tape media  175  is allowed to be physically accessed by standard tape drive commands (i.e. Locate, Space, Read etc.). This allows the PC&#39;s recovery to proceed as if it had initially booted from DR floppy disk. 
     Finally, in step  585 , the PC  100  continues to retrieve from the tape drive  140  the backed up data set stored on tape media  175  until the whole PC  100  file system is restored to hard disk drive  130 . Thereafter, the re-built PC  100  can boot from the hard disk drive  130  as normal. 
     When operating in DR Mode, the tape drive  140  needs to emulate a CD-ROM drive, which is a random access device. However, the tape drive  140  is a sequential access device. This raises a number of issues. For example, a tape drive will typically not be able locate specific chunks of data in different places on the media as quickly as a random access device can. Also, there is a potential problem of tape wear, if the tape drive is repeatedly reading the same sections of tape to locate certain data. 
     The present inventors have addressed these issues by taking two significant steps to reduce both tape wear and data locate times. 
     The first step requires specific data from the CD-ROM image to be initially cached in the buffer memory  160 , and the second step requires the files that make up the CD-ROM image to be ordered so that they may be accessed in as sequential a fashion as possible, in order to optimise the performance of the tape drive. 
     With regards to caching, since the largest currently available bootable DR floppy disk set known to the inventors consists of four floppy disks, holding approximately 6 Mbytes of data, an entire CD-ROM image would fit into an 8 Mbyte buffer. However, many tape drives do not have 8 Mbytes of buffer memory (they usually only have 1-2 Mbytes), or, generally, the buffer size may be less than the size of the CD-ROM image. Therefore, such drives need to access the tape media more than once in response to CD-ROM image access commands (Seek, Read). 
     However, in accordance with the present embodiment, the tape drive is arranged to read a permanent (i.e. permanent during DR Mode at least) cache of at least 123 blocks of CD-ROM image into the memory buffer  160  at the time when the media is being checked for DR capability. Thus, the tape drive does not need to re-access this area of the CD-ROM image on tape while in DR Mode. These 123 blocks represent the CD-ROM directory entry area for approximately 6000 files. As a result of this, as each file is read by the PC, the tape drive does not need to re-access the directory from the tape. Instead, the tape drive is arranged to read the directory from the cache to discover where on tape the required file is. 
     In addition, as many as possible of the files in the CD-ROM image that need to be accessed by the tape drive more than once, for example SCSI drivers, are written into the permanent cache. Clearly, the number depends upon the size of the available cache. In order to achieve this easily, the files that need to be accessed more than once are arranged by the application software to be stored near the front of the CD-ROM image, directly after the directory blocks. 
     Typically, in a CD-ROM drive, since the act of Locating files in different places on a CD-ROM generates minimum overhead, files may be ordered in an arbitrary way, for example alphabetically or in terms of the directory order. The inventors have appreciated that this arbitrary arrangement would generate an undesirable overhead for Locating the same files on tape media. 
     Therefore, the files on tape are ordered by the application software to be as much as possible in the order in which they need to be accessed by the application software during a DR operation. Thus, the requirement for tape Locate operations is minimised, thereby reducing the overhead as much as possible. 
     By way of example, there will now be described an optimal arrangement of files in a CD-ROM image for the Windows™ NT operating system. The example makes the following key assumptions about the TXTSETUP.SIF file used in disaster recovery: 
     The [SourceDisksFiles] and [SourceDisksFiles.x86] sections are merged into a single [SourceDisksFiles] section; and 
     Any additional SCSI HBA device drivers (e.g. RAID, U2W, etc) are loaded BEFORE the standard set. 
     
       
         
           
               
               
             
               
                   
               
             
            
               
                 NTDETECT.COM 
                 These initial files are used twice so are put 
               
               
                 VGAOEM.FON 
                 inside the 246KB permanent CD cache. 
               
               
                 ATAPI.SYS 
               
               
                 18042PRT.SYS 
               
               
                 VGA.SYS 
               
               
                 L_INTL.NLS 
               
               
                 FLOPPY.SYS 
               
               
                 DISK.SYS 
               
               
                 CLASS2.SYS 
               
               
                 SETUPLDR.BIN 
                 These files are needed to load NT SETUP. 
               
               
                 TXTSETUP.SIF 
               
               
                 NTKRNLMP.EXE 
               
               
                 HAL486C.DLL 
               
               
                 HALAPIC.DLL 
               
               
                 HALNCR.DLL 
               
               
                 SETUPREG.HIV 
               
               
                 C_1252.NLS 
                 Note the ‘.NLS’ files are different for 
               
               
                 C_437.NLS 
                 different languages, so the correct NLS files 
               
               
                   
                 for the language must be placed here. 
               
               
                 SETUPDD.SYS 
               
               
                 SPDDLANG.SYS 
               
               
                 PCMCIA.SYS 
               
               
                 SCSIPORT.SYS 
               
               
                   
                 Any additional SCSI HBA drivers are insert- 
               
               
                   
                 ed here in the file order. since they are load- 
               
               
                   
                 ed before the standard set. 
               
               
                 CPQARRAY.SYS 
               
               
                 DELLDSA.SYS 
               
               
                 NCR53C9X.SYS 
               
               
                 SPOCK.SYS 
               
               
                 OLISCSI.SYS 
               
               
                 NCRC700.SYS 
               
               
                 NCRC710.SYS 
               
               
                 AHA154X.SYS 
               
               
                 SPARROW.SYS 
               
               
                 AHA174X.SYS 
               
               
                 DPTSCSI.SYS 
               
               
                 ULTRA14F.SYS 
               
               
                 ULTRA24F.SYS 
               
               
                 AMI0NT.SYS 
               
               
                 FD7000EX.SYS 
               
               
                 FD8XX.SYS 
               
               
                 FD16_700.SYS 
               
               
                 ARROW.SYS 
               
               
                 SYMC810.SYS 
               
               
                 BUSLOGIC.SYS 
               
               
                 SLCD32.SYS 
               
               
                 AIC78XX.SYS 
               
               
                 DAC960NT.SYS 
               
               
                 QL10WNT.SYS 
               
               
                 AMSINT.SYS 
               
               
                 FLASHPNT.SYS 
               
               
                 CPQFWS2E.SYS 
               
               
                 ATDISK.SYS 
               
               
                 ABIOSDSK.SYS 
               
               
                 FASTFAT.SYS 
               
               
                 NTFS.SYS 
               
               
                 VIDEOPRT.SYS 
               
               
                 CDROM.SYS 
               
               
                 SFLOPPY.SYS 
               
               
                 KBDCLASS.SYS 
               
               
                 CDFS.SYS 
               
               
                 SYSTEM32\NTDLL.DLL 
               
               
                 SYSTEM32\SMSS.EXE 
               
               
                 KBDUS.DLL 
               
               
                 SETUPP.INI 
               
               
                 MOUCLASS.SY —   
               
               
                 XGA.DL —   
                 Video driver files. 
               
               
                 WEITEKP9.DL —   
               
               
                 W32.DL —   
               
               
                 TGA.DL —   
               
               
                 S3.DL —   
               
               
                 QV.DL —   
               
               
                 MGA.DL —   
               
               
                 ATI.DL —   
               
               
                 8514A.DL —   
               
               
                 XGA.SY —   
               
               
                 WEITEKP9.SYS 
               
               
                 WDVGA.SY —   
               
               
                 V7VRAM.SY —   
               
               
                 TGA.SYS 
               
               
                 S3.SY —   
               
               
                 QV.SY —   
               
               
                 NCR77C22.SY —   
               
               
                 MGA_MIL.SYS 
               
               
                 MGA.SY —   
               
               
                 ET4000.SY —   
               
               
                 DELL_DGX.SY —   
               
               
                 CIRRUS.SYS 
               
               
                 ATI.SY —   
               
               
                 FRAMEBUF.DL —   
               
               
                 VGA64K.DL —   
               
               
                 VGA256.DL —   
               
               
                 HAL.DL —   
                 Files required to load the NT kernel. 
               
               
                 HALAST.DL —   
               
               
                 HALMPS.DLL 
               
               
                 HALOLI.DL —   
               
               
                 HALSP.DL —   
               
               
                 HALWYSE7.DL —   
               
               
                 NTOSKRNL.EXE 
               
               
                 NTLDR 
               
            
           
           
               
            
               
                 The remaining NT files used in the DR are ordered alphabetically after this 
               
               
                 point. They are ordered in the opposite direction to the list in 
               
               
                 [SourceDisksFiles], e.g. if the TXTSETUP.SIF file is ordered A-Z then 
               
               
                 the they are ordered Z-A in this section of the CD image. 
               
               
                 Finally, the backup application DR files are ordered hereafter, again in the 
               
               
                 opposite alphabetical direction to the TXTSETUP.SIF. 
               
               
                   
               
            
           
         
       
     
     Generally, it will be appreciated that using a cache and ordering files as described above could be used by any system in which it is necessary to recover data from sequential storage on the basis of random access read commands. 
     In all cases, the tape drive  140  accesses the correct data on tape media by converting the logical block address of the CD-ROM drive access commands into a physical location on tape media. The positions on tape of a particular file are derived from the cached directory entry for the file. Location of a file on tape is dependent on the tape media being written using a fixed 2 Kbyte block size (i.e. 2048 bytes). Then, the conversion of a random-access command intended for a CD-ROM drive to a sequential tape media position is achieved by using a tape drive LOCATE to move to the X&#39;th block down the tape media, where: 
     X=(CD image block offset from BOT)+(Block address requested in Seek/Read) 
     Tape drive performance may also be improved by reading as much data from tape as possible into any remaining space in the memory buffer  160  not used by the permanent cache, thereby using the memory buffer as a read-ahead cache for subsequent tape accesses. 
     Then, generally, if data requested by a CD-ROM read is not already cached in the buffer  160 , the data is read from the tape media by using the standard tape drive LOCATE and READ functions. The LOCATE command is used to move the tape media to the required starting read block location, and then the READ command is used in fixed block mode to read the requested number of blocks from the tape into the buffer. 
     The new or modified commands required by the tape drive  140  to operate in accordance with the present embodiment now be described in more detail. 
     Test Unit Ready (TUR) 
     This command uses exactly the same CDB during Normal Mode, but it behaves differently during DR Mode: 
     if media is not already loaded when the drive is powered on in DR Mode then, while waiting for the first piece of media to be loaded, the TUR command returns ‘CHECK CONDITION’, with sense key ‘NOT READY’ (0x02) and extended sense ‘LOADING’ (0x0401); and 
     while checking the first piece of loaded media for DR capability, the TUR command returns ‘CHECK CONDITION’, with sense key NOT READY (0x02) and extended sense LOADING (0x0401) 
     Inquiry 
     In both Normal and DR modes of operation, the Standard Inquiry Data page incorporates six extra bytes 43-8 to provide a signature and version number, namely “DR- 1 . 0 ”. The first three bytes are the signature that acts as identification for application software to check whether the device supports DR according to the present embodiment. The application software is arranged, thus, to check for the string “DR- 1 . 0 ” in the tape drive&#39;s standard Inquiry Data. The version value is the last three byes. The byte  4  Additional Length value is also changed to accommodate the additional six bytes of inquiry data. 
     While in DR mode this command uses the same CDB as in Normal Mode and behaves in exactly the same way, except for the Peripheral Device Type bits in all of the supported Inquiry Data Pages. The Peripheral Device Type is set by byte 0, bits 0-4 of each Inquiry Data Page, and is changed from 1 (tape device type) to 5 (CD-ROM device type). 
     Request Sense 
     This command uses exactly the same CDB as Normal Mode and behaves in exactly the same way. 
     Start/Stop Unit 
     This command uses the same CDB as a standard tape drive ‘LOAD’/‘UNLOAD’ command, except that the Load bit is ignored and the command always returns ‘GOOD’ status. 
     Mode Sense/Select 
     These commands are generally used for reading or setting any configuration options in a SCSI device via Mode Sense pages (each page represents a specific type of configuration data/options). According to the present embodiment, a new Mode Sense page is needed to control the operating mode of the tape drive, to allow switching from Normal Mode to DR Mode, and vice-versa. This allows the backup application software to switch the tape drive  140  from DR Mode back to Normal Mode when the backup application software is ready to start reading conventional backup data from the tape drive  140  and restoring it to the hard disk drive  130  of the PC  100 . 
     The Mode page header values for “Medium type” and “Density code” need to comply with CD-ROM media, used by the DR operating system to determine the type of CD-ROM media present when it is preparing to copy data from the CD-ROM device to continue the boot sequence. 
     The Mode Parameter Header data that is used in Mode Sense and Mode Select commands is changed to include the CD-ROM device specific bits: 
     
       
         
           
               
               
               
               
               
               
               
               
               
             
               
                   
                   
               
             
            
               
                   
                 7 
                 6 
                 5 
                 4 
                 3 
                 2 
                 1 
                 0 
               
               
                   
                   
               
            
           
           
               
               
            
               
                 0 
                 Mode Data Length 
               
               
                 1 
                 Medium Type(0) 
               
            
           
           
               
               
               
               
               
            
               
                 2 
                 Reserved 
                 Dpo- 
                 Reserved 
                 EBC(0) 
               
               
                   
                   
                 Fua(0) 
               
            
           
           
               
               
            
               
                 3 
                 Block Descriptor Length (0 or 8) 
               
               
                   
               
            
           
         
       
     
     The Mode Block Descriptor data differs from the tape drive mode only in that the Density Code byte is set to 0x01 and the Block Length is set to 2048 and unchangeable. 
     There is also a new Mode page to toggle the DR Mode operation, as follows: 
     
       
         
           
               
               
               
               
               
               
               
               
               
             
               
                   
                   
               
             
            
               
                   
                 7 
                 6 
                 5 
                 4 
                 3 
                 2 
                 1 
                 0 
               
               
                   
                   
               
            
           
           
               
               
            
               
                 0 
                 Page Code (0 × 3E) 
               
               
                 1 
                 Page Length (0 × 1) 
               
            
           
           
               
               
               
               
            
               
                 2 
                   
                 DRauto(0) 
                 DRmode 
               
            
           
           
               
               
            
               
                 3 
                 Reserved 
               
               
                   
               
            
           
         
       
     
     The ‘DRmode’ bit controls which mode of operation the tape drive  140  is operating in. When DRmode is set to zero, the tape drive  140  is switched back from DR Mode to Normal Mode. When DR Mode is set to one, the tape drive  140  attempts to initialise DR Mode as if the user had initiated the front-panel ‘Eject’ button DR sequence and returns “GOOD” status on success. 
     The DRauto bit controls whether the tape drive is automatically switched from DR Mode back to Normal Mode when receiving a SCSI Bus reset after at least 100 CD-ROM blocks have been read. When DRauto is set to zero (default), the automatic switch over is enabled, and when DRauto is set to 1 the automatic switch over is disabled. 
     Ready( 10 )/Read( 6 ) 
     The CD-ROM Read( 6 ) and Read( 10 ) commands cause the tape drive  140  to read a fixed number of blocks from a Logical Block Address value representing the logical read start location rather than the current physical location on the tape. The Read( 6 ) and Read( 10 ) CDBs are as follows: 
     
       
         
           
               
               
               
               
               
               
               
               
               
             
               
                   
                   
               
             
            
               
                   
                 7 
                 6 
                 5 
                 4 
                 3 
                 2 
                 1 
                 0 
               
               
                   
                   
               
            
           
           
               
               
            
               
                 0 
                 Operation Code 0 × 08 
               
            
           
           
               
               
               
            
               
                 1 
                 LUN(0) 
                 (MSB) 
               
            
           
           
               
               
            
               
                 2 
                 Logical Block Address 
               
            
           
           
               
               
               
            
               
                 3 
                   
                 (LSB) 
               
            
           
           
               
               
            
               
                 4 
                 Transfer Length 
               
            
           
           
               
               
               
               
            
               
                 5 
                 Reserved 
                 Flag 
                 Link 
               
               
                   
               
            
           
           
               
               
               
               
               
               
               
               
               
            
               
                   
                 7 
                 6 
                 5 
                 4 
                 3 
                 2 
                 1 
                 0 
               
               
                   
                   
               
            
           
           
               
               
            
               
                 0 
                 Operation Code 0 × 28 
               
            
           
           
               
               
               
               
               
               
            
               
                 1 
                 Reserved 
                 DPO(0) 
                 FUA(0) 
                 Reserved 
                 RelAdr (0) 
               
            
           
           
               
               
            
               
                 2-5 
                 Logicat Block Address 
               
               
                 3 
                 Reserved 
               
               
                 7-8 
                 Transfer Length 
               
            
           
           
               
               
               
               
            
               
                 9 
                 Reserved 
                 Flag 
                 Link 
               
               
                   
               
            
           
         
       
     
     The Disable Page Out (DPO) and Force Unit Access (FUA) options are not supported, since tape drive caching is mandatory (as described above) in this embodiment. The Logical Block Address value indicates the starting location of a read, relative to block zero at the beginning of the block device (i.e. the emulated CD-ROM media). The Transfer Length indicates the number of blocks to be read from the tape drive  140  and transferred back to the tape drive  140 . 
     If the requested data is not already stored in the cache, then the data can be read from the tape media by using the LOCATE and READ functions from the Normal Mode of operation. The LOCATE command is used to locate the tape media to the required starting read block location, and then the READ command is used in fixed block mode to read the requested number of blocks from the tape. The details of the CD-ROM image start location and fixed block format are described above. 
     The LOCATE command parameters are: 
     BT=1, CP=0 
     Block Address=20+Logical Block Address 
     The READ command parameters are: 
     Fixed=1 
     Transfer length=Transfer Length 
     Seek 
     In DR Mode, this command moves the logical position of the tape drive  140  to another block location (obviously this command is only normally valid in random access devices such as hard disk drives and CD-ROM drives) and replaces the standard tape drive ‘LOCATE’ CDB. The new CDB is: 
     
       
         
           
               
               
               
               
               
               
               
               
               
             
               
                   
                   
               
             
            
               
                   
                 7 
                 6 
                 5 
                 4 
                 3 
                 2 
                 1 
                 0 
               
               
                   
                   
               
            
           
           
               
               
            
               
                 0 
                 Operation Code 0 × 2B 
               
               
                 1 
                 Reserved 
               
            
           
           
               
               
               
            
               
                 2 
                 (MSB) 
                   
               
            
           
           
               
               
            
               
                 3 
                 LOGICAL BLOCK ADDRESS 
               
               
                 4 
               
            
           
           
               
               
               
            
               
                 5 
                   
                 (LSB) 
               
            
           
           
               
               
            
               
                 6-8 
                 Reserved 
               
            
           
           
               
               
               
               
            
               
                 9 
                 Reserved 
                 Flag 
                 Link 
               
               
                   
               
            
           
         
       
     
     This allows the PC  100  to provide advance notification that particular data may be requested in a subsequent command. However, in DR Mode, the tape takes no action for this command, and ‘GOOD STATUS’ is always returned. 
     Read Capacity 
     This is a new CDB for CD-ROM drive emulation, which obtains the number of logical blocks contained in the media and the size of each block. The new CDB is: 
     
       
         
           
               
               
               
               
               
               
               
               
               
             
               
                   
                   
               
             
            
               
                   
                 7 
                 6 
                 5 
                 4 
                 3 
                 2 
                 1 
                 0 
               
               
                   
                   
               
            
           
           
               
               
            
               
                 0 
                 Operation Code 0 × 25 
               
            
           
           
               
               
               
               
            
               
                 1 
                 LUN(0) 
                 Reserved 
                 RelAdr(0) 
               
            
           
           
               
               
            
               
                 2-5 
                 Logical Block Address (0) 
               
               
                 6-7 
                 Reserved 
               
            
           
           
               
               
               
            
               
                 8 
                 Reserved 
                 PMI(0) 
               
            
           
           
               
               
               
               
            
               
                 9 
                 Reserved 
                 Flag 
                 Link 
               
               
                   
               
            
           
         
       
     
     The RelAdr, Logical Block Address and PMI fields only support zero values. Any non-zero values are ignored. 
     The following ‘READ CAPACITY’ data is returned, representing the maximum number of 2048 byte blocks: 
     
       
         
           
               
               
               
               
               
               
               
               
               
             
               
                   
                   
               
             
            
               
                   
                 7 
                 6 
                 5 
                 4 
                 3 
                 2 
                 1 
                 0 
               
               
                   
                   
               
            
           
           
               
               
               
               
            
               
                 0 
                 (MSB) 
                 Returned Logical Block Address (0 × 0004B000) 
                   
               
               
                 3 
                   
                   
                 (LSB) 
               
               
                 4 
                 (MSB) 
                 Block Length in bytes (0 × 0000800) 
               
               
                 7 
                   
                   
                 (LSB) 
               
               
                   
               
            
           
         
       
     
     Read Toc 
     This is a new CDB for CD-ROM drive emulation, which provides a means to obtain from a table of contents (TOC) the number of tracks and their locations. The new CDB is: 
     
       
         
           
               
               
               
               
               
               
               
               
               
             
               
                   
                   
               
             
            
               
                   
                 7 
                 6 
                 5 
                 4 
                 3 
                 2 
                 1 
                 0 
               
               
                   
                   
               
            
           
           
               
               
            
               
                 0 
                 Operation Code 0 × 43 
               
            
           
           
               
               
               
               
               
            
               
                 1 
                 LUN(0) 
                 Reserved 
                 MSF(0) 
                 Reserv&#39;d 
               
            
           
           
               
               
               
            
               
                 2 
                 Reserved 
                 Format (0) 
               
            
           
           
               
               
            
               
                 3 
                 Reserved 
               
               
                 4 
                 Reserved 
               
               
                 5 
                 Reserved 
               
               
                 6 
                 Track/Session Number (Hex) 
               
            
           
           
               
               
               
            
               
                 7 
                 (MSB) 
                 Allocation Length 
               
            
           
           
               
               
               
            
               
                 8 
                   
                 (LSB) 
               
            
           
           
               
               
               
               
            
               
                 9 
                 Reserved 
                 Flag 
                 Link 
               
               
                   
               
            
           
         
       
     
     The Format field only supports a value of 0, and any non-zero value used will return ‘CHECK CONDITION’ with sense key set to “Illegal Request” and extended sense set to “Illegal Parameter in CDB”. The MSF bit supports values of 0 or 1, but the same TOC response data block is returned (see below) for both values. 
     The Track/Session Number field specifies the starting track number for which the data is returned. Since there is only one track possible on data CD-ROM media, any value other than 0 or 1 will return ‘CHECK CONDITION’ with sense key set to ‘Illegal Request’ and extended sense set to “Illegal Parameter in CDB”. 
     The command returns a TOC response data block, as shown below. This contains four header bytes and then descriptor blocks for track 0x1 (data track) and track 0xAA (lead-out area). The values in the response data block are fixed: 
     
       
         
           
               
               
               
               
               
               
               
               
               
             
               
                   
                   
               
             
            
               
                   
                 7 
                 6 
                 5 
                 4 
                 3 
                 2 
                 1 
                 0 
               
               
                   
                   
               
            
           
           
               
               
               
            
               
                 0 
                 (MSB) 
                 TOC Data Length (0 × 0012) 
               
            
           
           
               
               
               
            
               
                 1 
                   
                 (LSB) 
               
            
           
           
               
               
            
               
                 2 
                 First Track Number (0 × 01) 
               
               
                 3 
                 Last Track Number (0 × 01) 
               
               
                 4 
                 Reserved 
               
            
           
           
               
               
               
            
               
                 5 
                 ADR (0 × 1) 
                 Control (0 × 4) 
               
            
           
           
               
               
            
               
                 6 
                 Track Number (0 × 1) 
               
               
                 7 
                 Reserved 
               
               
                 8-11 
                 Logical Block Address (0 × 0000) 
               
               
                 12 
                 Reserved 
               
            
           
           
               
               
               
            
               
                 13 
                 ADR (0 × 1) 
                 Control (0 × 4) 
               
            
           
           
               
               
            
               
                 14 
                 Track Number (0 × AA) 
               
               
                 15 
                 Reserved 
               
               
                 16-19 
                 Logical Block Address (0 × 0004B000) 
               
               
                   
               
            
           
         
       
     
     It will be appreciated that the present invention is described with particular reference to a PC, for example an MS-DOS based computer system or a Windows NT or Windows 95/98 computer system; historically sometimes known as an IBM-AT compatible machine. However, the concepts are equally applicable to any computer system which may not support booting from tape drive apparatus under normal circumstances, but is capable of interacting with tape drive apparatus for the purposes of enacting backup operations. In addition, it will be appreciated that the concept of booting from tape media is more broadly applicable than just for the purposes of DR. For example, any other appropriate application software may be stored on bootable tape media instead of, or as well as, a DR application. The following claims should therefore be interpreted accordingly, to encompass non-PC systems as well as PC systems, and non-DR applications as well as DR applications.