In order to describe the manner in which the above-recited and other advantages and features can be obtained, a more particular description is described below and will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments and are not therefore to be considered to be limiting of its scope, implementations will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
Embodiments are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the subject matter of this disclosure.
Target processing device 102 may be, for example, a PC or other processing device, to be prepared for end customer operation. Installation Server 104 may include a processing device having access to one or more storage media having recorded thereon at least one software tool to be executed by target processing device 102. File server 106 may include a processing device having access to one or more files or databases stored on one or more storage media. Imaging repository 108 may include a processing device with access to one or more storage media having stored thereon at least one operating system image. Third party imaging device 110 may include a processing device and may include one or more third-party tools, such as, for example, software tools for preparing an operating system image for target processing device 102. In one embodiment, third party imaging device 110 may not be required. Driver repository 112 may include a processing device having access to one or more storage media having recorded thereon drivers for multiple disparate hardware devices. In one embodiment, driver repository 112 may be a shared driver repository, which may be shared among multiple processing devices via network 114. Network 114 may be a wired or wireless network and may include a number of devices connected via wired or wireless means. Network 114 may include only one network or a number of different networks, some of which may be networks of different types. Network 114 may include, for example, a Local Area Network (LAN), a Wide Area Network (WAN), a packet switching network, an ATM network, an Ethernet network, a fiber-optic network, a Public Switched Telephone Network (PSTN), the Internet, or other types of network.
In operating environment 100, target processing device 102 may be booted from a storage medium having instructions for at least one processor of target processing device 102 to cause target processing device 102 to request one or more software tools from installation server 104 via network 114. Target processing device 102 may then execute the one or more software tools, which may cause target processing device 102 to query hardware devices included in target processing device 102 to generate a hardware inventory, store the generated hardware inventory to file server 106 via network 114, prepare a storage medium of target processing device 102 for operating system installation, record storage medium preparation information to file server 106 via network 114, request an operating system image from imaging repository 108 or third-party imaging device 110 via network 114, install the operating system image to a bootable storage media of target processing device 102, determine a hardware configuration of target processing device 102 and load and install a compatible Hardware Abstraction Layer (HAL) from driver repository 112, load and install a number of hardware drivers from driver repository 112 via network 114 based on the generated hardware inventory, and test the processing device to determine whether target processing device 102 is operational.
In another embodiment, the operating environment may include a target processing device 102 without access to a network. Instead, target processing device 102 may be a standalone device with one or more storage media, such as, for example, a hard disk, a floppy disk, a CD, a DVD, a flash RAM or other storage media. One or more of the storage media may include software tools, such as those accessed by installation server 104, may be writable for writing information, such as, for example, a hardware inventory or storage medium preparation information, may include one or more operating system images for installing to a target processing device, may include a number of hardware drivers and HALs, and may include processor instructions for testing target PC 102. Target PC 102 may function similar to the embodiment described above, in operating environment 100, but instead of accessing or writing information to a device via a network, target processing device 102, instead, may access data from or write data to the one or more storage media. Further, if the above-described information is to be read from or written to multiple storage media, such that the number of storage media exceeds a number of drives, ports or other mounting means for the storage media of target processing device 102, target processing device 102 may be configured to display a message requesting that a particular storage media be made available to target processing device 102 when needed.
Processor 220 may include at least one conventional processor or microprocessor that interprets and executes instructions. Memory 230 may be a random access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by processor 220. Memory 230 may also store temporary variables or other intermediate information used during execution of instructions by processor 220. ROM 240 may include a conventional ROM device or another type of static storage device that stores static information and instructions for processor 220. Storage device 250 may include any type of media, such as, for example, flash memory, Non-Volatile Random Access Memory (NVRAM), magnetic or optical recording media and its corresponding drive or port.
Input device 260 may include one or more conventional mechanisms that permit a user to input information to processing device 128, such as a keyboard, a mouse, a pen, a stylus, a voice recognition device, a microphone, a headset, etc. Output device 270 may include one or more conventional mechanisms that output information to the user, including a display, a printer, one or more speakers, a headset, etc. Communication interface 280 may include any transceiver-like mechanism that enables processing device 100 to communicate with other devices or networks. In one embodiment, communication interface 280 may include an interface to network 114. The interface may be a wireless, wired or optical interface. In another embodiment, the interface may include a universal serial bus (USB) interface.
Processing device 200 may perform such functions in response to processor 220 executing sequences of instructions contained in a computer-readable medium, such as, for example, memory 230, a magnetic disk, an optical disk, or other medium. Such instructions may be read into memory 230 from another computer-readable medium, such as storage device 250, or from a separate device via communication interface 280.
A motherboard is a main circuit board of a processing device, such as a PC. Processing device 200 may include a motherboard 285, as shown in
Next, executing at least a first one of the device preparation tools, target processing device 102 may query hardware components of target processing device 102 and may generate a hardware inventory of the hardware components (act 304). Target processing device 102 may then record the hardware inventory (act 306). In one embodiment, target processing device 102 may record the hardware inventory to file server 106 via network 114. In another embodiment, target processing device 102 may save the hardware inventory to a storage medium, which may be connected to or may be part of target processing device 102.
Target processing device 102 may then refer to the generated hardware inventory to determine whether the hardware components of target processing device 102 are at or above a cutoff line (act 308). The cutoff line is a minimum hardware configuration, which may be configurable. The cutoff line may be configured in, for example, a file stored on a medium, which may include minimum configuration items, such as, for example, a minimum amount of memory, a minimum processor configuration, a minimum processor speed, as well as other or different configuration items. A hardware configuration below the cutoff line may be a configuration in which one or more hardware components makes the configuration obsolete and therefore, an undesirable hardware configuration. If target processing device 102 determines that the hardware configuration is below the cutoff line, then target processing device 102 may present an abort message (act 310). The abort message may be presented by displaying the message on a display screen of target processing device 302. In other embodiments, target processing device 102 may present the abort message via other means, such as, for example, printing the abort message via a printer, or alerting a user by use of a particular sound, such as, for example, a buzzer, a bell, or other sound, and storing the abort message on a medium, or other methods. In another embodiment a recommended action to update the hardware may be presented to the operator, after a hardware change (act 311), the process may be re-started.
If target processing device 102 determines that the hardware configuration is at or above the cutoff line, then target processing device 102 may execute at least a second one of the preparation tools to prepare one or more storage media of target processing device 102 (act 312). Preparing of the one or more storage media may include an erasing operation, such as a wipe, a formatting operation, and partitioning of the one or more storage media. When the preparation of the one or more storage media is completed, target processing device 102 may record storage medium preparation information to a file server 106 via network 114 or to a storage medium, which may be attached to or may be part of target processing device 102 (act 314). The storage medium preparation information may include, for example, a type of preparation performed (formatting, wiping, partitioning, etc.), whether the preparation completed successfully or not, a percentage of the process that completed, a start time, an end time, a duration of the storage medium preparation process, a speed of the preparation process, such as, for example, bytes per second, and/or other information.
Next, executing at least one of the preparation tools, target processing device 102 may request and receive an operating system image from imaging repository 108 or third-party imaging device 110 via network 114 and may install the operating system image to a bootable medium of target processing device 102 (act 316;
Target processing device 102 may then query a chipset of motherboard 285 to determine which one of a number of Hardware Abstraction Layers (HALs) is compatible with target processing device 102 (act 318). A HAL is a component of an operating system that contains hardware-specific code for handling low-level hardware operations such as interrupt controllers, input/output (I/O) interfaces and multiprocessor communication mechanisms. The HAL abstracts, or hides, hardware-dependent details from other parts of the operating system. After determining which one of the HALs is compatible with the chipset of motherboard 285, target processing device 102 may copy and install the determined one of the HALs to the one or more bootable media of target processing device 102 (act 320). Target processing device 102 may copy the determined one of the HAL from a repository, such as, for example, driver repository 112 via network 114, or from one or more media that may be connected to target processing device 102 or may be part of target processing device 102.
Using at least one of the preparation tools, target processing device 102 may then perform testing (act 322). The testing may include a number of checks, such as, for example, determining whether the preparation of the storage medium, which occurred during act 312, completed successfully, determining whether the operating system installation, which occurred during act 316, completed successfully, determining whether the installation of the determined HAL, which occurred during act 320, completed successfully, determining whether all copied files or images were copied by target processing device 102 without errors, and/or other checks. Target processing device 102 may then determine whether the testing indicates any errors or failures (act 324). If so, then target processing device may generate and present a failure report (act 326). The failure report may be presented by displaying the failure report on a display screen of target processing device 302. In other embodiments, target processing device 102 may present the failure report via other means, such as, for example, printing the failure report via a printer, alerting a user by use of a particular sound, such as, for example, a buzzer, a bell, or other sound, and storing the failure report on a medium, or other methods. The failure report may indicate which one of the checks failed and may provide detailed information with respect to any of the checks.
If target processing device 102 determines that all tests or checks passed (act 324), then target processing device 102 may be rebooted automatically or manually, such that target processing device 102 may operate using the newly installed operating system (act 328). Operating with the newly installed operating system, target processing device 102 may then install drivers, based on the generated hardware inventory, software patches and software updates from a repository, such as, for example, driver repository 112 via network 114, or from one or more media that may be connected to or may be part of target processing device 102 (act 330).
Target processing device 102 may then perform testing with the newly installed and executing operating system and the newly installed drivers, security patches and updates (act 332). Such testing may determine whether various hardware components function properly with the operating system, drivers, patches and updates. Upon completion of the testing, target processing device 102 may present results of the testing indicating which ones of the tests passed or failed and testing details. The results may be presented on a display screen of target processing device 102, may be printed, may be stored to a particular log file, to a local medium, or to a server, such as, for example, file server 106 via network 114, or may be presented via other means.
The above method of
Next, target processing device may be manually or automatically rebooted, such that after rebooting, target processing device 102 may be operating with the newly installed operating system and drivers (act 354). Target processing device 102 may then perform testing by executing a number of checks (act 356), such as, for example, determining whether the preparation of the one or more storage medium, which occurred during act 312, completed successfully, determining whether the operating system installation, which occurred during act 316, completed successfully, determining whether the installation of the determined HAL, which occurred during act 320, completed successfully, determining whether all copied files or images were copied by target processing device 102 without errors, and determining whether various hardware components function properly with the operating system and drivers. Upon completion of the testing, target processing device 102 may present results of the testing indicating which ones of the tests passed or failed and testing details (act 358). The results may be presented on a display screen of target processing device 102, may be printed, may be stored to a particular log file, or may be presented via other means.
Next, target processing device 102 may request and receive a selection of wipe options for each of the selected media devices (act 504). That is, each of the selected media may be configured to have different wipe options. The wipe options may include an erase method, such as, for example, a method conforming to a standard, such as, for example, a government standard (U.S. government standard DOD5220.22-M or other government standard), an industrial standard, or other standard, or other erase methods, a number of erase passes, an erase character to be written to the one or more selected media, a selected portion or portion(s) of the one or more media on which the wipe operation is to be performed, whether a verification operation is to be performed on the wiped area of the one or more media to verify whether complete erasure has occurred, whether a status of the wiping operation is to be logged, and if so, a filename for a log file, and/or other options.
Target processing device 102 may then obtain any storage management device drivers needed for the wipe operation of the selected media devices (act 506). Target processing device 102 may obtain the storage management device drivers from driver repository 112 via network 114 or from one or media that may be connected to or may be part of target processing device 102. The storage management drivers may include drivers that provide full access to SCSI RAID controllers, as well as drivers that support SATA, SATA II and/or other SCSI controllers.
Next, target processing device may perform the wipe operation (act 508). Target processing device 102 may perform the wipe operation by using a low-level application interface, such as, for example, DeviceLoControl operations as well as kernel namespaces to access physical storage media objects, which may be supported by a storage manager. If multiple media are to be wiped, target processing device 102 may simultaneously wipe the multiple media. While performing the wipe operation on the selected one or more media, target processing device 102 may periodically report progress of the wipe operation (act 510). For example, target processing device 102 may periodically display progress of a wipe operation for one or more selected media. Target processing device 102 may display a selected wipe method, such as one conforming to the DOD5220.22-M standard or other standard, or another method, a number of erase passes to be performed on the one or more media, a current erase pass being performed, a current duration of the erase pass or of the entire erase process, a number of bytes erased, total storage medium capacity of the one or more media being wiped, a percentage of completion of the wipe process for each of the one or more media, or other progress information.
After completing the wipe process, target processing device 102 may log a report of the wipe results to a file (act 512). The file may be on a medium that may be included as part of target processing device 102 or may be connected to target processing device 102, or the file may reside on a file server, such as file server 106, which may be connected to target processing device 102 via network 114.
Display screen 600 may include a box 604 or other indicator, which the user may select or check to indicate that all information on the selected medium is to be erased during the wipe operation. If the user does not indicate that all data on the selected medium is to be erased, then the display screen may have an area in which the user may indicate a filename of a file to be wiped, may indicate a folder name of a folder to be wiped, or may indicate a sector or region of the media that is to be wiped.
Display screen 600 may include a number of erasure methods 606 from which the user may select. The methods may include a method conforming to U.S. government standard DOD5220.22-M or other standard, or other methods, such as, for example, a Quick Erase method. Display screen 600 may also include a number of erase options, which the user may configure for each medium to be wiped, such as, for example, number of passes 608, an erase character 610, a verify option 612 to indicate that the wipe process should verify that the wiped areas of the medium have been completely erased, or other options.
If the user selects an erasure method conforming to the DOD5220.22-M standard, target processing device 102 may permit the user to enter a value for number of passes 608, which is 3 or more. If the user selects an erasure method, such as, for example, the Quick Erase method, target processing device 102 may permit the user to enter a value for number of passes 608, which is 1 or more.
Display screen 700 may include a box 704 or other indicator, which the user may select or check to indicate that a status of the wipe operation for a selected one of the one or more media is to be logged to a medium, such as, for example, a file on a disk or other medium. If the user indicates that the status of the wipe operation is to be logged, then the user may enter a filename in a filename indicator portion 706 of display screen 700. Display screen 700 may also include a box 708 or other indicator, which the user may select or check to indicate that log data is to be appended to an indicated file.
Medium information 902 may include information describing a particular medium, as well as a capacity of the medium, and an amount of data erased in bytes or another unit. Wipe type 904 may indicate a method used to perform the wiping operation. Passes 906 may indicate a current pass and a number of passes configured to be performed, such as, for example, pass 1 of 3 passes (1/3). Verification 908 may indicate whether a verification portion of the wipe process passed or failed. Start time 910 may indicate a start time for the wipe process of the medium described by medium information 902. End time 904 may indicate an end time for the wipe process of the medium described by medium information 902. Duration 914 may indicate an amount of time the wiping process executed for the medium described by medium information 902. Speed 916 may indicate a speed, such as, for example, a/ speed for writing an erase character to the medium described by media information 902. The speed may be indicated by a number of bytes per second or any other useful measure. Percent complete 918 may indicate an amount of the wipe process that completed for the medium described by media information 902. Display 900 shows a 90% value for percent complete 918, which may indicate a failed or aborted wipe process.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms for implementing the claims.
Although the above description may contain specific details, they should not be construed as limiting the claims in any way. Other configurations of the described embodiments are part of the scope of this disclosure. Further, implementations consistent with the subject matter of this disclosure may have more or fewer acts than as described, or may implement acts in a different order than as shown. Accordingly, the appended claims and their legal equivalents should only define the invention, rather than any specific examples given.