Abstract:
A method of restoring a computer system to a state it was in when it left the factory starts with receiving a request for a new disk drive for the system. An extended parts list for the computer system is retrieved from a database or other data repository and written on the new disk drive. Software to restore the system, including operating system software and application software is also provided on the new disk drive. When the new disk drive is installed, the restoration software uses the extended parts list to select operating system software and application software to restore the computer and reboot the computer with the restored software.

Description:
RELATED APPLICATIONS 
     U.S. Pat. No. 5,966,732 and U.S. patent application Ser. No. 09/866,332 each involve aspects of reserve areas and methods of interacting with reserve areas. This application hereby incorporates by reference in their entirety U.S. patent application Ser. No. 09/866,332, filed on May 25, 2001, and U.S. Pat. No. 5,966,732 which issued Oct. 12, 1999. The &#39;332 patent application and the &#39;732 patent are each assigned to the assignee of the present application. 
     FIELD OF THE INVENTION 
     The present invention relates to replacing disk drives in a computer system, and in particular to a replacement disk drive that provides restoration of the computer system. 
     BACKGROUND OF THE INVENTION 
     Many personal computers are shipped with a hard disk drive that contains a host protected area, part of which serves as a substitute for a system restore CD in a free lot manufacturing process. The hard drive thus contains information and programming to restore the personal computer to the same state in which it was shipped to a customer from a manufacturer. When the system is initially shipped, the manufacturing automated software has knowledge of the system content, and thus provides the correct operating system software and hardware drivers in the host protected area. 
     When a hard disk drive fails after being in the field, however, the replacement of a such a hard drive becomes very difficult. The restore CD may be lost or misplaced by the customer. Technical support staff may generate notes in a text field based on discussions with the customer, and an educated guess may be made based on such text as to what operating system software is required for the replacement drive. This process results in many further calls from customers regarding how to complete the process of restoring a personal computer. It adds both to cost, and customer frustration. 
     SUMMARY OF THE INVENTION 
     A method of restoring a computer system to a state it was in when it left the factory starts with receiving a request for a new disk drive for the system. An extended parts list for the computer system is retrieved from a database or other data repository and written on the new disk drive. Software to restore the system, including operating system software and application software is also provided on the new disk drive. When the new disk drive is installed, the restoration software uses the extended parts list to select operating system software and application software to restore the computer. 
     In one embodiment, once the disk drive is installed, the system is turned on, and a boot is detected. The restore process is begun, causing rebuilding of the operating system and then a reboot into the rebuilt operating system. 
     In a further embodiment, the extended parts list and other software used in the restoration process is stored on a host protected area. The computer system boots to the host protected area, runs the restore process to select drivers and rebuild the operating system and applications, and then causes a reboot into the operating system in the user area of the disk. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a flowchart showing a process for creating a replacement hard drive using an extended parts list. 
         FIG. 2  is a flowchart showing a process for restoring a computer system using a replacement hard drive. 
         FIG. 3  is a block diagram of an example computer for implementing certain aspects of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     In the following description, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that structural, logical and electrical changes may be made without departing from the scope of the present invention. The following description is, therefore, not to be taken in a limited sense, and the scope of the present invention is defined by the appended claims. 
     The functions or algorithms described herein are implemented in software or a combination of software and human implemented procedures in one embodiment. The software comprises computer executable instructions stored on computer readable media such as memory or other type of storage devices. The term “computer readable media” is also used to represent carrier waves on which the software is transmitted. Further, such functions correspond to modules, which are software, hardware, firmware of any combination thereof. Multiple functions are performed in one or more modules as desired, and the embodiments described are merely examples. The software is executed on a digital signal processor, ASIC, microprocessor, or other type of processor operating on a computer system, such as a personal computer, server or other computer system. 
       FIG. 1  is a flowchart showing creation of a replacement hard disk drive for a system that had already shipped to a customer. The replacement hard disk drive may be needed due to failure of the original disk drive, or for numerous other causes. A customer calls or emails an order for a replacement hard drive at  110 . The order may also come from tech support, after exploring possible causes of malfunction of the computer system. An order for a replacement hard disk drive is created at  115 , and sent to a replacement fulfillment processor at  118 . Replacement fulfillment processor  118  may be a stand alone computer system, or simply representative of a process running on a computer. 
     The replacement fulfillment processor  118  is also coupled to a system recover compact disk creation process  120 , that produces a system recover CD image at  125 . The replacement fulfillment processor  118  also interacts with an order record archive  130  which stores copies of an extended parts list (XPL) file for each computer manufactured. The replacement fulfillment processor  118  is coupled via a network  135 , such as an Ethernet network or any other type of communication means to a replacement hard drive creation system  140 , which again may be a stand alone computer or process running on a multipurpose computer system. The replacement hard drive creation system  140  creates a system restoration hard drive  145 . Hard drive  145  is selected from a hard drive inventory  150 , that is further coupled to the replacement fulfillment processor  118  to ensure that an appropriate disk drive is available to fulfill the order. 
     Replacement hard drive creation system  140  uses the XPL file to select software, including operating system software to store on the replacement hard drive  145 . It also includes the system recover CD image  125  and the XPL file for use during the restoration process. 
     The restoration information on the hard drive is represented by a simplified hard drive map  160 . The map has a host protected area  165 , and a user free space area  170 . The host protected area  165  is an area that is not generally accessible by the user to provide a secure location for the restoration information in one embodiment. Multiple system restore CD images may be provided in host protected area  165 . In a further embodiment, the system restore CD images may reside in the user free space  170 . User free space  170  further contains a user boot portion to boot the computer system once the restoration is complete. 
     Use of the restoration hard drive is shown in flow chart form in  FIG. 2 . At  210 , the restoration drive, also referred to as a replacement parts list (RPL) drive is received by the customer. The replacement part list is the same as the extended parts list, except that the extended parts list is also used during manufacturing to assemble the computer system from parts. 
     At  215 , the disk drive is manually assembled or installed into the computer system by the customer, or a service technician. Upon completion of assembly, the computer system is powered up at  220 . A boot program is detected at  225 . If a host protected area is present as indicated at  230 , a boot to the host protected area is performed as indicated at  235 . Also at  235 , a restore script is run automatically. The restore script may be the same as that used in a restoration CD. However, since the customer may have lost the restoration CD that shipped with the system, equivalent restoration information is provided in the restoration disk drive. The extended parts list is used at  240  to select operating system drivers consistent with hardware and software on the computer system. The operating system is then rebuilt at  245 , and a maximum HD lock is set at  250  to cause booting from the user portion of the operating system at  255 . The restoration process is then complete as indicated at  160 . 
     If a host protected area is not detected as present at  230 , an autoboot to operating system restore rebuild script on the restoration disk is performed. The operating system is then rebuilt at  270 , followed by reboot into the operating system at  255  and completion at  260 . The computer system is now in the same state as initial shipment, having the same operating system and software. 
       FIG. 3  is a block diagram of a computer system  300  that shows components found in a common computer system such as a personal computer for use in implementing selected portions of the flowcharts shown in  FIGS. 1 and 2 . Computer system  300  comprises a processor  302 , a system controller  312 , a cache  314 , and a data-path chip  318 , each coupled to a host bus  310 . Processor  302  is a microprocessor such as a 486-type chip, a Pentium®, Pentium® II, Pentium® III, Pentium® 4, or other suitable microprocessor. Cache  314  provides high-speed local-memory data (in one embodiment, for example, 512 kB of data) for processor  302 , and is controlled by system controller  312 , which loads cache  314  with data that is expected to be used soon after the data is placed in cache  314  (i.e., in the near future). Main memory  316  is coupled between system controller  312  and data-path chip  318 , and in one embodiment, provides random-access memory of between 16 MB and 256 MB or more of data. In one embodiment, main memory  316  is provided on SIMMs (Single In-line Memory Modules), while in another embodiment, main memory  316  is provided on DIMMs (Dual In-line Memory Modules), each of which plugs into suitable sockets provided on a motherboard holding many of the other components shown in  FIG. 3 . Main memory  316  includes standard DRAM (Dynamic Random-Access Memory), EDO (Extended Data Out) DRAM, SDRAM (Synchronous DRAM), or other suitable memory technology. System controller  312  controls PCI (Peripheral Component Interconnect) bus  320 , a local bus for system  300  that provides a high-speed data path between processor  302  and various peripheral devices, such as graphics devices, storage drives, network cabling, etc. Data-path chip  318  is also controlled by system controller  312  to assist in routing data between main memory  316 , host bus  310 , and PCI bus  320 . 
     In one embodiment, PCI bus  320  provides a 32-bit-wide data path that runs at 33 MHz. In another embodiment, PCI bus  320  provides a 64-bit-wide data path that runs at 33 MHz. In yet other embodiments, PCI bus  320  provides 32-bit-wide or 64-bit-wide data paths that run at higher speeds. In one embodiment, PCI bus  320  provides connectivity to I/O bridge  322 , graphics controller  327 , and one or more PCI connectors  321  (i.e., sockets into which a card edge may be inserted), each of which accepts a standard PCI card. In one embodiment, I/O bridge  322  and graphics controller  327  are each integrated on the motherboard along with system controller  312 , in order to avoid a board-connector-board signal-crossing interface and thus provide better speed and reliability. In the embodiment shown, graphics controller  327  is coupled to a video memory  328  (that includes memory such as DRAM, EDO DRAM, SDRAM, or VRAM (Video Random-Access Memory)), and drives VGA (Video Graphics Adaptor) port  329 . VGA port  329  can connect to industry-standard monitors such as VGA-type, SVGA (Super VGA)-type, XGA-type (extended Graphics Adaptor) or SXGA-type (Super XGA) display devices. 
     Other input/output (I/O) cards having a PCI interface can be plugged into PCI connectors  321 . Network connections providing video input are also represented by PCI connectors  321 , and include Ethernet devices and cable modems for coupling to a high speed Ethernet network or cable network which is further coupled to the Internet. 
     In one embodiment, I/O bridge  322  is a chip that provides connection and control to one or more independent IDE or SCSI connectors  324 – 325 , to a USB (Universal Serial Bus) port  326 , and to ISA (Industry Standard Architecture) bus  330 . In this embodiment, IDE connector  324  provides connectivity for up to two standard IDE-type devices such as hard disk drives, CDROM (Compact Disk-Read-Only Memory) drives, DVD (Digital Video Disk) drives, videocassette recorders, or TBU (Tape-Backup Unit) devices. In one similar embodiment, two IDE connectors  324  are provided, and each provide the EIDE (Enhanced IDE) architecture. In the embodiment shown, SCSI (Small Computer System Interface) connector  325  provides connectivity for up to seven or fifteen SCSI-type devices (depending on the version of SCSI supported by the embodiment). In one embodiment, I/O bridge  322  provides ISA bus  330  having one or more ISA connectors  331  (in one embodiment, three connectors are provided). In one embodiment, ISA bus  330  is coupled to I/O controller  352 , which in turn provides connections to two serial ports  354  and  355 , parallel port  356 , and FDD (Floppy-Disk Drive) connector  357 . At least one serial port is coupled to a modem for connection to a telephone system providing Internet access through an Internet service provider. In one embodiment, ISA bus  330  is connected to buffer  332 , which is connected to X bus  340 , which provides connections to real-time clock  342 , keyboard/mouse controller  344  and keyboard BIOS ROM (Basic Input/Output System Read-Only Memory)  345 , and to system BIOS ROM  346 .