[go: up one dir, main page]

WO2013032458A1 - Booting a target computing device from a bootable computing device - Google Patents

Booting a target computing device from a bootable computing device Download PDF

Info

Publication number
WO2013032458A1
WO2013032458A1 PCT/US2011/049897 US2011049897W WO2013032458A1 WO 2013032458 A1 WO2013032458 A1 WO 2013032458A1 US 2011049897 W US2011049897 W US 2011049897W WO 2013032458 A1 WO2013032458 A1 WO 2013032458A1
Authority
WO
WIPO (PCT)
Prior art keywords
computing device
bootable
instructions
target computing
target
Prior art date
Application number
PCT/US2011/049897
Other languages
French (fr)
Inventor
Stephen M. BRETHAUER
Miles K. THORLAND
Stephen M. DE ROOS
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2011/049897 priority Critical patent/WO2013032458A1/en
Publication of WO2013032458A1 publication Critical patent/WO2013032458A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup

Definitions

  • Computing devices such as desktop computers, notebook computers, tabiet computers, mobile phones, and smart devices may at times malfunction for a variety of reasons.
  • a computing device may malfunction as a result of a hardware failure; incorrect, outdated, or corrupt software; incorrect operating system settings; and the like. Accordingly, it may be helpful to determine the cause of a computing device malfunction in order to remedy the malfunction.
  • some malfunctions may affect the operation of the computing device to a degree thai it is difficult to diagnose the malfunction using the computing device itself.
  • FIG. 1 is a block diagram of an example bootable computing device for booting a target computing device
  • FIG. 2 is a block diagram of an example computer system for booting a target computing device from a bootable computing device
  • FIG. 3 is a block diagram of an example computer system for booting a target computing device from a bootable computing device via a local communication connection;
  • FIG. 4 is a flowchart of an example method for booting a target computing device from a bootable computing device
  • FIG. 5 is a flowchart of an example method for using a bootable computing device to apply a diagnostic resource and a solution resource to a target computing device booted from the bootable computing device;
  • FIG. 8 is a flowchart of an example method for managing a remote support session for a target computing device using a bootable computing device.
  • Troubleshooting a malfunctioning computing device using another computing device may be useful. For example, it may be difficult to diagnose or remedy a malfunction of a target computing device when at least one functionality for user interaction with the target computing device (e.g., displaying output, receiving input, etc.) is not operating correctly. Similarly difficulties may arise when settings or other components of the target computing device's operating system have been corrupted or altered (e.g., by a computer virus, maiware, etc.) such that certain aspects of the computing device (e.g., functionalities, settings, etc.) are not useable by or accessible to a user of the target computing device. Additionally, use of another computing device may be beneficial when the malfunctioning computing device is failing to boot.
  • examples disclosed herein provide a diagnostic tool of a bootable computing device that may be used to perform a plurality functionalities for diagnosing, remedying, or otherwise interacting with a malfunctioning target computing device.
  • examples disclosed herein enable a target computing device to boot from a bootable computing device such that the target computing device, once booted from the bootable computing device, is configured to utilize a computing resource of the bootable computing device.
  • a user may select at least one computing resource of the bootable computing device that the user would like the target computing device to utilize once booted, if the computing device is failing to correctly display output, for example, the user may select a display device emulator of the bootable computing device, in response to the user's computing resource selection, the bootable computing device may alter a boot image stored on the bootable computing device such that, when the target computing device is booted from the stored boot image, the target computing device is configured to utilize the display device emulator.
  • the target computing device is configured to use the selected computing resource (e.g., the display device emulator) without requiring any further manual configuration of either device by the user.
  • the bootable computing device and the selected resource may be used to diagnose the malfunction of the target computing device.
  • a user may utilize the display device emulator to interact with the target computing device to apply diagnostic resources to determine the cause of the malfunction. For example, utilizing the display device emulator of the bootable computing device, a corrupt or outdated display device driver of the target computing device may be discovered and replaced, or the bootable computing device may determine that a display port of the target computing device has failed.
  • corrupt components of a target computing device's operating system may, for example, prevent the target computing device from receiving diagnostic and/or remedial resources from other computing devices.
  • the bootable computing device in response to a user selecting a network interface, may alter a boot image such that the target device, when booted from the boot image, is configured to utilize the network interface of the bootable computing device, in this manner, some examples may simplify the diagnostic process by booting a malfunctioning target computing device to a clean operating system such that the target computing device is configured to utilize a network interface of another computing device upon booting.
  • Such examples may simplify the diagnostic process by providing a diagnostic tool that may both boot a malfunctioning target computing device to a clean operating system and enable the target computing device to utilize the network interface of another computing device without any manual configuration of the target computing device to utilize the network interface once booted. Some examples may further simplify the diagnostic process by utilizing the network interface of the bootable computing device to access diagnostic and/or remedial resources for the target computing device and/or to facilitate a remote support session between the target computing device and a remote computing device.
  • some examples may switch between a bootabie mode, in which a bootable computing device is useable as a boot device, and an operational mode, in which a computing resource of the bootabie computing device is useable by the target computing device, in this manner, some examples may provide a single diagnostic tool for both booting a malfunctioning target computing device to a clean operating system and interacting with the target computing device once booted.
  • FIG. 1 is a block diagram of an example bootable computing device 100 for booting a target computing device.
  • a "computing device” is a desktop computer, a notebook computer, a slate or tablet computer, a mobile phone, a smart device (e.g., a smartphone), a chip set of a computing system, or any other device capable of booting to execute an operating system on hardware of the computing device.
  • bootabie computing device 100 may be any of the computing devices noted above.
  • the target computing device may be any of the computing devices noted above, in the example of FIG.
  • bootable computing device 100 includes a boot image altering module 124, an access providing module 128, a storage area 130, and a computing resource 140. While the example of FIG. 1 includes only one computing resource 140, other examples may include a plurality of computing resources 140.
  • each of modules 124 and 128 may comprise logic for implementing the functionality described below.
  • bootabie computing device 100 may comprise at least one hardware device including electronic circuitry for implementing the functionality of modules 124 and 126.
  • the functionality of modules 124 and 128 may be implemented as a series of instructions encoded on a machine-readable storage medium of bootabie computing device 100 and executable by a processor of bootable computing device 100.
  • one of modules 124 and 128 may be implemented as electronic circuitry while the other is implemented as executable instructions.
  • boot image altering module 124 may alter a boot image 132, stored in storage area 130, in response to a configuration request 1 15 received by bootable computing device 100.
  • a "storage area" may comprise a number of physical media for storing data, such as at least one hard disk, solid state drive, tape drive, and the like, or any combination thereof. Additionally, any storage area described herein may include a plurality of storage devices that, in combination, form a pool of available storage.
  • a "boot image” is a collection of information, including an operating system, wherein the information is useable to boot a computing device such that the computing device will execute the operating system.
  • the boot image may comprise device drivers included in the operating system, device drivers separate from the operating system, or a combination thereof.
  • to "alter" a boot image means to change information in the boot image. Examples of "altering" a boot image include adding a device driver to the boot image, changing a setting of the operating system of the boot image (e.g., changing the boot image such that a computing device, upon booting from the boot image, has at least one different operating system setting and/or a different configuration than if the boot image not been changed), and the like.
  • Boot image altering module 124 may alter boot image 132 by, for example, adding a device driver for computing resource 140 to boot image 132, changing at least one setting of the operating system, or a combination thereof, such that the target computing device, if booted from boot image 132, is configured to utilize computing resource 140 during execution of the operating system included in boot image 132.
  • configuration request 1 15 may indicate how to alter boot image 132.
  • configuration request 115 may specify computing resource 140 and, in response, module 124 may alter boot image 132 such that the target computing device may utilize the computing resource upon booting from boot image 132, as described above.
  • bootable computing device 100 may include a plurality of computing resources 140, and configuration request 1 15 may indicate more than one of the computing resources 140.
  • module 124 may alter boot image 132 (e.g., add drivers, change settings, etc.) such that the target device, upon booting from boot image 132, is configured to utilize each of the computing resources 140 indicated in configuration request 1 15.
  • configuration request 115 may indicate specific changes to boot image 132 to be made by module 124 (e.g., adding a specific device driver), in some examples, module 124 may make alterations to boot image 132 regardless of whether any configuration request 1 15 is received by bootable computing device 100.
  • a "computing resource” may be a component of a computing device (e.g., a network interface, input device, output device, storage device, etc.), a functionality of a computing device (e.g., providing/receiving network communications, etc.), or a set of machine-readable instructions executable by a computing device (e.g., software).
  • a computing device e.g., a network interface, input device, output device, storage device, etc.
  • a functionality of a computing device e.g., providing/receiving network communications, etc.
  • a set of machine-readable instructions executable by a computing device e.g., software
  • a "device driver is information including a set of machine-readable instructions useable by the operating system of a primary computing device to utilize and/or communicate with a secondary computing device, a computing resource of the primary computing device, or a computing resource of the secondar computing device in a format (e.g., using code) that the computing device or resource is able to interpret
  • the set of machine-readable instructions may comprise at least one function that may be called by the operating system of the primary computing device to communicate with the computing resource or secondary computing device in a format the computing resource or secondary computing device is able to interpret.
  • the device driver may be, for example, at least one library or other type of file.
  • access providing module 128 may provide the target computing device access to boot image 132 such that the target computing device may boot from boot image 132.
  • the target computing device may use bootable computing device 100 as a boot device, in some examples, after altering boot image 132 with module 124 and connecting bootable computing device 100 to the target computing device (e.g., via a local communication connection), the target computing device may be powered on, and a BIOS module of the target computing device may look for a boot device.
  • a boot sequence of the BIOS module causes the target computing device to look for a boot device connected in the manner in which bootable computing device 100 is connected before looking to a local storage area (e.g., a local hard drive) or another connected boot device
  • the BIOS module may evaluate whether the target computing device is able to boot from bootable computing device 100.
  • the boot sequence in the BIOS module may be changed to check first for a boot device connected in the manner in which bootable computing device 100 is connected.
  • module 126 may provide access to boot image 132 such that boot image 132, as altered by module 124, is retrievable from storage area 130 by the target computing device.
  • module 126 ma provide access to boot image 132 by causing bootable computing device 100 to emulate mass storage device (e.g., by executing a computing device mass storage mode) such that bootable computing device 100 appears to the target computing device as a storage area from and to which the target computing device ma read and write information (e.g., files, etc.).
  • Module 126 may cause bootable computing device 100 to provide the target computing device with communications interpreted by target computing device as communications from a mass storage device.
  • module 126 may cause bootable computing device 100 to communicate with the target computing device such that the target computing device may determine that bootable computing device 100 is a boot device. For example, in response to a request from the BIOS module of the target computing device, module 126 may provide the target computing device with a communication including information (e.g., a boot signature) that may cause the BIOS module to recognize bootable computing device 100 as a boot device. Then, in response to further requests from the target computing device, module 126 may provide to the target computing device a boot loader that, when executed, may retrieve and load the operating system included in boot image 132.
  • the boot loader may, for example, include references to addresses in storage area 130 where boot image 132 is stored. In such examples, in response to read requests of the boot loader, module 126 may access storage area 130 and provide the requested information to the target computing device.
  • the target computing device may boot from image 132 using the boot loader and the further information requested from bootable computing device 100.
  • the target computing device After the target computing device has booted from boot image 132, as altered by module 124, the target computing device is configured to utilize computing resource 140 of bootable computing device 100.
  • Computing resource 140 may be, for example, a network interface, an input or output device emulator, a storage device, or an other computing resource of bootable computing device.
  • the target computing device may boot from boot image 132 such that the target computing device stores and executes the operating system of boot image 132 locally, while also being configured to utilize a computing resource 140 if desired.
  • the bootable computing device may provide a diagnostic tool that may enable a user to select among a plurality of computing resources for the target computing device to utilize.
  • some examples may simplify diagnosing a malfunction of the target computing device by providing, in a single tool, for example, a plurality of computing resources that may be selectively utilized by the target computing device depending upon the particular malfunction of the target computing device.
  • some examples may further simplify the diagnostic process by enabling the target computing device to be configured to utilize at least one selected computing resource of the bootable computing device upon booting from the bootable computing device.
  • FIG. 2 is a block diagram of an example computer system 270 for booting a target computing device 250 from a bootable computing device 200.
  • Bootable computing device 200 includes a processor 210, a storage area 130, a machine- readable storage medium 220, and a plurality of computing resources 140.
  • computing resources 140 include a network interface 241 , an input device 243, and an output device 245.
  • bootable computing device 200 may include more, fewer, or a different combination of computing resources 140.
  • a "processor” may be at least one central processing unit (CPU), at least one semiconductor-based microprocessor, at least one graphics processing unit (GPU), at least one other hardware device suitable for the retrieval and execution of instructions stored on a machine-readable storage medium, or a combination thereof.
  • any processor described herein may include, for example, a single core on a chip, multiple cores on a chip, multiple cores across multiple chips, multiple cores across multiple devices, or a combination thereof.
  • a "machine-readable storage medium” ma be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions.
  • any machine-readable storage medium described herein may be any of Random Access Memory (RAM), flash memory, a storage drive (e.g. a hard disk), a Compact Disc Read Only Memory (CD-ROM), and the like, or a combination thereof. Further, any machine-readable storage medium described herein may be non-transitory.
  • RAM Random Access Memory
  • flash memory e.g. a flash memory
  • storage drive e.g. a hard disk
  • CD-ROM Compact Disc Read Only Memory
  • any machine-readable storage medium described herein may be non-transitory.
  • processor 210 may fetch, decode, and execute the instructions of machine-readable storage medium 220 to implement the functionality described below.
  • processor 210 may include at least one integrated circuit (!C), at least one other electronic circuit, other control logic, or a combination thereof for performing some or ail of the functionality of the instructions of machine-readable storage medium 220 described below.
  • !C integrated circuit
  • Machine-readable storage medium 220 includes instructions 222, 224, 226, 227, 228, and 229.
  • machine-readable storage medium 220 is separate from storage area 130.
  • machine- readable storage medium 220 may be a portion of storage area 130.
  • at least one of instructions 222, 224, 228, 227, 228, and 229 may be stored in storage area 130 instead of in machine-readable storage medium 220.
  • network interface 241 , input device 243, and output device 245 are each examples of a computing resource 140 described above in relation to FIG. 1.
  • a "network interface" is at least one hardware component that may be used by a bootable computing device to communicate over at least one computer network, at least one telephone network, or a combination thereof
  • suitable computer networks include, for example, a LAN, a wireless local area network (WLAN), a wide area network (WAN), an enterprise private network, a virtual private network (VPN), the Internet, and the like.
  • suitable telephone networks include, for example, a wired telephone network, a wireless telephone network (e.g., a cellular network), and the like.
  • bootable computing device 200 may communicate over the Internet using network interface 241.
  • Input device 243 may include, for example, at least one button, keyboard, keypad, touch screen, pointing device (e.g., mouse), accelerometer, microphone, or any other device capable of receiving input from a user of bootable computing device 100. While the example of FIG. 2 includes only one input device 243, other examples may include a plurality of input devices 243.
  • Output device 245 may include, for example, at least one display, speaker, or any other device capable of communicating information to a user of bootable computing device 100. While the example of FIG. 2 includes only one input device 243, other examples may include a plurality of input devices 243.
  • Target computing device 250 comprises a processor 252 and a storage area 254.
  • Machine-readable storage medium 220 includes instructions 222 for receiving configuration request 1 15.
  • instructions 222 may receive configuration request 1 15 via input device 243.
  • a user of bootable computing device 100 may use a keyboard or touch screen of bootable computing device 100 to request, via configuration request 1 15, at least one alteration to boot image 132.
  • a user may use input device 243 to request alterations to boot image 132 that will cause target computing device 250 to be configured to utilize at least one computing resource 140 of bootable computing device 200 upon booting from boot image 132.
  • instructions 222 may display, with output device 245, a list of a plurality of computing resources 140 of bootable computing device 200.
  • a user may, for example, use an input device 243 to select at least one of the displayed computing resources 140.
  • configuration request 1 15 may be received via input device 243 and may include the users selection of computing resources 140.
  • instructions 222 may request alterations to boot image 132 for each of the computing resources 140 indicated in configuration request 1 15.
  • instructions 224 may alter boot image 132, as described above in relation to module 124 of FIG. 1 , such that target computing device 250, upon booting from the altered boot image 132, is configured to utilize each of the computing resources 140 specified in configuration request 1 15.
  • a user may provide a selection of computing resources 140 via a plurality of configuration requests 1 15.
  • configuration request 1 15 may be received via network interface 241 (e.g., received from another computing device via the Internet).
  • the user's selection of computing resources 140 may include a selection of network interface 241.
  • instructions 222 may request alterations to boot image 132 for network interface 241.
  • instructions 224 may alter boot image 132 by adding a device driver and/or altering at least one operating system setting for network interface 241 , such that, upon booting from the altered boot image 132, target computing device 250 is configured to utilize network interface 241.
  • target computing device 250 when booted from the altered boot image 132, may be configured to communicate over a computer network and/or a telephone network using network interface 241.
  • the added device driver and/or altered operating system settings may cause target computing device 250, when locally connected to bootable computing device 200, to route any network communications to network interface 241 and receive network communications from network interface 241.
  • Instructions 228 may provide target computing device 250 access to boot image 132, as described above in reiation to module 128 of FIG. 1 , and/or as described in more detail below in relation to instructions 344 of FIG. 3.
  • target computing device 250 may be booted from boot image 132 altered by instructions 224. By booting target computing device 250 from the altered boot image 132, target computing device 250, upon booting, is configured to utilize the selected computing resources.
  • target computing device 250 may boot from boot image 132 such that target computing device 250 locally stores (e.g., at least partially in storage area 254) and iocaliy executes the operating system of boot image 132, while target computing device 250 is also configured to utilize a computing resource 140 of bootable computing device 100, if desired.
  • machine-readable storage medium 220 further includes instructions 227 for utilizing a computing resource 140 of bootable computing device 200 in response to a request from target computing device 250 (e.g., from a BIOS module of target computing device 250).
  • instructions 227 may receive a resource communication 281 requesting to utilize a computing resource 140 of bootable computing device 200 that target computing device 250 was configured to utilize by booting from the altered boot image 132.
  • instructions 227 may utilize the requested computing resource in accordance with resource communication 281.
  • resource communication 281 may include a message to be communicated via network interface 241 , and instructions 227 may output the message via network interface 241 in response.
  • instructions 227 include instructions 228 for emulating at least one peripheral device, such as a monitor, keyboard, pointing device, or any other input or output device.
  • Instructions for emulating a peripheral device may be referred to herein as a "peripheral device emulator".
  • the peripheral device emulators implemented by instructions 228 are each examples of computing resources 140.
  • the user's selection of computing resources 140 may include a selection of at least one of the peripheral device emulators.
  • instructions 222 may request alterations to boot image 132 for the selected peripheral device emulator, in response, instructions 224 may alter boot image 132 by adding a device driver and/or altering at least one operating system setting for the selected peripheral device emulator.
  • target computing device 250 when booted from the altered boot image 132, may be configured to utilize the selected peripheral device emulator.
  • target computing device 250 when booted from the altered boot image 132, may be configured to provide all display output to bootable computing device 200, and the monitor emulator may display the received display output via an output device 245, such as a screen of bootable computing device 200.
  • target computing device 250 may provide the display output to bootable computing device 200 via resource communications 281.
  • instructions 228 may receive the resource communications 281 and display the output via an output device 245.
  • target computing device 250 when booted from the altered boot image 132, may be configured to receive input from bootable computing device 200 as keyboard input.
  • the keyboard emulator may receive input via input device 243 (e.g., a keyboard, a touch screen) and provide the received input to target computing device 250 via resource communications 282.
  • input device 243 e.g., a keyboard, a touch screen
  • resource communications 282 e.g., resource communications
  • machine-readable storage medium 220 further includes instructions 229 for utilizing a computing resource of target computing device 250.
  • instructions 229 may receive a utilization request 219 via input device 243.
  • a user of bootable computing device 200 may use an input device 243 of bootable computing device 200 to request, via utilization request 219, that bootable computing device 200 utilize a computing resource of target computing device 250.
  • instructions 229 may provide utilization instructions 283 to target computing device 250 to cause target computing device 250 to utilize the computing resource.
  • a user may request, via utilization request 219, that bootable computing device 200 retrieve specified information from storage area 254 (e.g., certain contents of a hard drive) of target computing device 250.
  • target computing device 250 may, for exampie, read the specified information from storage area 254 and return the information to bootable computing device 200 via a utilization result communication 284.
  • instructions 224 may alter boot image 132 such that, upon booting from boot image 132, target computing device 250 is configured to receive and act upon utilization instructions 282 and return utilization results 284.
  • examples described herein may simplify a process of backing up data stored on a failing target computing device by providing a diagnostic tool capable of both booting a target computing device that is failing to boot itself and backing up data on the target computing device once booted.
  • communications 281 , 282, 283, and 284 may be provided over a local communication connection between bootable computing device 200 and target computing device 250.
  • FIG. 3 is a block diagram of an example computer system 370 for booting a target computing device 350 from a bootable computing device 300 via a local communication connection 390.
  • Bootable computing device 300 includes a local port 315, a processor 310, a network interface 241 , a storage area 130, and a machine- readable storage medium 320.
  • Machine-readable storage medium 320 includes instructions 321 , 322, 324, 340, and 360.
  • machine-readable storage medium 320 may also include at least one of instructions 222, 224, 228, 227, 228, and 229 of FIG. 2. in the example of FIG. 3, machine-readable storage medium 320 is separate from storage area 130.
  • machine- readable storage medium 320 may be a portion of storage area 130. In other examples, at least one of the instructions of machine-readable storage medium 320 in the example of FIG. 3 may be stored in storage area 130 instead of in machine- readable storage medium 320.
  • Processor 310 may fetch, decode, and execute and/or include a plurality of eiectronic components for performing some or all of the functionality of the instructions included in machine-readable storage medium 320.
  • network interface is 241 an exemplary computing resource 140 of bootable computing device 300. While the example of FIG. 3 includes only one computing resource 140, other examples may include a plurality of computing resources 140.
  • Target computing device 350 includes a processor 252, a storage area 254, diagnostic resources 358, a local port 359, and a basic input/output system (BIOS) module 353.
  • BIOS module 353 may include, for example, at least one hardware component including electronic circuitry for implementing the functionality described below. Additionally or alternatively, BIOS module 353 may include instructions encoded on a machine-readable storage medium of target computing device 350 and executable by processor 252.
  • bootable computing device 300 may be connected to target computing device 350 by a local communication connection 390.
  • a local communication connection is any type of wired or wireless connection allowing direct communication between two computing devices without the use of any network interface and/or without any other intervening computing device, computer network, or computer networking component (e.g., a router, etc.).
  • a local communication connection is any type of wired or wireless connection allowing direct communication between two computing devices without the use of any network interface and/or without any other intervening computing device, computer network, or computer networking component (e.g., a router, etc.).
  • local communication connection 390 is wired local communication connection having connectors configured to connect to local port 315 of bootable computing device 300 and to a local port 359 of target computing device 350, respectively, in such examples, target computing device 350 may communicate with bootable computing device 300 via local communication connection 390 even when, for example, networking functionalities and/or a network interface of target computing device 350 is failing.
  • a wired local communication connection 390 may be a cable including Universal Serial Bus (USB) connectors on each end of the cable, and local ports 315 and 359 may each be configured to receive a respective one of the USB connectors.
  • wired local communication connection 390 may include, and local ports 315 and 359 may be configured to receive, any other suitable type of connector, in the example of FIG. 3, all communications between bootable computing device 300 and target computing device 350 may be provided over local communication connection 390.
  • target computing device 350 may boot from bootable computing device 300 over local communication connection 390.
  • bootable computing device 300 may be used to boot a target computing device 350 that is not configured to boot over a computer network and/or a target computing device 350 with failing networking functionality (e.g., a malfunctioning network interface).
  • Machine-readable storage medium 320 includes instructions 321 for storing boot image 132 in storage area 130.
  • instructions 321 may receive system information for target computing device 350.
  • system information for a computing device includes at least one of information identifying the computing device (e.g., the brand, model, serial number, etc.), information identifying at least one hardware or software (e.g., set of machine-readable instructions) component of the computing device (e.g., processor model, peripheral device model, application or driver version, etc.), information identifying an operating system instalied on the computing device, or information identifying any other aspect of the computing device.
  • System information may, for example, be received from a user via input device 243. In other examples, system information may be received from target computing device 350.
  • storing instructions 321 may request a boot image from a remote computing device via a boot image request 381 provided over a computer network and/or a telephone network via network interface 241.
  • instructions 321 may determine an appropriate boot image 132 based on the received system information and request the boot image 132 via boot image request 381.
  • the remote device may provide the requested boot image 132 to bootable computing device 300 via a communication 382.
  • instructions 321 may provide system information to the remote computing device via boot image request 381. in such examples, the remote computing device may determine the appropriate boot image 132 and then provide the boot image 132 to bootable computing device 300 via a communication 382.
  • instructions 321 may store the boot image 132 in storage area 130.
  • instructions 321 may receive the boot image 132 via, for example, local port 315 or removable media (e.g., a CD-ROM, DVD-ROM, etc.) and store the boot image 132 in storage area 130.
  • receiving instructions 322 may receive a configuration request 115, as described above in relation to instructions 222 of FiG. 2. Additionally, instructions 324 may alter boot image 132 in response to configuration request 115, as described above in relation to instructions 224 of FIG. 2, such that target computing device 350, when booted from boot image 132, is configured to utilize at least one computing resource of bootable computing device 300.
  • instructions 340 cause bootable computing device 300 to enter a bootable mode.
  • a "bootable mode" of a computing device is a mode in which the computing device is useable as a boot device to boot another computing device, in the example of FIG. 3, the bootable mode of the bootable computing device is a mode in which bootable computing device 300 is useable as a boot device to boot target computing device 350 from the altered boot image 132.
  • instructions 340 may receive a request (e.g., via input device 243) to enter the bootable mode and cause bootable computing device 300 to enter the bootable mode in response, instructions 340 may include instructions 342 for causing bootable computing device 300 to execute a boot device process.
  • bootable computing device 300 may be recognizable by target computing device 350 as a boot device and may be useable by target computing device 350 as a boot device, in the example of FIG. 3, instructions 342 may include access providing instructions 344 and boot device process monitoring instructions 345. Access providing instructions 344 may, for example, provide target computing device 350 access to boot image 132 such that target computing device 350 may boot from boot image 132. [0050] In some examples, after bootable computing device 300 is connected to target computing device 350 (e.g., via local communication connection 390) and enters the bootable mode, target computing device 350 may be powered on.
  • BIOS module 353 when target computing device 350 is powered on, BIOS module 353 will look for a boot device in accordance with a boot sequence encoded in BIOS module 353. if the boot sequence of BIOS module 353 causes target computing device 350 to look for a boot device connected in the manner in which bootable computing device 300 is connected (e.g., via local port 359) before looking to a local storage area (e.g., a local hard drive) or another connected boot device, then BIOS module 353 may evaluate whether target computing device 350 is able to boot from bootable computing device 300.
  • BIOS module 353 may evaluate whether target computing device 350 is able to boot from bootable computing device 300.
  • boot sequence in BIOS module 353 may be changed to check first for a boot device connected in the manner in which bootable computing device 300 is connected.
  • instructions 344 may provide access to boot image 132 such that boot image 132, as altered by altering instructions 324, is retrievable from storage area 130.
  • instructions 344 may provide access to boot image 132 by causing bootable computing device 300 to emulate mass storage device (e.g., by executing a computing device mass storage mode) such that bootable computing device 300 appears to target computing device 350 as a storage area from and to which target computing device 350 may read and write information (e.g., files, etc.).
  • instructions 344 may cause bootable computing device 300 to provide target computing device 350 with communications interpreted by target computing device 350 as communications from a mass storage device.
  • instructions 344 may cause bootable computing device 300 to communicate with target computing device 350 such that target computing device 350 may determine that bootable computing device 300 is a boot device.
  • BIOS module 353 may provide a request 383 to read from a particular area of the emulated mass storage device (e.g., a first sector) where a boot device would include information (e.g., a boot signature) identifying itself as a boot device, in such examples, instructions 344 may recognize the request 383 as a request to read from the particular area (e.g., the first sector) and provide target computing device 350 with a communication 384 simulating a communication that would be returned by a boot device in response to such a request (e.g., a communication including a boot signature).
  • BIOS module 353 may recognize bootable computing device 300 as a boot device. In some examples, after determining that bootable computing device 300 is a boot device, BIOS module 353 may provide another request 383 for further information from the particular area (e.g., the first sector) of the emulated mass storage device. In such examples, instructions 344 may also recognize the additional request 383 as a request to read from the particular area (e.g., the first sector) and provide to target computing device 350 (e.g., via a communication 384) a boot loader that, when executed, will retrieve and load the operating system included in boot image 132.
  • BIOS module 353 may recognize bootable computing device 300 as a boot device. In some examples, after determining that bootable computing device 300 is a boot device, BIOS module 353 may provide another request 383 for further information from the particular area (e.g., the first sector) of the emulated mass storage device. In such examples, instructions 344 may also recognize the additional request 383 as a request to read from the particular area (e.
  • the boot loader may, for example, include references to addresses in storage area 130 where boot image 132 is stored, and the boot loader may request boot image 132 (or portions thereof) from bootable computing device 300 via boot image read requests 385.
  • instructions 344 may, in response to read requests 385, perform read operations and return the requested information via communications 386.
  • instructions 344 may read requests 385 as requests to read from locations in storage area 130 and provide the requested information to target computing device 350.
  • instructions 344 enable target computing device 350 to boot from bootable computing device without altering a region of storage area 130 that may be needed by bootable computing device 300 to boot itself when powered on (e.g., the first sector of storage area 130).
  • instructions 344 may direct requests to read from a first sector of the emulated mass storage device to a secondary storage area (e.g., a removable memory card) from which bootable computing device 300 does not boot, in such examples, instructions 344 may direct further read requests to storage area 130. in other examples, instructions 344 may direct ail read requests to the secondary storage area.
  • instructions 344 may provide the target computing device access to boot image 132 in any other suitable manner.
  • boot process executing instructions 342 further include monitoring instructions 345 that may determine and indicate when bootable computing device 300 is to end the bootable mode.
  • Instructions 342 may, for example, implement a timer to determine when to end the bootable mode.
  • instructions 345 may start the timer as an initial function of instructions 342 or instructions 344 and provide an indication to end the bootable mode after a predetermined amount of time (e.g., several of minutes) has elapsed.
  • the predetermined amount of time may be set based on an average amount of time target computing device 350 may take to boot.
  • monitoring instructions 345 may implement a watchdog timer to determine when to provide an indication to end the bootable mode. In such examples, monitoring instructions 345 may withhold the indication as long as monitoring instructions 345 receive a monitoring signal. For example, the watchdog timer implemented by monitoring instructions 345 may withhold the indication as long as bootable computing device 300 periodically receives boot image requests 385 from target computing device 350. In such examples, after a predetermined amount of time has elapsed since bootable computing device 300 last received a boot image request 385 (e.g., indicating that target computing device 350 is nearing completion of its booting process), monitoring instructions 345 may provide the indication to end the bootable mode.
  • a boot image request 385 e.g., indicating that target computing device 350 is nearing completion of its booting process
  • instructions 345 may provide the indication to end the bootable mode after target computing device has booted from boot image 132.
  • altering instructions 324 may alter boot image 132 such that target computing device 350 will return to bootable computing device 300 a completion indication at or near the end of the process of booting from boot image 132.
  • monitoring instructions 345 may provide the indication to end the bootable mode in response to bootable computing device 300 receiving the completion indication from target computing device 350.
  • machine-readable storage medium 320 may also include switching instructions 360 for switching bootable computing device 300 from the bootable mode to an operational mode in which the bootable computing device may interact with target computing device 350 other than as a boot device.
  • bootable computing device 300 in the operational mode ma execute a diagnostic process, as described below, and/or execute resource utilization instructions 227 described above in relation FIG. 2,
  • a computing resource 140 of bootable computing device 300 is useable by target computing device 350, as described above in relation to FIG. 2.
  • switching instructions 360 may include instructions 361 for ending the boot device process executed by instructions 342 in response to receiving an indication to end the process from monitoring instructions 345.
  • instructions 362 of machine-readable storage medium 320 may execute a diagnostic process.
  • instructions 362 may include request receiving instructions 363 that may receive a request from target computing device 350 to utilize a computing resource 140 (e.g., network interface 241 ) of bootable computing device 300, as described above in relation to FIG. 2.
  • instructions 362 may also include resource utilizing instructions 364 that may utilize a computing resource 140 in response to the request received by instructions 363, as described above in relation to FIG. 2.
  • instructions 363 may provide a message 387 to a remote device via network interface 241 in response to a request to utilize network interface 241.
  • instructions 362 further include diagnostic applying instructions 365 for causing a diagnostic resource to be applied at target computing device 350.
  • a diagnostic resource is any software- based tool (i.e., tool implemented by machine-readable instructions), program, application, script, macro or other machine-readable instructions executable by a processor to implement a diagnostic function for a computing device.
  • a "diagnostic function” is any action or process for determining whether a computing device or a component thereof is malfunctioning or has failed, including troubleshooting processes, system scans, and other actions or processes for testing hardware, software (i.e., machine-readable instructions), system files, system settings, and the like of the computing device.
  • instructions 365 may receive a diagnostic request 371 (e.g., via input device 243). For example, a user of bootable computing device 300 may request, via diagnostic request 371 , that a diagnostic resource be applied at target computing device 350. In response to diagnostic request 371 , instructions 365 may provide a diagnostic communication 372 to target computing device 350 to cause target computing device 350 to apply a diagnostic resource, in some examples, target computing device 350 may be configured to receive and implement instructions included in diagnostic communication 372. In such examples, instructions 324 may alter boot image 132 such that target computing device 350, when booted from the altered boot image 132, is configured to receive diagnostic communication 372 and execute instructions included therein.
  • a diagnostic request 371 e.g., via input device 243
  • instructions 365 may provide a diagnostic communication 372 to target computing device 350 to cause target computing device 350 to apply a diagnostic resource
  • target computing device 350 may be configured to receive and implement instructions included in diagnostic communication 372.
  • instructions 324 may alter boot image 132 such that target computing device 350, when boot
  • diagnostic communication 372 may include instructions for causing target computing device 350 to apply at least one diagnostic resource stored on target computing device 350.
  • diagnostic resources 356 are stored in storage area 254 of target computing device 350.
  • diagnostic communication 372 may include instructions for target computing device 350 to execute at least one of diagnostic resources 356.
  • at least one of diagnostic resources 356 is included in boot image 132 and stored in storage area 254 during the process of booting target computing device 350 from boot image 132.
  • at least one of diagnostic resources 356 may be stored in storage area 356 prior to booting target computing device 350 from boot image 132.
  • diagnostic communication 372 may include instructions for target computing device 350 to execute at least one diagnostic resource located in BIOS module 353 or a Unified Extensible Firmware Interface (UEFI) of the target computing device 350.
  • BIOS module 353 or a Unified Extensible Firmware Interface (UEFI) of the target computing device 350.
  • UEFI Unified Extensible Firmware Interface
  • diagnostic resources 334 may also be stored in storage area 130 of bootable computing device 300.
  • diagnostic communication 372 may include at least one of diagnostic resources 334 and instructions for target computing device 350 to implement (e.g., execute) the at least one diagnostic resource 334.
  • target computing device 350 may be configured to receive diagnostic communication 372 and implement the diagnostic resource 334 in accordance with instructions included in diagnostic communication 372. Alternatively, target computing device 350 may not implement diagnostic resource 334 in response to communication 372.
  • diagnostic applying instructions 385 may request a diagnostic resource from a remote device via a message 387 and receive a diagnostic resource from the remote device via a resource communication 388. instructions 385 may then provide the received diagnostic resource to target computing device 350 via a communication 372.
  • target computing device 350 may provide a result of diagnostic resource application to bootable computing device 300 via a communication 373.
  • the diagnostic result may include, for example, system configuration information, performance tracking information, operating system restore point information, diagnostic codes, and/or any other result of applying a diagnostic resource at target computing device 350.
  • result receiving instructions 388 may receive the diagnostic result and provide the result to solution identifying instructions 387.
  • instructions 387 may identify a solution resource to apply to target computing device 350 based on the received diagnostic result.
  • a “solution resource” is any information (e.g., operation system settings, etc.), software-based tool (i.e., tool implemented by machine-readable instructions), program, application, script, macro, device driver, or resource useable to update, repair and/or replace settings (e.g., operating system settings), files, and/or machine-readable instructions of a computing device (e.g., a BIOS program, etc.).
  • software-based tool i.e., tool implemented by machine-readable instructions
  • program e.g., application, script, macro, device driver, or resource useable to update, repair and/or replace settings (e.g., operating system settings), files, and/or machine-readable instructions of a computing device (e.g., a BIOS program, etc.).
  • a soiution resource may be, for example, an operating system update, instructions for restoring or replacing corrupt files (e.g., boot files, operating system files, device drivers, etc), instructions for applying an operating system restore point, instructions for updating or replacing the contents of the BIOS, and the like, in other examples, instructions may provide the diagnostic result to a remote device for identifying a solution resource and receive the identified soiution resource from the remote device.
  • instructions for restoring or replacing corrupt files e.g., boot files, operating system files, device drivers, etc
  • instructions for applying an operating system restore point e.g., boot files, operating system files, device drivers, etc
  • instructions for applying an operating system restore point e.g., instructions for updating or replacing the contents of the BIOS, and the like
  • instructions may provide the diagnostic result to a remote device for identifying a solution resource and receive the identified soiution resource from the remote device.
  • soiution applying instructions 368 may provide the soiution resource to target computing device 350 via a communication 374.
  • target computing device 350 may be configured to receive and implement the soiution resource received via communication 374 in a manner similar to that described above in relation to diagnostic communication 372.
  • soiution identifying instructions 387 may identify soiution information, which instructions 368 may provide to target computing device 350 via a communication 374.
  • "soiution information” includes instructions for displaying, via a display device, information regarding a malfunction (e.g., error codes, etc.), information regarding the source of the malfunction, instructions on actions to be taken to remedy the malfunction, and the like.
  • diagnostic instructions 362 further include remote support conducting instructions 389 for facilitating a remote support session between target computing device 350 and a remote device via remote support communications 389A between bootable computing device 300 and the remote device and communications 389B between bootable computing device 300 and target computing device 350.
  • a "remote support session” is a procedure in which a remote computing device interacts with a target computing device via a computer network to diagnose, troubieshoot, and/or determine information about the target computing device and/or apply at least one of a diagnostic resource, a solution resource, and solution information at the target computing device, in some examples, a remote support session may include a remote computing device taking at least partial control of the operation of a target computing device.
  • bootable computing device 300 may enable the remote device to diagnose a malfunction of target computing device 350 and/or apply a solution resource or solution information at target computing device 350.
  • request receiving instructions 383 receive a request (e.g., a communication 389B) from target computing device 350 to conduct a remote support session for target computing device 350 over network interface 241 of bootable computing device 300.
  • resource utilizing instructions 364 of bootable computing device 300 may provide a message 387 to a remote device via network interface 241 requesting a remote support session with target computing device 350.
  • remote support conducting instructions 389 of bootable computing device 300 may then receive a remote support message 389A from the remote device. After receiving the message, instructions 389 may determine whether the received remote support message 389A is an instruction to end the remote support session. If the remote support message 389A is an instruction to end the session, then instructions 389 may end the session. Otherwise, instructions 389 may provide the received message to target computing device 350 via a remote support message 389B. in some examples, instructions 389 may receive a diagnostic resource via message 389A and provide the diagnostic resource to target computing device 350 via message 389B.
  • instructions 369 may then receive a remote support message 389B from target computing device 350, and instructions 369 may determine whether the received message 389B is an instruction to end the remote support session. If the message 389B is an instruction to end the session, then instructions 369 may end the session. Otherwise, instructions 369 may provide the received message 389B to the remote support device via network interface 241.
  • message 389B may include a diagnostic result generated as a result of implementing the diagnostic resource provided via message 389A.
  • instructions 369 may continue the remote support session, in some examples, when the remote support session continues, instructions 369 may receive a solution resource from the remote device (e.g., via another message 389A) which instructions 369 may subsequently provide to target computing device 350. In such examples, after providing the solution resource to target computing device 350, instructions 369 may end the remote support session in response to receiving a request to do so.
  • FIG. 4 is a flowchart of an example method 400 for booting a target computing device from a bootable computing device 100.
  • execution of method 400 is described below with reference to bootable computing device 100 of FIG. 1 , other suitable components for execution of method 400 can be utilized (e.g., bootable computing device 200 or 300).
  • method 400 may be implemented in the form of executable instructions encoded on a machine-readable storage medium, in the form of electronic circuitry, or a combination thereof (e.g., modules 124 and 126).
  • Method 400 may start at 405 and proceed to 410, where bootable computing device 100 may provide boot image 132 to a target computing device via a local communication connection. In some examples, bootable computing device 100 may provide boot image 132 to the target computing device via at least one communication over the local communication connection. Additionally, in some examples, the target computing device may boot from boot image 132 received from bootable computing device 100. [0074] After providing boot image 132, method 400 may proceed to 415, where bootabie computing device 100 may receive a request to utilize a computing resource 140 of bootable computing device 100. In some examples, the request may be a request to utilize a network interface of bootabie computing device 100. After receiving the request, method 400 may proceed to 420, where bootable computing device 100 may provide a message to a remote device via the network interface of the bootabie computing device 100. Method 400 may then proceed to 425, where method 400 may stop.
  • FIG. 5 is a flowchart of an example method 500 for using a bootabie computing device 100 to appl a diagnostic resource and a solution resource to a target computing device booted from bootable computing device 100.
  • execution of method 500 is described below with reference to bootabie computing device 100 of FIG. 1 , other suitable components for execution of method 500 can be utilized (e.g., bootable computing device 200 or 300). Additionally, method 500 may be implemented in the form of executable instructions stored on a machine-readable storage medium, in the form of electronic circuitry, or a combination thereof.
  • Method 500 may start at 505 and proceed to 510, where bootable computing device 100 may provide a message to a remote device via a computing resource 140 (e.g., a network interface) of bootabie computing device 100.
  • a computing resource 140 e.g., a network interface
  • the message may be provided in response to a request received via a computing resource 140 (e.g., an input device) of bootabie computing device 100.
  • method 500 may proceed to 515, where bootabie computing device 100 may receive a diagnostic resource from the remote device via a resource communication. After the diagnostic resource is received, method 500 may proceed to 520, where bootabie computing device 100 may provide the diagnostic resource to the target computing device. After providing the diagnostic resource, method 500 may proceed to 525, where bootabie computing device 100 may receive a diagnostic result from the target computing device, in some examples, the target computing device may generate the diagnostic result as a result of implementing the diagnostic resource.
  • method 500 may proceed to 530, where bootable computing device 100 may provide the diagnostic result to the remove device. Method 500 may then proceed to 535, where bootable computing device 100 may receive solution information from the remote device, in response, method 500 may proceed to 540, where bootable computing device 100 may apply the solution information at the target computing device, in some examples, bootable computing device 100 may apply the solution information by providing the solution information to the target computing device along with instructions to display the solution information. In other examples, method 500 may receive a solution resource and apply the solution resource at 535 and 540, respectively. Method 500 may then proceed to 545, where method 500 may stop.
  • FIG. 8 is a flowchart of an example method for managing a remote support session for a target computing device using a bootable computing device.
  • execution of method 600 is described below with reference to bootable computing device 100 of FIG. 1 , other suitable components for execution of method 800 can be utilized (e.g., bootable computing device 200 or 300). Additionally, method 600 may be implemented in the form of executable instructions stored on a machine-readable storage medium, in the form of electronic circuitry, or a combination thereof.
  • Method 600 may start at 605 and proceed to 610, where bootable computing device 100 may receive a request from a target computing device to conduct a remote support session for the target computing device over a computing resource 140 (e.g., a network interface) of bootable computing device 100. In response, in some examples, bootable computing device 100 may provide a message to a remote device via the network interface requesting a remote support session with the target computing device.
  • a computing resource 140 e.g., a network interface
  • Method 600 may then proceed to 615, where bootable computing device 100 may receive a remote support message from the remote device. After receiving the message, method 600 may proceed to 620, where bootable computing device 100 may deiermine whether the received remote support message is an instruction to end the remote support session. If the remote support message is an instruction to end the session, then method 600 may proceed to 645, where method 600 may stop. Otherwise, method 600 may proceed to 625, wherein bootable computing device 100 may provide the received message to the target computing device via a remote support message. In some examples, bootable computing device 100 may receive a diagnostic resource from the remote device at 615 and provide the diagnostic resource to target computing device at 625.
  • Method 600 may then proceed to 630, where bootable computing device 100 may receive a remote support message from the target computing device.
  • Method 600 may then proceed to 635, where bootable computing device 100 may determine whether the received message is an instruction to end the remote support session, if the message is an instruction to end the session, then method 600 may proceed to 645, where method 600 may stop. Otherwise, method 600 may proceed to 640, wherein bootable computing device 100 may provide the received message to the remote support device.
  • the message received at 630 may include a diagnostic result generated as a result of implementing a diagnostic resource provided at 625. in such examples, bootable computing device 100 may provide the diagnostic result to the remote server at 640, and method 600 may proceed back to 615 to continue the session.
  • bootable computing device 100 may receive, at 615, a solution resource from the remote device which may subsequently be provided to target computing device 350 at 625. in such examples, after providing the solution resource at 625, bootable computing device 100 may receive at 635 an instruction to end the remote support session. Method 600 may then proceed to 645, where method 600 may stop.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

Example embodiments disclosed herein relate to booting a target computing device from a bootable computing device. In example embodiments, the target computing device may be configured to utilize a resource of the bootable computing device if the target computing device is booted from a boot image of the bootable computing device.

Description

BACKGROUND
[0001 ] Computing devices such as desktop computers, notebook computers, tabiet computers, mobile phones, and smart devices may at times malfunction for a variety of reasons. For example, a computing device may malfunction as a result of a hardware failure; incorrect, outdated, or corrupt software; incorrect operating system settings; and the like. Accordingly, it may be helpful to determine the cause of a computing device malfunction in order to remedy the malfunction. However, some malfunctions may affect the operation of the computing device to a degree thai it is difficult to diagnose the malfunction using the computing device itself.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The following detailed description references the drawings, wherein:
[0003] FIG. 1 is a block diagram of an example bootable computing device for booting a target computing device;
[0004] FIG. 2 is a block diagram of an example computer system for booting a target computing device from a bootable computing device;
[0005] FIG. 3 is a block diagram of an example computer system for booting a target computing device from a bootable computing device via a local communication connection;
[0006] FIG. 4 is a flowchart of an example method for booting a target computing device from a bootable computing device;
[0007] FIG. 5 is a flowchart of an example method for using a bootable computing device to apply a diagnostic resource and a solution resource to a target computing device booted from the bootable computing device; and
[0008] FIG. 8 is a flowchart of an example method for managing a remote support session for a target computing device using a bootable computing device. DETAILED DESCRIPTIONS
[0009] Troubleshooting a malfunctioning computing device using another computing device may be useful. For example, it may be difficult to diagnose or remedy a malfunction of a target computing device when at least one functionality for user interaction with the target computing device (e.g., displaying output, receiving input, etc.) is not operating correctly. Similarly difficulties may arise when settings or other components of the target computing device's operating system have been corrupted or altered (e.g., by a computer virus, maiware, etc.) such that certain aspects of the computing device (e.g., functionalities, settings, etc.) are not useable by or accessible to a user of the target computing device. Additionally, use of another computing device may be beneficial when the malfunctioning computing device is failing to boot.
[0010] To address these issues, examples disclosed herein provide a diagnostic tool of a bootable computing device that may be used to perform a plurality functionalities for diagnosing, remedying, or otherwise interacting with a malfunctioning target computing device. For example, examples disclosed herein enable a target computing device to boot from a bootable computing device such that the target computing device, once booted from the bootable computing device, is configured to utilize a computing resource of the bootable computing device. In some examples, prior to booting the target computing device, a user may select at least one computing resource of the bootable computing device that the user would like the target computing device to utilize once booted, if the computing device is failing to correctly display output, for example, the user may select a display device emulator of the bootable computing device, in response to the user's computing resource selection, the bootable computing device may alter a boot image stored on the bootable computing device such that, when the target computing device is booted from the stored boot image, the target computing device is configured to utilize the display device emulator.
[001 1 ] In this manner, once the target computing device is booted from the boot image stored on the bootable computing device, the target computing device is configured to use the selected computing resource (e.g., the display device emulator) without requiring any further manual configuration of either device by the user. As such, once the target computing device is booted, the bootable computing device and the selected resource may be used to diagnose the malfunction of the target computing device. In the example described above, a user may utilize the display device emulator to interact with the target computing device to apply diagnostic resources to determine the cause of the malfunction. For example, utilizing the display device emulator of the bootable computing device, a corrupt or outdated display device driver of the target computing device may be discovered and replaced, or the bootable computing device may determine that a display port of the target computing device has failed.
[0012] Additionally, corrupt components of a target computing device's operating system may, for example, prevent the target computing device from receiving diagnostic and/or remedial resources from other computing devices. In some examples, in response to a user selecting a network interface, the bootable computing device may alter a boot image such that the target device, when booted from the boot image, is configured to utilize the network interface of the bootable computing device, in this manner, some examples may simplify the diagnostic process by booting a malfunctioning target computing device to a clean operating system such that the target computing device is configured to utilize a network interface of another computing device upon booting. Such examples may simplify the diagnostic process by providing a diagnostic tool that may both boot a malfunctioning target computing device to a clean operating system and enable the target computing device to utilize the network interface of another computing device without any manual configuration of the target computing device to utilize the network interface once booted. Some examples may further simplify the diagnostic process by utilizing the network interface of the bootable computing device to access diagnostic and/or remedial resources for the target computing device and/or to facilitate a remote support session between the target computing device and a remote computing device.
[0013] Furthermore, some examples may switch between a bootabie mode, in which a bootable computing device is useable as a boot device, and an operational mode, in which a computing resource of the bootabie computing device is useable by the target computing device, in this manner, some examples may provide a single diagnostic tool for both booting a malfunctioning target computing device to a clean operating system and interacting with the target computing device once booted.
[0014] Referring now to the drawings, FIG. 1 is a block diagram of an example bootable computing device 100 for booting a target computing device. As used herein, a "computing device" is a desktop computer, a notebook computer, a slate or tablet computer, a mobile phone, a smart device (e.g., a smartphone), a chip set of a computing system, or any other device capable of booting to execute an operating system on hardware of the computing device. In some examples, bootabie computing device 100 may be any of the computing devices noted above. Similarly, in some examples, the target computing device may be any of the computing devices noted above, in the example of FIG. 1 , bootable computing device 100 includes a boot image altering module 124, an access providing module 128, a storage area 130, and a computing resource 140. While the example of FIG. 1 includes only one computing resource 140, other examples may include a plurality of computing resources 140.
[0015] In the example of FIG. 1 , each of modules 124 and 128 may comprise logic for implementing the functionality described below. For example, bootabie computing device 100 may comprise at least one hardware device including electronic circuitry for implementing the functionality of modules 124 and 126. Alternatively, the functionality of modules 124 and 128 may be implemented as a series of instructions encoded on a machine-readable storage medium of bootabie computing device 100 and executable by a processor of bootable computing device 100. in other examples, one of modules 124 and 128 may be implemented as electronic circuitry while the other is implemented as executable instructions. [0016] In the example of FIG. 1 , boot image altering module 124 may alter a boot image 132, stored in storage area 130, in response to a configuration request 1 15 received by bootable computing device 100. As used herein, a "storage area" may comprise a number of physical media for storing data, such as at least one hard disk, solid state drive, tape drive, and the like, or any combination thereof. Additionally, any storage area described herein may include a plurality of storage devices that, in combination, form a pool of available storage.
[0017] As used herein, a "boot image" is a collection of information, including an operating system, wherein the information is useable to boot a computing device such that the computing device will execute the operating system. In some examples, the boot image may comprise device drivers included in the operating system, device drivers separate from the operating system, or a combination thereof. As used herein, to "alter" a boot image means to change information in the boot image. Examples of "altering" a boot image include adding a device driver to the boot image, changing a setting of the operating system of the boot image (e.g., changing the boot image such that a computing device, upon booting from the boot image, has at least one different operating system setting and/or a different configuration than if the boot image not been changed), and the like.
[0018] Boot image altering module 124 may alter boot image 132 by, for example, adding a device driver for computing resource 140 to boot image 132, changing at least one setting of the operating system, or a combination thereof, such that the target computing device, if booted from boot image 132, is configured to utilize computing resource 140 during execution of the operating system included in boot image 132. in some examples, configuration request 1 15 may indicate how to alter boot image 132. For example, configuration request 115 may specify computing resource 140 and, in response, module 124 may alter boot image 132 such that the target computing device may utilize the computing resource upon booting from boot image 132, as described above.
[0019] In some examples, bootable computing device 100 may include a plurality of computing resources 140, and configuration request 1 15 may indicate more than one of the computing resources 140. In such examples, module 124 may alter boot image 132 (e.g., add drivers, change settings, etc.) such that the target device, upon booting from boot image 132, is configured to utilize each of the computing resources 140 indicated in configuration request 1 15. In other examples, configuration request 115 may indicate specific changes to boot image 132 to be made by module 124 (e.g., adding a specific device driver), in some examples, module 124 may make alterations to boot image 132 regardless of whether any configuration request 1 15 is received by bootable computing device 100.
[0020] As used herein, a "computing resource" may be a component of a computing device (e.g., a network interface, input device, output device, storage device, etc.), a functionality of a computing device (e.g., providing/receiving network communications, etc.), or a set of machine-readable instructions executable by a computing device (e.g., software). Furthermore, as used herein, a "device driver is information including a set of machine-readable instructions useable by the operating system of a primary computing device to utilize and/or communicate with a secondary computing device, a computing resource of the primary computing device, or a computing resource of the secondar computing device in a format (e.g., using code) that the computing device or resource is able to interpret, in some examples, the set of machine-readable instructions may comprise at least one function that may be called by the operating system of the primary computing device to communicate with the computing resource or secondary computing device in a format the computing resource or secondary computing device is able to interpret. The device driver may be, for example, at least one library or other type of file.
[0021] After boot image 132 has been altered by module 124, access providing module 128 may provide the target computing device access to boot image 132 such that the target computing device may boot from boot image 132. In such examples, the target computing device may use bootable computing device 100 as a boot device, in some examples, after altering boot image 132 with module 124 and connecting bootable computing device 100 to the target computing device (e.g., via a local communication connection), the target computing device may be powered on, and a BIOS module of the target computing device may look for a boot device. If a boot sequence of the BIOS module causes the target computing device to look for a boot device connected in the manner in which bootable computing device 100 is connected before looking to a local storage area (e.g., a local hard drive) or another connected boot device, then the BIOS module may evaluate whether the target computing device is able to boot from bootable computing device 100. Alternatively, if the boot sequence looks to a local storage area or other boot device first, then, before attempting to boot from bootable computing device 100, the boot sequence in the BIOS module may be changed to check first for a boot device connected in the manner in which bootable computing device 100 is connected.
[0022] In some examples, module 126 may provide access to boot image 132 such that boot image 132, as altered by module 124, is retrievable from storage area 130 by the target computing device. For example, module 126 ma provide access to boot image 132 by causing bootable computing device 100 to emulate mass storage device (e.g., by executing a computing device mass storage mode) such that bootable computing device 100 appears to the target computing device as a storage area from and to which the target computing device ma read and write information (e.g., files, etc.). Module 126 may cause bootable computing device 100 to provide the target computing device with communications interpreted by target computing device as communications from a mass storage device.
[0023] In some examples, module 126 may cause bootable computing device 100 to communicate with the target computing device such that the target computing device may determine that bootable computing device 100 is a boot device. For example, in response to a request from the BIOS module of the target computing device, module 126 may provide the target computing device with a communication including information (e.g., a boot signature) that may cause the BIOS module to recognize bootable computing device 100 as a boot device. Then, in response to further requests from the target computing device, module 126 may provide to the target computing device a boot loader that, when executed, may retrieve and load the operating system included in boot image 132. The boot loader may, for example, include references to addresses in storage area 130 where boot image 132 is stored. In such examples, in response to read requests of the boot loader, module 126 may access storage area 130 and provide the requested information to the target computing device. The target computing device may boot from image 132 using the boot loader and the further information requested from bootable computing device 100.
[0024] After the target computing device has booted from boot image 132, as altered by module 124, the target computing device is configured to utilize computing resource 140 of bootable computing device 100. Computing resource 140 may be, for example, a network interface, an input or output device emulator, a storage device, or an other computing resource of bootable computing device. In some examples, the target computing device may boot from boot image 132 such that the target computing device stores and executes the operating system of boot image 132 locally, while also being configured to utilize a computing resource 140 if desired.
[0025] Accordingly, in some examples, the bootable computing device may provide a diagnostic tool that may enable a user to select among a plurality of computing resources for the target computing device to utilize. In this manner, some examples may simplify diagnosing a malfunction of the target computing device by providing, in a single tool, for example, a plurality of computing resources that may be selectively utilized by the target computing device depending upon the particular malfunction of the target computing device. Additionally, some examples may further simplify the diagnostic process by enabling the target computing device to be configured to utilize at least one selected computing resource of the bootable computing device upon booting from the bootable computing device.
[0026] FIG. 2 is a block diagram of an example computer system 270 for booting a target computing device 250 from a bootable computing device 200. Bootable computing device 200 includes a processor 210, a storage area 130, a machine- readable storage medium 220, and a plurality of computing resources 140. In the example, of FIG. 2, computing resources 140 include a network interface 241 , an input device 243, and an output device 245. In other examples, bootable computing device 200 may include more, fewer, or a different combination of computing resources 140.
[0027] As used herein, a "processor" may be at least one central processing unit (CPU), at least one semiconductor-based microprocessor, at least one graphics processing unit (GPU), at least one other hardware device suitable for the retrieval and execution of instructions stored on a machine-readable storage medium, or a combination thereof. Additionally, any processor described herein may include, for example, a single core on a chip, multiple cores on a chip, multiple cores across multiple chips, multiple cores across multiple devices, or a combination thereof. Additionally, as used herein, a "machine-readable storage medium" ma be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. For example, any machine-readable storage medium described herein may be any of Random Access Memory (RAM), flash memory, a storage drive (e.g. a hard disk), a Compact Disc Read Only Memory (CD-ROM), and the like, or a combination thereof. Further, any machine-readable storage medium described herein may be non-transitory.
[0028] In the example of FIG. 2, processor 210 may fetch, decode, and execute the instructions of machine-readable storage medium 220 to implement the functionality described below. As an alternative or in addition to fetching, decoding, and executing instructions, processor 210 may include at least one integrated circuit (!C), at least one other electronic circuit, other control logic, or a combination thereof for performing some or ail of the functionality of the instructions of machine-readable storage medium 220 described below.
[0029] Machine-readable storage medium 220 includes instructions 222, 224, 226, 227, 228, and 229. In the example of FIG. 2, machine-readable storage medium 220 is separate from storage area 130. Alternatively, in some examples, machine- readable storage medium 220 may be a portion of storage area 130. In other examples, at least one of instructions 222, 224, 228, 227, 228, and 229 may be stored in storage area 130 instead of in machine-readable storage medium 220. [0030] In the example of FIG. 2, network interface 241 , input device 243, and output device 245 are each examples of a computing resource 140 described above in relation to FIG. 1. As used herein, a "network interface" is at least one hardware component that may be used by a bootable computing device to communicate over at least one computer network, at least one telephone network, or a combination thereof, in some examples, suitable computer networks include, for example, a LAN, a wireless local area network (WLAN), a wide area network (WAN), an enterprise private network, a virtual private network (VPN), the Internet, and the like. Further, suitable telephone networks include, for example, a wired telephone network, a wireless telephone network (e.g., a cellular network), and the like. In some examples, bootable computing device 200 may communicate over the Internet using network interface 241.
[0031] Input device 243 may include, for example, at least one button, keyboard, keypad, touch screen, pointing device (e.g., mouse), accelerometer, microphone, or any other device capable of receiving input from a user of bootable computing device 100. While the example of FIG. 2 includes only one input device 243, other examples may include a plurality of input devices 243. Output device 245 may include, for example, at least one display, speaker, or any other device capable of communicating information to a user of bootable computing device 100. While the example of FIG. 2 includes only one input device 243, other examples may include a plurality of input devices 243. Target computing device 250 comprises a processor 252 and a storage area 254.
[0032] Machine-readable storage medium 220 includes instructions 222 for receiving configuration request 1 15. In some examples, instructions 222 may receive configuration request 1 15 via input device 243. For example, a user of bootable computing device 100 may use a keyboard or touch screen of bootable computing device 100 to request, via configuration request 1 15, at least one alteration to boot image 132. For example, a user may use input device 243 to request alterations to boot image 132 that will cause target computing device 250 to be configured to utilize at least one computing resource 140 of bootable computing device 200 upon booting from boot image 132.
[0033] In some examples, instructions 222 may display, with output device 245, a list of a plurality of computing resources 140 of bootable computing device 200. A user may, for example, use an input device 243 to select at least one of the displayed computing resources 140. in such examples, configuration request 1 15 may be received via input device 243 and may include the users selection of computing resources 140. instructions 222 may request alterations to boot image 132 for each of the computing resources 140 indicated in configuration request 1 15. in response to the request of instructions 222, instructions 224 may alter boot image 132, as described above in relation to module 124 of FIG. 1 , such that target computing device 250, upon booting from the altered boot image 132, is configured to utilize each of the computing resources 140 specified in configuration request 1 15. In some examples, a user may provide a selection of computing resources 140 via a plurality of configuration requests 1 15. In other examples, configuration request 1 15 may be received via network interface 241 (e.g., received from another computing device via the Internet).
[0034] In some examples, the user's selection of computing resources 140 may include a selection of network interface 241. In such examples, instructions 222 may request alterations to boot image 132 for network interface 241. In response, instructions 224 may alter boot image 132 by adding a device driver and/or altering at least one operating system setting for network interface 241 , such that, upon booting from the altered boot image 132, target computing device 250 is configured to utilize network interface 241. in such examples, target computing device 250, when booted from the altered boot image 132, may be configured to communicate over a computer network and/or a telephone network using network interface 241. For example, the added device driver and/or altered operating system settings may cause target computing device 250, when locally connected to bootable computing device 200, to route any network communications to network interface 241 and receive network communications from network interface 241. [0035] Instructions 228 may provide target computing device 250 access to boot image 132, as described above in reiation to module 128 of FIG. 1 , and/or as described in more detail below in relation to instructions 344 of FIG. 3. In such examples, target computing device 250 may be booted from boot image 132 altered by instructions 224. By booting target computing device 250 from the altered boot image 132, target computing device 250, upon booting, is configured to utilize the selected computing resources. In some examples, target computing device 250 may boot from boot image 132 such that target computing device 250 locally stores (e.g., at least partially in storage area 254) and iocaliy executes the operating system of boot image 132, while target computing device 250 is also configured to utilize a computing resource 140 of bootable computing device 100, if desired.
[0036] In the example of FIG. 2, machine-readable storage medium 220 further includes instructions 227 for utilizing a computing resource 140 of bootable computing device 200 in response to a request from target computing device 250 (e.g., from a BIOS module of target computing device 250). In some examples, instructions 227 may receive a resource communication 281 requesting to utilize a computing resource 140 of bootable computing device 200 that target computing device 250 was configured to utilize by booting from the altered boot image 132. In response, instructions 227 may utilize the requested computing resource in accordance with resource communication 281. In some examples, resource communication 281 may include a message to be communicated via network interface 241 , and instructions 227 may output the message via network interface 241 in response.
[0037] In the example of FIG. 2, instructions 227 include instructions 228 for emulating at least one peripheral device, such as a monitor, keyboard, pointing device, or any other input or output device. Instructions for emulating a peripheral device may be referred to herein as a "peripheral device emulator". In some examples, the peripheral device emulators implemented by instructions 228 are each examples of computing resources 140. in such examples, the user's selection of computing resources 140 may include a selection of at least one of the peripheral device emulators. Accordingly, instructions 222 may request alterations to boot image 132 for the selected peripheral device emulator, in response, instructions 224 may alter boot image 132 by adding a device driver and/or altering at least one operating system setting for the selected peripheral device emulator. In such examples, target computing device 250, when booted from the altered boot image 132, may be configured to utilize the selected peripheral device emulator.
[0038] For example, if the user selects a monitor emulator, target computing device 250, when booted from the altered boot image 132, may be configured to provide all display output to bootable computing device 200, and the monitor emulator may display the received display output via an output device 245, such as a screen of bootable computing device 200. in some examples, target computing device 250 may provide the display output to bootable computing device 200 via resource communications 281. in such examples, instructions 228 may receive the resource communications 281 and display the output via an output device 245. Similarly, if the user selects the keyboard emulator, target computing device 250, when booted from the altered boot image 132, may be configured to receive input from bootable computing device 200 as keyboard input. In such examples, the keyboard emulator may receive input via input device 243 (e.g., a keyboard, a touch screen) and provide the received input to target computing device 250 via resource communications 282. Although examples are described herein in the context of a monitor emulator and a keyboard emulator, other peripheral device emulators may be utilized in computer system 270 in a similar manner.
[0039] In the example of FIG. 2, machine-readable storage medium 220 further includes instructions 229 for utilizing a computing resource of target computing device 250. After target computing device 250 has booted from boot image 132, instructions 229 may receive a utilization request 219 via input device 243. For example, a user of bootable computing device 200 may use an input device 243 of bootable computing device 200 to request, via utilization request 219, that bootable computing device 200 utilize a computing resource of target computing device 250.
[0040] In response to utilization request 219, instructions 229 may provide utilization instructions 283 to target computing device 250 to cause target computing device 250 to utilize the computing resource. For exampie, a user may request, via utilization request 219, that bootable computing device 200 retrieve specified information from storage area 254 (e.g., certain contents of a hard drive) of target computing device 250. In response to utilization instructions 283, target computing device 250 may, for exampie, read the specified information from storage area 254 and return the information to bootable computing device 200 via a utilization result communication 284. in such examples, instructions 224 may alter boot image 132 such that, upon booting from boot image 132, target computing device 250 is configured to receive and act upon utilization instructions 282 and return utilization results 284. In this manner, examples described herein may simplify a process of backing up data stored on a failing target computing device by providing a diagnostic tool capable of both booting a target computing device that is failing to boot itself and backing up data on the target computing device once booted. In some examples, communications 281 , 282, 283, and 284 may be provided over a local communication connection between bootable computing device 200 and target computing device 250.
[0041] FIG. 3 is a block diagram of an example computer system 370 for booting a target computing device 350 from a bootable computing device 300 via a local communication connection 390. Bootable computing device 300 includes a local port 315, a processor 310, a network interface 241 , a storage area 130, and a machine- readable storage medium 320. Machine-readable storage medium 320 includes instructions 321 , 322, 324, 340, and 360. In some examples, machine-readable storage medium 320 may also include at least one of instructions 222, 224, 228, 227, 228, and 229 of FIG. 2. in the example of FIG. 3, machine-readable storage medium 320 is separate from storage area 130. Alternatively, in some examples, machine- readable storage medium 320 may be a portion of storage area 130. In other examples, at least one of the instructions of machine-readable storage medium 320 in the example of FIG. 3 may be stored in storage area 130 instead of in machine- readable storage medium 320. [0042] Processor 310 may fetch, decode, and execute and/or include a plurality of eiectronic components for performing some or all of the functionality of the instructions included in machine-readable storage medium 320. In the example of FIG. 3, network interface is 241 an exemplary computing resource 140 of bootable computing device 300. While the example of FIG. 3 includes only one computing resource 140, other examples may include a plurality of computing resources 140.
[0043] Target computing device 350 includes a processor 252, a storage area 254, diagnostic resources 358, a local port 359, and a basic input/output system (BIOS) module 353. BIOS module 353 may include, for example, at least one hardware component including electronic circuitry for implementing the functionality described below. Additionally or alternatively, BIOS module 353 may include instructions encoded on a machine-readable storage medium of target computing device 350 and executable by processor 252.
[0044] In the example of FIG. 3, bootable computing device 300 may be connected to target computing device 350 by a local communication connection 390. As used herein, a local communication connection" is any type of wired or wireless connection allowing direct communication between two computing devices without the use of any network interface and/or without any other intervening computing device, computer network, or computer networking component (e.g., a router, etc.). In the example of FIG. 3, local communication connection 390 is wired local communication connection having connectors configured to connect to local port 315 of bootable computing device 300 and to a local port 359 of target computing device 350, respectively, in such examples, target computing device 350 may communicate with bootable computing device 300 via local communication connection 390 even when, for example, networking functionalities and/or a network interface of target computing device 350 is failing.
[0045] In some examples, a wired local communication connection 390 may be a cable including Universal Serial Bus (USB) connectors on each end of the cable, and local ports 315 and 359 may each be configured to receive a respective one of the USB connectors. In other examples, wired local communication connection 390 may include, and local ports 315 and 359 may be configured to receive, any other suitable type of connector, in the example of FIG. 3, all communications between bootable computing device 300 and target computing device 350 may be provided over local communication connection 390. As such, in some examples, target computing device 350 may boot from bootable computing device 300 over local communication connection 390. In such examples, bootable computing device 300 may be used to boot a target computing device 350 that is not configured to boot over a computer network and/or a target computing device 350 with failing networking functionality (e.g., a malfunctioning network interface).
[0046] Machine-readable storage medium 320 includes instructions 321 for storing boot image 132 in storage area 130. In some examples, instructions 321 may receive system information for target computing device 350. As used herein, "system information" for a computing device includes at least one of information identifying the computing device (e.g., the brand, model, serial number, etc.), information identifying at least one hardware or software (e.g., set of machine-readable instructions) component of the computing device (e.g., processor model, peripheral device model, application or driver version, etc.), information identifying an operating system instalied on the computing device, or information identifying any other aspect of the computing device. System information may, for example, be received from a user via input device 243. In other examples, system information may be received from target computing device 350.
[0047] In some examples, in response to the received system information, storing instructions 321 may request a boot image from a remote computing device via a boot image request 381 provided over a computer network and/or a telephone network via network interface 241. In such examples, instructions 321 may determine an appropriate boot image 132 based on the received system information and request the boot image 132 via boot image request 381. In response, the remote device may provide the requested boot image 132 to bootable computing device 300 via a communication 382. Alternatively, instructions 321 may provide system information to the remote computing device via boot image request 381. in such examples, the remote computing device may determine the appropriate boot image 132 and then provide the boot image 132 to bootable computing device 300 via a communication 382. After receiving the boot image 132, instructions 321 may store the boot image 132 in storage area 130. In other examples, instructions 321 may receive the boot image 132 via, for example, local port 315 or removable media (e.g., a CD-ROM, DVD-ROM, etc.) and store the boot image 132 in storage area 130.
[0048] After instructions 321 store boot image 132, receiving instructions 322 may receive a configuration request 115, as described above in relation to instructions 222 of FiG. 2. Additionally, instructions 324 may alter boot image 132 in response to configuration request 115, as described above in relation to instructions 224 of FIG. 2, such that target computing device 350, when booted from boot image 132, is configured to utilize at least one computing resource of bootable computing device 300.
[0049] After instructions 324 alter the boot image 132, instructions 340 cause bootable computing device 300 to enter a bootable mode. As used herein, a "bootable mode" of a computing device is a mode in which the computing device is useable as a boot device to boot another computing device, in the example of FIG. 3, the bootable mode of the bootable computing device is a mode in which bootable computing device 300 is useable as a boot device to boot target computing device 350 from the altered boot image 132. In some examples, instructions 340 may receive a request (e.g., via input device 243) to enter the bootable mode and cause bootable computing device 300 to enter the bootable mode in response, instructions 340 may include instructions 342 for causing bootable computing device 300 to execute a boot device process. In the boot device process, bootable computing device 300 may be recognizable by target computing device 350 as a boot device and may be useable by target computing device 350 as a boot device, in the example of FIG. 3, instructions 342 may include access providing instructions 344 and boot device process monitoring instructions 345. Access providing instructions 344 may, for example, provide target computing device 350 access to boot image 132 such that target computing device 350 may boot from boot image 132. [0050] In some examples, after bootable computing device 300 is connected to target computing device 350 (e.g., via local communication connection 390) and enters the bootable mode, target computing device 350 may be powered on. In some examples, when target computing device 350 is powered on, BIOS module 353 will look for a boot device in accordance with a boot sequence encoded in BIOS module 353. if the boot sequence of BIOS module 353 causes target computing device 350 to look for a boot device connected in the manner in which bootable computing device 300 is connected (e.g., via local port 359) before looking to a local storage area (e.g., a local hard drive) or another connected boot device, then BIOS module 353 may evaluate whether target computing device 350 is able to boot from bootable computing device 300. Alternatively, if the boot sequence looks to a local storage area or other boot device first, then, before attempting to boot from bootable computing device 300, the boot sequence in BIOS module 353 may be changed to check first for a boot device connected in the manner in which bootable computing device 300 is connected.
[0051] In the example of FIG. 3, instructions 344 may provide access to boot image 132 such that boot image 132, as altered by altering instructions 324, is retrievable from storage area 130. in some examples, instructions 344 may provide access to boot image 132 by causing bootable computing device 300 to emulate mass storage device (e.g., by executing a computing device mass storage mode) such that bootable computing device 300 appears to target computing device 350 as a storage area from and to which target computing device 350 may read and write information (e.g., files, etc.). instructions 344 may cause bootable computing device 300 to provide target computing device 350 with communications interpreted by target computing device 350 as communications from a mass storage device.
[0052] In some examples, instructions 344 may cause bootable computing device 300 to communicate with target computing device 350 such that target computing device 350 may determine that bootable computing device 300 is a boot device. For example, when target computing device 350 is booting, BIOS module 353 may provide a request 383 to read from a particular area of the emulated mass storage device (e.g., a first sector) where a boot device would include information (e.g., a boot signature) identifying itself as a boot device, in such examples, instructions 344 may recognize the request 383 as a request to read from the particular area (e.g., the first sector) and provide target computing device 350 with a communication 384 simulating a communication that would be returned by a boot device in response to such a request (e.g., a communication including a boot signature).
[0053] In response to communication 384, BIOS module 353 may recognize bootable computing device 300 as a boot device. In some examples, after determining that bootable computing device 300 is a boot device, BIOS module 353 may provide another request 383 for further information from the particular area (e.g., the first sector) of the emulated mass storage device. In such examples, instructions 344 may also recognize the additional request 383 as a request to read from the particular area (e.g., the first sector) and provide to target computing device 350 (e.g., via a communication 384) a boot loader that, when executed, will retrieve and load the operating system included in boot image 132.
[0054] The boot loader may, for example, include references to addresses in storage area 130 where boot image 132 is stored, and the boot loader may request boot image 132 (or portions thereof) from bootable computing device 300 via boot image read requests 385. in such examples, after providing the boot loader, instructions 344 may, in response to read requests 385, perform read operations and return the requested information via communications 386. For example, after providing the boot loader, instructions 344 may read requests 385 as requests to read from locations in storage area 130 and provide the requested information to target computing device 350.
[0055] In such examples, by emulating a mass storage device and providing communications emulating those of a boot device until the boot loader is provided to target computing device 350, instructions 344 enable target computing device 350 to boot from bootable computing device without altering a region of storage area 130 that may be needed by bootable computing device 300 to boot itself when powered on (e.g., the first sector of storage area 130). in other examples, instructions 344 may direct requests to read from a first sector of the emulated mass storage device to a secondary storage area (e.g., a removable memory card) from which bootable computing device 300 does not boot, in such examples, instructions 344 may direct further read requests to storage area 130. in other examples, instructions 344 may direct ail read requests to the secondary storage area. Although examples in which instructions 344 emulate a bootable mass storage device are described herein, in alternative examples, instructions 344 may provide the target computing device access to boot image 132 in any other suitable manner.
[0056] In the example of FIG. 3, boot process executing instructions 342 further include monitoring instructions 345 that may determine and indicate when bootable computing device 300 is to end the bootable mode. Instructions 342 may, for example, implement a timer to determine when to end the bootable mode. In such examples, instructions 345 may start the timer as an initial function of instructions 342 or instructions 344 and provide an indication to end the bootable mode after a predetermined amount of time (e.g., several of minutes) has elapsed. The predetermined amount of time may be set based on an average amount of time target computing device 350 may take to boot.
[0057] In other examples, monitoring instructions 345 may implement a watchdog timer to determine when to provide an indication to end the bootable mode. In such examples, monitoring instructions 345 may withhold the indication as long as monitoring instructions 345 receive a monitoring signal. For example, the watchdog timer implemented by monitoring instructions 345 may withhold the indication as long as bootable computing device 300 periodically receives boot image requests 385 from target computing device 350. In such examples, after a predetermined amount of time has elapsed since bootable computing device 300 last received a boot image request 385 (e.g., indicating that target computing device 350 is nearing completion of its booting process), monitoring instructions 345 may provide the indication to end the bootable mode.
[0058] Alternatively, instructions 345 may provide the indication to end the bootable mode after target computing device has booted from boot image 132. For example, altering instructions 324 may alter boot image 132 such that target computing device 350 will return to bootable computing device 300 a completion indication at or near the end of the process of booting from boot image 132. In such examples, monitoring instructions 345 may provide the indication to end the bootable mode in response to bootable computing device 300 receiving the completion indication from target computing device 350.
[0059] In the example of FIG. 3, machine-readable storage medium 320 may also include switching instructions 360 for switching bootable computing device 300 from the bootable mode to an operational mode in which the bootable computing device may interact with target computing device 350 other than as a boot device. In some examples, bootable computing device 300 in the operational mode ma execute a diagnostic process, as described below, and/or execute resource utilization instructions 227 described above in relation FIG. 2, In some examples, when bootable computing device 300 is in the operational mode, a computing resource 140 of bootable computing device 300 is useable by target computing device 350, as described above in relation to FIG. 2.
[0060] In some examples, switching instructions 360 may include instructions 361 for ending the boot device process executed by instructions 342 in response to receiving an indication to end the process from monitoring instructions 345. After ending the boot device process, instructions 362 of machine-readable storage medium 320 may execute a diagnostic process. In the example of FIG. 3, instructions 362 may include request receiving instructions 363 that may receive a request from target computing device 350 to utilize a computing resource 140 (e.g., network interface 241 ) of bootable computing device 300, as described above in relation to FIG. 2. instructions 362 may also include resource utilizing instructions 364 that may utilize a computing resource 140 in response to the request received by instructions 363, as described above in relation to FIG. 2. In some examples, instructions 363 may provide a message 387 to a remote device via network interface 241 in response to a request to utilize network interface 241. [0061] In the example of FIG. 3, instructions 362 further include diagnostic applying instructions 365 for causing a diagnostic resource to be applied at target computing device 350. As used herein, a "diagnostic resource" is any software- based tool (i.e., tool implemented by machine-readable instructions), program, application, script, macro or other machine-readable instructions executable by a processor to implement a diagnostic function for a computing device. As used herein, a "diagnostic function" is any action or process for determining whether a computing device or a component thereof is malfunctioning or has failed, including troubleshooting processes, system scans, and other actions or processes for testing hardware, software (i.e., machine-readable instructions), system files, system settings, and the like of the computing device.
[0062] After target computing device 350 has booted from boot image 132, instructions 365 may receive a diagnostic request 371 (e.g., via input device 243). For example, a user of bootable computing device 300 may request, via diagnostic request 371 , that a diagnostic resource be applied at target computing device 350. In response to diagnostic request 371 , instructions 365 may provide a diagnostic communication 372 to target computing device 350 to cause target computing device 350 to apply a diagnostic resource, in some examples, target computing device 350 may be configured to receive and implement instructions included in diagnostic communication 372. In such examples, instructions 324 may alter boot image 132 such that target computing device 350, when booted from the altered boot image 132, is configured to receive diagnostic communication 372 and execute instructions included therein.
[0063] In some examples, diagnostic communication 372 may include instructions for causing target computing device 350 to apply at least one diagnostic resource stored on target computing device 350. In the example of FIG. 3, diagnostic resources 356 are stored in storage area 254 of target computing device 350. In such examples diagnostic communication 372 may include instructions for target computing device 350 to execute at least one of diagnostic resources 356. In some examples, at least one of diagnostic resources 356 is included in boot image 132 and stored in storage area 254 during the process of booting target computing device 350 from boot image 132. Alternatively or in addition, at least one of diagnostic resources 356 may be stored in storage area 356 prior to booting target computing device 350 from boot image 132. In some examples, diagnostic communication 372 may include instructions for target computing device 350 to execute at least one diagnostic resource located in BIOS module 353 or a Unified Extensible Firmware Interface (UEFI) of the target computing device 350.
[0064] In the example of FIG. 3, diagnostic resources 334 may also be stored in storage area 130 of bootable computing device 300. In some examples, diagnostic communication 372 may include at least one of diagnostic resources 334 and instructions for target computing device 350 to implement (e.g., execute) the at least one diagnostic resource 334. By booting target computing device 350 from an appropriatel altered boot image 132, target computing device 350 may be configured to receive diagnostic communication 372 and implement the diagnostic resource 334 in accordance with instructions included in diagnostic communication 372. Alternatively, target computing device 350 may not implement diagnostic resource 334 in response to communication 372. Rather, after diagnostic communication 372 including a diagnostic resource 334 has been provided to target computing device 350, a user may manually cause target computing device 350 to implement the received diagnostic resource 334 (e.g., using an input device of target computing device 250). in other examples, diagnostic applying instructions 385 may request a diagnostic resource from a remote device via a message 387 and receive a diagnostic resource from the remote device via a resource communication 388. instructions 385 may then provide the received diagnostic resource to target computing device 350 via a communication 372.
[0065] In some examples, after applying a diagnostic resource, target computing device 350 may provide a result of diagnostic resource application to bootable computing device 300 via a communication 373. The diagnostic result may include, for example, system configuration information, performance tracking information, operating system restore point information, diagnostic codes, and/or any other result of applying a diagnostic resource at target computing device 350. In the example of FIG. 3, result receiving instructions 388 may receive the diagnostic result and provide the result to solution identifying instructions 387. In some examples, instructions 387 may identify a solution resource to apply to target computing device 350 based on the received diagnostic result. As used herein, a "solution resource" is any information (e.g., operation system settings, etc.), software-based tool (i.e., tool implemented by machine-readable instructions), program, application, script, macro, device driver, or resource useable to update, repair and/or replace settings (e.g., operating system settings), files, and/or machine-readable instructions of a computing device (e.g., a BIOS program, etc.). A soiution resource ma be, for example, an operating system update, instructions for restoring or replacing corrupt files (e.g., boot files, operating system files, device drivers, etc), instructions for applying an operating system restore point, instructions for updating or replacing the contents of the BIOS, and the like, in other examples, instructions may provide the diagnostic result to a remote device for identifying a solution resource and receive the identified soiution resource from the remote device.
[0066] In the example of FIG. 3, after identifying a solution resource, soiution applying instructions 368 may provide the soiution resource to target computing device 350 via a communication 374. In some examples, target computing device 350 may be configured to receive and implement the soiution resource received via communication 374 in a manner similar to that described above in relation to diagnostic communication 372.
[0067] In other examples, soiution identifying instructions 387 may identify soiution information, which instructions 368 may provide to target computing device 350 via a communication 374. As used herein, "soiution information" includes instructions for displaying, via a display device, information regarding a malfunction (e.g., error codes, etc.), information regarding the source of the malfunction, instructions on actions to be taken to remedy the malfunction, and the like. In the example of FIG. 3, diagnostic instructions 362 further include remote support conducting instructions 389 for facilitating a remote support session between target computing device 350 and a remote device via remote support communications 389A between bootable computing device 300 and the remote device and communications 389B between bootable computing device 300 and target computing device 350.
[0068] As used herein, a "remote support session" is a procedure in which a remote computing device interacts with a target computing device via a computer network to diagnose, troubieshoot, and/or determine information about the target computing device and/or apply at least one of a diagnostic resource, a solution resource, and solution information at the target computing device, in some examples, a remote support session may include a remote computing device taking at least partial control of the operation of a target computing device.
[0069] By facilitating a remote support session, bootable computing device 300 may enable the remote device to diagnose a malfunction of target computing device 350 and/or apply a solution resource or solution information at target computing device 350. In some examples, request receiving instructions 383 receive a request (e.g., a communication 389B) from target computing device 350 to conduct a remote support session for target computing device 350 over network interface 241 of bootable computing device 300. In response, in some examples, resource utilizing instructions 364 of bootable computing device 300 may provide a message 387 to a remote device via network interface 241 requesting a remote support session with target computing device 350.
[0070] In such examples, remote support conducting instructions 389 of bootable computing device 300 may then receive a remote support message 389A from the remote device. After receiving the message, instructions 389 may determine whether the received remote support message 389A is an instruction to end the remote support session. If the remote support message 389A is an instruction to end the session, then instructions 389 may end the session. Otherwise, instructions 389 may provide the received message to target computing device 350 via a remote support message 389B. in some examples, instructions 389 may receive a diagnostic resource via message 389A and provide the diagnostic resource to target computing device 350 via message 389B. [0071] In some examples, instructions 369 may then receive a remote support message 389B from target computing device 350, and instructions 369 may determine whether the received message 389B is an instruction to end the remote support session. If the message 389B is an instruction to end the session, then instructions 369 may end the session. Otherwise, instructions 369 may provide the received message 389B to the remote support device via network interface 241. In some examples, message 389B may include a diagnostic result generated as a result of implementing the diagnostic resource provided via message 389A. In such examples, instructions 369 may continue the remote support session, in some examples, when the remote support session continues, instructions 369 may receive a solution resource from the remote device (e.g., via another message 389A) which instructions 369 may subsequently provide to target computing device 350. In such examples, after providing the solution resource to target computing device 350, instructions 369 may end the remote support session in response to receiving a request to do so.
[0072] FIG. 4 is a flowchart of an example method 400 for booting a target computing device from a bootable computing device 100. Although execution of method 400 is described below with reference to bootable computing device 100 of FIG. 1 , other suitable components for execution of method 400 can be utilized (e.g., bootable computing device 200 or 300). Additionally, method 400 may be implemented in the form of executable instructions encoded on a machine-readable storage medium, in the form of electronic circuitry, or a combination thereof (e.g., modules 124 and 126).
[0073] Method 400 may start at 405 and proceed to 410, where bootable computing device 100 may provide boot image 132 to a target computing device via a local communication connection. In some examples, bootable computing device 100 may provide boot image 132 to the target computing device via at least one communication over the local communication connection. Additionally, in some examples, the target computing device may boot from boot image 132 received from bootable computing device 100. [0074] After providing boot image 132, method 400 may proceed to 415, where bootabie computing device 100 may receive a request to utilize a computing resource 140 of bootable computing device 100. In some examples, the request may be a request to utilize a network interface of bootabie computing device 100. After receiving the request, method 400 may proceed to 420, where bootable computing device 100 may provide a message to a remote device via the network interface of the bootabie computing device 100. Method 400 may then proceed to 425, where method 400 may stop.
[0075] FIG. 5 is a flowchart of an example method 500 for using a bootabie computing device 100 to appl a diagnostic resource and a solution resource to a target computing device booted from bootable computing device 100. Although execution of method 500 is described below with reference to bootabie computing device 100 of FIG. 1 , other suitable components for execution of method 500 can be utilized (e.g., bootable computing device 200 or 300). Additionally, method 500 may be implemented in the form of executable instructions stored on a machine-readable storage medium, in the form of electronic circuitry, or a combination thereof.
[0076] Method 500 may start at 505 and proceed to 510, where bootable computing device 100 may provide a message to a remote device via a computing resource 140 (e.g., a network interface) of bootabie computing device 100. As such, in some examples, 510 may correspond to 420 of method 400 of FIG. 4, and may follow 410 and 415 as described above in relation to FIG. 4. in other embodiments, the message may be provided in response to a request received via a computing resource 140 (e.g., an input device) of bootabie computing device 100.
[0077] After providing the message to the remote device, method 500 may proceed to 515, where bootabie computing device 100 may receive a diagnostic resource from the remote device via a resource communication. After the diagnostic resource is received, method 500 may proceed to 520, where bootabie computing device 100 may provide the diagnostic resource to the target computing device. After providing the diagnostic resource, method 500 may proceed to 525, where bootabie computing device 100 may receive a diagnostic result from the target computing device, in some examples, the target computing device may generate the diagnostic result as a result of implementing the diagnostic resource.
[0078] After receiving the diagnostic result, method 500 may proceed to 530, where bootable computing device 100 may provide the diagnostic result to the remove device. Method 500 may then proceed to 535, where bootable computing device 100 may receive solution information from the remote device, in response, method 500 may proceed to 540, where bootable computing device 100 may apply the solution information at the target computing device, in some examples, bootable computing device 100 may apply the solution information by providing the solution information to the target computing device along with instructions to display the solution information. In other examples, method 500 may receive a solution resource and apply the solution resource at 535 and 540, respectively. Method 500 may then proceed to 545, where method 500 may stop.
[0079] FIG. 8 is a flowchart of an example method for managing a remote support session for a target computing device using a bootable computing device. Although execution of method 600 is described below with reference to bootable computing device 100 of FIG. 1 , other suitable components for execution of method 800 can be utilized (e.g., bootable computing device 200 or 300). Additionally, method 600 may be implemented in the form of executable instructions stored on a machine-readable storage medium, in the form of electronic circuitry, or a combination thereof.
[0080] Method 600 may start at 605 and proceed to 610, where bootable computing device 100 may receive a request from a target computing device to conduct a remote support session for the target computing device over a computing resource 140 (e.g., a network interface) of bootable computing device 100. In response, in some examples, bootable computing device 100 may provide a message to a remote device via the network interface requesting a remote support session with the target computing device.
[0081] Method 600 may then proceed to 615, where bootable computing device 100 may receive a remote support message from the remote device. After receiving the message, method 600 may proceed to 620, where bootable computing device 100 may deiermine whether the received remote support message is an instruction to end the remote support session. If the remote support message is an instruction to end the session, then method 600 may proceed to 645, where method 600 may stop. Otherwise, method 600 may proceed to 625, wherein bootable computing device 100 may provide the received message to the target computing device via a remote support message. In some examples, bootable computing device 100 may receive a diagnostic resource from the remote device at 615 and provide the diagnostic resource to target computing device at 625.
[0082] Method 600 may then proceed to 630, where bootable computing device 100 may receive a remote support message from the target computing device. Method 600 may then proceed to 635, where bootable computing device 100 may determine whether the received message is an instruction to end the remote support session, if the message is an instruction to end the session, then method 600 may proceed to 645, where method 600 may stop. Otherwise, method 600 may proceed to 640, wherein bootable computing device 100 may provide the received message to the remote support device. In some examples, the message received at 630 may include a diagnostic result generated as a result of implementing a diagnostic resource provided at 625. in such examples, bootable computing device 100 may provide the diagnostic result to the remote server at 640, and method 600 may proceed back to 615 to continue the session. In some examples, when the remote support session continues, bootable computing device 100 may receive, at 615, a solution resource from the remote device which may subsequently be provided to target computing device 350 at 625. in such examples, after providing the solution resource at 625, bootable computing device 100 may receive at 635 an instruction to end the remote support session. Method 600 may then proceed to 645, where method 600 may stop.

Claims

CLAIMS What is claimed is:
1. A bootable computing device for booting a target computing device from the bootable computing device, the bootable computing device comprising:
a storage area:
a first computing resource; and
logic to:
alter a boot image stored in the storage area, in response to a configuration request, such that the target computing device, if booted from the altered boot image, is configured to utilize the first computing resource during execution of an operating system included in the altered boot image; and
provide the target computing device access to the altered boot image in the storage area such that the bootable computing device is useable as a boot device for the target computing device.
2. The bootable computing device of claim 1 , wherein the computing resource is a network interface.
3. The bootable computing device of claim 1 , wherein the computing resource comprises instructions, executable by the processor, for emulating a peripheral device.
4. The bootable computing device of claim 1 , wherein the logic is further to:
cause a diagnostic resource to be applied at the target computing device.
5. The bootable computing device of claim 1 , wherein the logic is further to:
utilize a second computing resource of the target computing device.
6. A non-transitory machine-readable storage medium encoded with instructions executable by a processor for booting a target computing device from a bootable computing device comprising the processor, the machine-readable medium comprising:
instructions to alter a boot image, including an operating system, stored on a bootable computing device in response to a configuration request such that booting the target computing device from the altered boot image configures the target computing device to utilize a computing resource of the bootable computing device during execution of the operating system;
instructions to enter a bootable mode of the bootable computing device in which the bootable computing device is useable as a boot device to boot the target computing device from the altered boot image; and
instructions to switch from the bootable mode to an operational mode of the bootable computing device in which the computing resource of the bootable computing device is useable by the target computing device if booted from the altered boot image,
7. The machine-readable storage medium of claim 6, wherein:
the instructions to enter the bootable mode comprise instructions to execute a boot device process of the bootable computing device;
the instructions to execute the boot device process comprise instructions to provide the target computing device access to the altered boot image in a storage area of the bootable computing device such that the altered boot image is retrievable from the storage area by the target computing device; and
the instructions to switch from the bootable mode to an operational mode comprise instructions to end the execution of the boot device process.
8. The machine-readable storage medium of claim 6, wherein the instructions to switch from the bootable mode to the operational mode include instructions to execute a diagnostic process comprising: instructions to receive from the target computing device a request to utilize the computing resource: and
instructions to utilize the computing resource in response to the utilization request.
9. The machine-readable storage medium of claim 8, wherein the instructions to switch from the bootable mode to the operational mode include instructions to execute a diagnostic process comprising:
instructions to apply a diagnostic resource at the target computing device; instructions to receive a diagnostic result from the target computing device; instructions to identify a solution resource based on the diagnostic result; and
instructions to apply the solution resource at the target computing device.
10. A method for booting a target computing device from a bootable computing device, the method comprising:
providing at least portions of a boot image including an operating system from the bootable computing device to the target computing device, via a local communication connection connecting the bootable and target computing devices, to allow the target computing device to boot from the boot image, wherein the boot image includes information such that the target computing device, if booted from the altered boot image, is configured to utilize a network interface of the bootable computing device;
receiving, via the local communication connection, a request to utilize the network interface from the target computing device booted from the boot image; and
providing a message to a remote computing device via the network interface in response to the utilization request.
1 1. The method of claim 10, wherein the message includes a request for a diagnostic resource for the target computing device, the method further comprising: receiving, via the network interface, a diagnostic resource from the remote computing device; and
providing the diagnostic resource to the target computing device.
12. The method of claim 10, wherein the message includes a diagnostic result received from the target computing device, the method further comprising:
receiving solution information from the remote computing device: and applying the solution information at the target computing device.
13. The method of claim 10, further comprising:
providing first communications, received from the remote computing device with the network interface, to the target computing device to facilitate a remote support session between the remote computing device and the target computing device; and
providing second communications, received from the target computing device, to the remote computing device with the network interface to facilitate the remote support session.
14. The method of claim 10, further comprising:
instructing the target computing device to apply, at the target computing device, a diagnostic resource included in the operating system.
15. The method of claim 10, further comprising:
receiving, with the bootable computing device, the boot image from the remote computing device; and
storing the boot image on the bootable computing device before the providing the at least portions of the boot image to the target computing device.
PCT/US2011/049897 2011-08-31 2011-08-31 Booting a target computing device from a bootable computing device WO2013032458A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2011/049897 WO2013032458A1 (en) 2011-08-31 2011-08-31 Booting a target computing device from a bootable computing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/049897 WO2013032458A1 (en) 2011-08-31 2011-08-31 Booting a target computing device from a bootable computing device

Publications (1)

Publication Number Publication Date
WO2013032458A1 true WO2013032458A1 (en) 2013-03-07

Family

ID=47756690

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2011/049897 WO2013032458A1 (en) 2011-08-31 2011-08-31 Booting a target computing device from a bootable computing device

Country Status (1)

Country Link
WO (1) WO2013032458A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200428A1 (en) * 2002-04-19 2003-10-23 Sen-Ta Chan Method and system for booting a client computer system over a network
US20070220304A1 (en) * 2006-02-02 2007-09-20 Alastair Slater Restoring a client device
US20070250610A1 (en) * 1999-10-18 2007-10-25 Haun C K Providing a reliable operating system for clients of a net-booted environment
US20070283343A1 (en) * 2006-06-05 2007-12-06 Yariv Aridor Installation of a Bootable Image for Modifying the Operational Environment of a Computing System
US20100106826A1 (en) * 2007-03-09 2010-04-29 Tomoyoshi Sugawara Server function switching device, method and program, and thin client system and server device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070250610A1 (en) * 1999-10-18 2007-10-25 Haun C K Providing a reliable operating system for clients of a net-booted environment
US20030200428A1 (en) * 2002-04-19 2003-10-23 Sen-Ta Chan Method and system for booting a client computer system over a network
US20070220304A1 (en) * 2006-02-02 2007-09-20 Alastair Slater Restoring a client device
US20070283343A1 (en) * 2006-06-05 2007-12-06 Yariv Aridor Installation of a Bootable Image for Modifying the Operational Environment of a Computing System
US20100106826A1 (en) * 2007-03-09 2010-04-29 Tomoyoshi Sugawara Server function switching device, method and program, and thin client system and server device

Similar Documents

Publication Publication Date Title
US11314499B2 (en) Simulating end-to-end upgrade process in production environment
US10503532B2 (en) Creating a virtual machine clone of the host computing device and handling of virtual machine clone requests via an I/O filter
CN104185836B (en) Method and system for verifying proper operation of computing device after system change
CN105814541B (en) The method of computer equipment and computer equipment internal storage starting
US9378121B2 (en) Item-level restoration and verification of image level
US7694165B2 (en) Automation of bare metal recoveries
JP6124994B2 (en) Method and system for restoring from legacy OS environment to Unified Extensible Firmware Interface (UEFI) pre-boot environment, and computer program
KR101931007B1 (en) Initialization trace of a computing device
CN106445728B (en) computer system
US11157349B2 (en) Systems and methods for pre-boot BIOS healing of platform issues from operating system stop error code crashes
US20120191960A1 (en) Booting computing devices
US20130305222A1 (en) Development System
US20220214945A1 (en) System Booting Method and Apparatus, Node Device, and Computer-Readable Storage Medium
CN109426613B (en) Method for retrieving debugging data in UEFI and computer system thereof
US20180246840A1 (en) Intelligent Certificate Discovery in Physical and Virtualized Networks
CN103345406A (en) System and method for achieving cloud virtual mobile terminal of intelligent mobile terminal
JP5951145B2 (en) Operating system recovery method, apparatus, and terminal device
JP2005301639A (en) OS failure handling method and program thereof
CN101373448A (en) Computer system with remote management
CN115951949A (en) Method, device and computing device for recovering configuration parameters of BIOS
US20130080751A1 (en) Method and device for updating bios program for computer system
KR20130068630A (en) Method for initializing embedded device and apparatus thereof
US11900128B2 (en) Modularized basic input output system (BIOS) firmware activation
CN110399168A (en) System startup method, device and equipment for multi-data disk storage server
US20150212866A1 (en) Management system for service of multiple operating environments, and methods thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11871584

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11871584

Country of ref document: EP

Kind code of ref document: A1