Techniques for recovering from boot failures over a computer network
Embodiments include techniques for booting/rebooting a client device and a client device in a client/server network. At the client device, the techniques include detecting an unsuccessful boot of the client device and then evaluating, to identify a cause of the unsuccessful boot, one or more bootup conditions of the client device. In response to the one or more bootup conditions, embodiments can connect to a server over a computer network to communicate the one or more bootup conditions. Embodiments can also receive, from the server, a desired playbook configured to remediate the cause of the unsuccessful boot and execute the desired playbook to cause a successful boot of the client device.
1 . A method of booting/rebooting a client device in a client/server network, the method comprising:
detecting an unsuccessful boot of the client device, wherein the unsuccessful boot comprises the client device being unable to enter a subsequent phase of a boot process after an initial phase of the boot process; and
responsive to the detection of the unsuccessful boot, issuing one or more computer-implemented instructions superseding one or more computer-implemented instructions issued by a standard bootloader installed on the client device,
wherein the one more or more computer-implemented instructions superseding the one or more computer-implemented instructions issued by the standard bootloader comprise:
establishing a connection to a server over a computer network to communicate one or more bootup conditions of the client device;
receiving, from the server over the computer network, a desired playbook comprising a set of instructions configured to cause the client device to enter the subsequent phase of the boot process, the desired playbook being based on the one or more boot conditions communicated to the server from the client device and from previous playbooks prepared by the server to address similar boot conditions on one or more different client devices in the client/server network having a same computing environment profile to produce a remedied computing environment profile; and
executing the desired playbook to adjust one or more properties of a computing environment profile of the client device to conform to the remedied computing environment profile and cause the client device to transform from an inoperable computing state to an operational computing state by entering the subsequent phase of the boot process.
2 . The method of booting/rebooting the client device according to claim 1 , wherein the unsuccessful boot comprises unsuccessfully launching an operating system resident on the client device to cause the client device to transition into the operational computing state.
3 . The method of booting/rebooting the client device according to claim 1 , wherein the desired playbook is configured for use by a plurality of different client devices having the same computing environment profile.
4 . The method of booting/rebooting the client device according to claim 1 , wherein the desired playbook comprises a bootable image configured to remediate the unsuccessful boot.
5 . The method of booting/rebooting the client device according to claim 1 , wherein, when executed, the desired playbook causes the client device to at least one of:
reinstall an operating system (OS);
restore the client device to a state from an earlier backup;
remove selected files, change registry settings and reboot;
download and boot into an alternate operating system to repair the OS;
add or update files to the OS;
change settings of the client device both at a BIOS and an OS level;
install or remove programs;
run third-party applications;
install or update the OS;
collect usage data or logs from the client device and send to the server;
install, update or remove user profiles from the client device;
enroll the client device in databases or directories as part of onboarding a new client device;
perform offboarding activities comprising at least one of unregistering the client device or backing up user data before deleting from the client device;
execute a custom script to perform a custom action; or
retrieval of forensic information.
6 . The method of booting/rebooting the client device according to claim 1 , wherein the desired playbook configured to remediate a cause of the unsuccessful boot received from the server is received via Bluetooth.
7 . The method according to claim 1 , wherein a bootloader installed on the client device is configured to detect the unsuccessful boot of the client device and to issue the one or more instructions superseding the one or more instructions issued by the standard bootloader.
8 . The method according to claim 1 , wherein the one or more bootup conditions of the client device identify corruption or tampering of an operating system.
9 . A client device in a client/server network, comprising:
a processor; and
one or more storage devices on which an operating system configured to cause the client device to transition into an operational computing state is stored, the one or more storage devices further storing a custom bootloader with a set of computer readable instructions executable by the processor, a standard bootloader of the operating system, wherein the custom bootloader is configured to issue one or more instructions that supersede one or more instructions issued by the standard bootloader,
wherein, when executed by the processor, the set of computer readable instructions of the custom bootloader cause the processor to:
detect an unsuccessful boot of the operating system on the client device, in which the unsuccessful boot comprises the client device being unable to enter a subsequent phase of a boot process after an initial phase of the boot process;
connect to a server on the client/server network;
obtain a desirable playbook comprising a set of instructions from the server that are configured to remediate an inability of the client device to enter the subsequent phase of the boot process; and
execute the desirable playbook on the client to cause the client device to enter the subsequent phase of the boot process, thereby transforming the client device from an inoperable state to an operational state.
10 . The client device according to claim 9 , wherein the desirable playbook comprises a set of remediation instructions that, when executed by the processor, cause the processor to remediate a cause of the unsuccessful boot of the operating system.
11 . The client device according to claim 9 , wherein, after connecting to the server, data related to the unsuccessful boot is transmitted to the server for evaluation and for generating the desirable playbook to be executed on the client device.
12 . The client device according to claim 9 , wherein the desirable playbook to be executed on the client device is generated on the server from evaluating data forwarded from the client device related to the unsuccessful boot with data from a plurality of different client devices within the client/server network related to respective unsuccessful boots.
13 . The client device according to claim 12 , wherein the data from the plurality of different client devices related to the respective unsuccessful boots is classified according to causes of the respective unsuccessful boots and the data from the client device related to the unsuccessful boot is evaluated with the data classified according to the causes of the respective unsuccessful boots having causes similar to the cause of the unsuccessful boot.
14 . The client device according to claim 13 , wherein, based on the the plurality of different client devices related to the respective unsuccessful boots classified according to the causes of respective unsuccessful boots evaluated with the data classified according to the causes of the respective unsuccessful boots having causes with a similar to the cause of the unsuccessful boot, the server generates different playbooks to remediate respective causes for the respective unsuccessful boots.
15 . The client device according to claim 9 , wherein the desirable playbook comprises a bootable image, which, when executed by the processor, cause the processor to remediate a cause of the unsuccessful boot of the operating system.
16 . The client device according to claim 15 , wherein the desirable playbook further comprises a set of remediation instructions that, when executed by the processor, cause the bootable image executed by the processor to remediate the cause of the unsuccessful boot of the operating system.
17 . The client device according to claim 9 , wherein, when executed, the desirable playbook causes the processor to at least one of:
reinstall the operating system;
restore the client device to a state from an earlier backup;
remove selected files, change registry settings and reboot;
download and boot into an alternate operating system to repair the operating system;
add or update files to the operating system;
change settings of the client device both at a BIOS and an operating system level;
install or remove programs;
run third-party applications;
install or update the OS;
collect usage data or logs from the client device and send to the server;
install, update or remove user profiles from the client device;
enroll the client device in databases or directories as part of onboarding a new client device;
perform offboarding activities comprising at least one of unregistering the client device or backing up user data before deleting from the client device;
execute a custom script to perform a custom action; or
retrieval of forensic information.
18 . The client device according to claim 9 , wherein the client device connects to the server on the client/server network via Bluetooth.
19 . The method of booting/rebooting the client device according to claim 1 , wherein the one or more computer-implemented instructions superseding the one or more computer-implemented instructions issued by the standard bootloader are executed from a hard disk drive or a solid state drive resident on the client device.
20 . A client device in a client/server network, comprising:
a processor; and
one or more storage devices on which an operating system configured to cause the client device to transition into an operational computing state is stored, the one or more storage devices further storing a set of computer readable instructions executable by the processor, and a standard bootloader of the operating system,
wherein, when executed by the processor, the set of computer readable instructions cause the processor to:
detect an unsuccessful boot of the operating system on the client device, in which the unsuccessful boot comprises the client device being unable to enter a subsequent phase of a boot process after an initial phase of the boot process;
responsive to detecting the unsuccessful boot of the operating system, execute one or more instructions that supersede one or more instructions issued by the standard bootloader,
when executed by the processor, the one or more instructions superseding the one or more instructions issued by the standard bootloader cause the processor to:
establish a connection over a computer network to a server on the client/server network and communicate one or more bootup conditions of the client device;
receive from the server over the computer network, a desirable playbook comprising a set of instructions configured to cause the client device to enter the subsequent phase of the boot process, the desirable playbook being based on the one or more boot conditions communicated to the server from the client device and from previous playbooks prepared by the server to address similar boot conditions on one or more different client devices in the client/server network having a same computing environment profile in order to produce a remedied computing environment profile; and
execute the desirable playbook on the client device to adjust one or more properties of a computing environment profile of the client device to conform to the remedied computing environment profile and to cause the client device to enter the subsequent phase of the boot process, thereby transforming the client device from an inoperable state to an operational state.
21 . The client device according to claim 20 , wherein the one or more computer-implemented instructions superseding the one or more computer-implemented instructions issued by the standard bootloader are executed from a hard disk drive or a solid state drive resident on the client device.
22 . The client device according to claim 20 , wherein data from the one or more different client devices related to respective unsuccessful boots is classified according to causes of the respective unsuccessful boots and the data from the client device related to the unsuccessful boot is evaluated with the data classified according to the causes of the respective unsuccessful boots having causes similar to the cause of the unsuccessful boot.
23 . The client device according to claim 22 , wherein, based on the data from the one or more different client devices related to the respective unsuccessful boots classified according to the causes of the respective unsuccessful boots evaluated with the data classified according to the causes of the respective unsuccessful boots having causes with a similar to the cause of the unsuccessful boot, the server generates different playbooks to remediate respective causes for the respective unsuccessful boots.
24 . The client device according to claim 20 , wherein the desirable playbook comprises a bootable image, which, when executed by the processor, cause the processor to remediate the one or more boot conditions of the unsuccessful boot of the operating system on the client device.
25 . The client device according to claim 24 , wherein the desirable playbook further comprises a set of remediation instructions that, when executed by the processor, cause the bootable image executed by the processor to remediate the one or more boot conditions of the unsuccessful boot of the operating system on the client device.
26 . The client device according to claim 20 , wherein the one or more storage devices storing an alternate bootloader that includes a set of computer readable instructions comprising the one or more instructions that supersede one or more instructions issued by the standard bootloader.