JP3279823B2 - 最後にブートに成功した既知のシステム構成データ・セットを用いたコンピュータ・システムのブート方法および装置 - Google Patents

最後にブートに成功した既知のシステム構成データ・セットを用いたコンピュータ・システムのブート方法および装置

Info

Publication number
JP3279823B2
JP3279823B2 JP18008894A JP18008894A JP3279823B2 JP 3279823 B2 JP3279823 B2 JP 3279823B2 JP 18008894 A JP18008894 A JP 18008894A JP 18008894 A JP18008894 A JP 18008894A JP 3279823 B2 JP3279823 B2 JP 3279823B2
Authority
JP
Japan
Prior art keywords
configuration data
data set
boot
computer system
system configuration
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
JP18008894A
Other languages
English (en)
Other versions
JPH0756719A (ja
Inventor
エム ウィルマン ブライアン
アルヴィン ヒンズリー ダン
ディヴィッド ヴァート ジョン
オットー ホーヴェル ディヴィッド
マン チェー ウォン リタ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JPH0756719A publication Critical patent/JPH0756719A/ja
Application granted granted Critical
Publication of JP3279823B2 publication Critical patent/JP3279823B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/4411Configuring for operating with peripheral devices; Loading of device drivers

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、コンピュータをブー
ト(boot;起動)する方法およびシステムに関し、より
具体的には、ブート・アップ手続が常に成功することを
確実にする方法およびシステムに関する。
【0002】
【従来の技術】ユーザが、パーソナル・コンピュータ・
システムを始動させるときに、このコンピュータ・シス
テムは、そのコンポーネントの全てが正確に働くことを
確かめるために、複雑なオペレーションのセットを実行
する。しかし、このオペレーションは、システム・ブー
ト・アップ手続(すなわち、ブート)と呼ばれる、より
一層複雑なプロセスの第1ステップにすぎない。システ
ムをブートすることにより、コンピュータ・システムの
全てのコンポーネントは、オペレーティング・システム
をロードするのに十分な時間の間活動する。オペレーテ
ィング・システムはコンピュータ・プログラムである。
オペレーティング・システムにより、コンピュータ・シ
ステムは、他のコンピュータ・プログラムの使用が可能
となる。オペレーティング・システムのロードを試みる
前に、コンピュータ・システムは、そのシステムの入出
力ハードウェア、中央処理装置および主記憶装置のすべ
てが機能していることを保証する。これは、パワー・オ
ン・セルフ・テストすなわちPostを使用することに
よって達成される。
【0003】Postが、コンピュータ・システムのハ
ードウェア・コンポーネントのすべてをチェックした後
に、コンピュータのROM BIOSチップに含まれているブー
ト・プログラムは、コンピュータのドライブAにフォー
マット済のフロッピィ・ディスクが装填されているかど
うかを調べるために、ドライブAをチェックする。フォ
ーマット済のフロッピィ・ディスクが、ドライブAにセ
ットされているならば、ブート・プログラムは、そのデ
ィスクの第1セクタをメモリにロードし、実行する。フ
ォーマット済のフロッピィ・ディスクがドライブAにセ
ットされていないならば、第1ハード・ドライブの第1
セクタがメモリにロードされ、実行される。
【0004】このハード・ドライブの第1セクタには、
ハード・ドライブのパーティション・テーブル(partit
ion table )を読み出し、どのパーティションにアクテ
ィブの記号が付されているかを判定するプログラムが含
まている。そして、このアクティブなパーティションの
第1セクタがメモリにロードされ、実行される。
【0005】アクティブなパーティションの第1セクタ
またはフロッピィ・ディスクの第1セクタは、オペレー
ティング・システムの第1ファイル群を構成するファイ
ルを検索するプログラムを含んでいる。ほとんどのパー
ソナル・コンピュータ・システムでは、このファイル群
は、IO.SYSおよびMSDOS.SYS という名前が付けられてい
る。IBMのコンピュータでは、この2つのファイル
は、IO.SYSおよびIBMDOS.COMという名前がそれぞれ付け
られている。ここでは、この2つのシステム・ファイル
をIO.SYSおよびMSDOS.SYS であると仮定する。IO.SYS
は、ROM BIOSデバイス・ルーチンへの低レベルのインタ
フェースを与える。MSDOS.SYS は、それ自身、DOS プロ
グラムであり、ユーザ・プログラムのための高レベルの
インタフェースを与える。それは、ファイル管理ルーチ
ン、ディスク・ルーチンのためのブロック化/ブロック
解除を行うデータ、およびユーザ・プログラムによって
簡単にアクセスできる様々な組込み関数から構成されて
いる。これらの機能ルーチンがユーザ・プログラムによ
って起動されるとき、それらは、高レベルの情報をレジ
スタを介して受け取り、ブロックの中身を制御し、そし
てリクエストを完了するために、要求を、1または2以
上のIBMBIO.COMの呼出しに変換する。
【0006】ブート・レコードは、コンピュータ・シス
テムを制御し、この2つのオペレーティング・システム
・ファイルをメモリにロードする。IO.SYSファイルは、
ROMBIOSへの拡張を含み、システムのブート手続の残り
の部分を管理するSYSINIT と呼ばれるルーチンを含んで
いる。IO.SYSをロードした後、ブート・レコードは、メ
モリ内において他のプログラム・コードと置き換えら
れ、SYSINIT がシステム・ブート手続の制御を行う。こ
の制御において、SYSINIT は、MSDOS.SYS をメモリにロ
ードする。そして、SYSINIT は、コンピュータ・メモリ
のルート・ディレクトリからCONFIG.SYSと名付けられた
ファイルを検索する。CONFIG.SYSがコンピュータ・シス
テムに存在するならば、SYSINIT は、MSDOS.SYS がCONF
IG.SYSファイル内のコマンドを実行するように要求す
る。CONFIG.SYSは、コンピュータのユーザによって作成
されたファイルである。CONFIG.SYSは、いくつのファイ
ルを同時にオープンできるか、いくつのシステム・バッ
ファを同時に使用できるかといった、一定のオペレーシ
ョンの取扱い方法をオペレーティング・システムに伝え
るコマンドを含んでいる。また、CONFIG.SYSは、デバイ
ス・ドライバをロードする命令を含んでいる。デバイス
・ドライバはプログラムであり、このプログラムは、コ
ンピュータ・システムと通信するハードウェアを制御す
るために、オペレーティング・システムが使用するもの
である。例えば、MS-DOSは、フロッピィ・ディスクにど
のようにして情報を書き込み、またフロッピィ・ディス
クからどのようにして情報を読み出すかを制御するデバ
イス・ドライバを使用する。また、MS-DOSは、コンピュ
ータ・システムのキーボード、モニタ、ハード・ドライ
ブおよび通信ポート用の組込みデバイス・ドライバを備
えている。
【0007】次に、SYSINIT は、MSDOS.SYS にファイル
COMMAND.COM をロードするように伝える。COMMAND.COM
の一つの機能は、コンピュータ・メモリのルート・ディ
レクトリからAUTOEXEC.BATと名付けられたファイルを検
索することである。AUTOEXEC.BATは、コンピュータのユ
ーザによって作成されたファイルである。AUTOEXEC.BAT
は、一連のMS-DOSバッチ・ファイル・コマンドおよびコ
ンピュータ・システムが起動されたときにユーザが実行
したい一連のプログラムの名称の双方、またはいずれか
一方を含んでいる。一般に、コンピュータ・システム
は、十分にブートされ、使用のために準備される。
【0008】
【発明が解決しようとする課題】しかしながら、新しい
ハードウェア・コンポーネントがコンピュータ・システ
ムに追加されたとき、またはユーザが変更を要求したと
きに、ユーザによって作成されたCONFIG.SYSおよびAUTO
EXEC.BATの2つのシステム・ブート・ファイルを変更す
る必要がある。従来のシステムにおいては、ユーザが、
自らの要求に合致したコンピュータ・システムを構成す
るために、CONFIG.SYSのコマンドまたはAUTOEXEC.BATの
コマンドを追加および変更していた。CONFIG.SYSファイ
ルを編集するために、アンフォーマット形式(ASCII テ
キスト形式)でファイルを保存するMS-DOSエディタまた
はテキスト・エディタが一般に使用される。CONFIG.SYS
ファイルまたはAUTOEXEC.BATファイルの変更が一旦完了
すると、この変更の効力を生じさせるために、ユーザは
コンピュータ・システムを再始動させなければならな
い。なぜならば、MS-DOSは、ブート・アップ手続(すな
わち、コンピュータ・システムが始動するとき)におい
てのみ、CONFIG.SYSファイルおよびAUTOEXEC.BATファイ
ルを読み込むからである。
【0009】CONFIG.SYSファイルまたはAUTOEXEC.BATフ
ァイルの変更により、コンピュータ・システムが「ハン
グ(hang)」し(すなわち、ブートしない)、これによ
り、ユーザによるシステム・ブート・ファイルの編集が
妨げられ、したがってこのファイルの訂正が妨げられる
ことが時折ある。例えば、システム・ブート・ファイル
が使用不可能ないくつかのケースにおいては、コンピュ
ータ・システムのハード・ドライブ用のデバイス・ドラ
イバをロードすることができない。したがって、ハード
・ドライブに格納されたシステム・ブート・ファイルを
アクセスまたは編集することができない。このデッド・
ロックを解消するために、ユーザは、フロッピィ・ディ
スケットから、MS-DOSのようなオペレーティング・シス
テムをロードしなければならない。そして、ユーザは、
このオペレーティング・システムのエディタを用いてシ
ステム・ブート・ファイルを編集し、ハード・ドライブ
上の編集されたシステム・ブート・ファイルを用いて、
コンピュータ・システムを再ブートするように試みる。
このプロセスは、コンピュータ・システムがブートに成
功するまで続けられる。
【0010】あるシステム構成データ(configuration
data)がたとえ使用不可能となっても、コンピュータ・
システムのユーザが、外部記憶媒体から補助的なファイ
ルをロードする必要なく、システム・ブート・ファイル
にアクセスできるように、自動的にブートするコンピュ
ータ・システムを提供することが望ましい。
【0011】
【課題を解決するための手段】この発明は、あるシステ
ム構成データ(configuration data)がたとえ使用不可
能となった後であっても、コンピュータ・システムをブ
ートする方法およびシステムを提供する。これは、コン
ピュータ・システムを最後(直前)に正しくブートした
システム構成データのセットからコンピュータ・システ
ムをブートする方法およびシステムによって達成され
る。この発明は、最初に、現システム構成データのセッ
トからコンピュータ・システムをブートしようと試み
る。この試みが失敗すると、この発明は、コンピュータ
・システムのブートに成功し、かつあらかじめ記憶され
ている最後のシステム構成データのセットを用いて、自
動的にコンピュータ・システムをブートする。コンピュ
ータ・システムを正しくブートした最後のシステム構成
データのセットを用いて、コンピュータ・システムをブ
ートすることに成功すると、これに応じて、この発明
は、コンピュータ・システムのブートに成功した最後
(直前)のシステム構成データのセットと等価な新しい
現システム構成データのセットを作成する。
【0012】現システム構成データのセットからのブー
トの試みが成功すると、この発明は、コンピュータ・シ
ステムのブートに成功した最後(直前)のシステム構成
データのセットとして、この現システム構成データのセ
ットを記憶する。
【0013】
【実施例】この発明は、システム構成データ(configur
ation data)がたとえ使用不可能となった後であって
も、コンピュータ・システム100 (図1)のブートを成
功させる方法およびシステムを提供する。実際のシステ
ムにおいては、この発明は、ワシントン州、レドモンド
にあるマイクロソフト・コーポレーションのWindowsNT
オペレーティング・システムに組み込まれるであろう。
好ましいオペレーティング・システム101 のコンポーネ
ント(好ましくは、すべてのコンポーネントは、コンピ
ュータ・メモリ103 に記憶されている)は、レジストリ
(registry)107 に記憶されたシステム構成データを用
いて、コンピュータ105 (すなわち、「システム」)を
ブートする。この発明の処理を詳細に述べる前に、シス
テム構成データが、図1のコンピュータ・システム100
内に、好ましくはどのように格納されているかを理解す
ることが役立つであろう。
【0014】[レジストリ]レジストリ107 は、オペレ
ーティング・システム、アプリケーションおよびハード
ウェア構成データを記憶する統一された集中データ・ベ
ースである。レジストリ107 は、好ましくは、複数ユー
ザをサポートする階層構造により、このデータを記憶す
る。したがって、レジストリ107 を設けることにより、
AUTOEXEC.BAT、CONFIG.SYSや他のシステム構成データ・
ファイルのような複数のシステム構成ファイル(config
uration file)の必要性がなくなる。
【0015】レジストリ107 は、好ましくは、木構造を
もつ。レジストリ107 の好ましい木構造は、HKEY-LOCAL
-MACHINE木131 (詳細については後述する、図2、3、
4および5に示されている)と名付けられている。HKEY
-LOCAL-MACHINE木131 は、ローカル・コンピュータ・シ
ステムについてのデータを含んでいる。このデータは、
バス・タイプ、システム・メモリ、インストールされた
デバイス・ドライバおよびブート・システム構成データ
(ブート制御データとしても知られている)のようなハ
ードウェアおよびオペレーティング・システムの特徴を
含んでいる。
【0016】木のノードまたはキー(見出し)のそれぞ
れには、名前が付けられている。各キーは、そのキーと
結合されたバリュー・エントリ(value entry )と呼ば
れるデータ・アイテムを零または1以上含んでいること
がある。バリュー・エントリをファイルにたとえると、
キーはディレクトリにたとえられる。図2の例に示すよ
うに、この発明で用いられる標準的な構文法によると、
「バック・スラッシュ」で始まる名前はキー・ネームと
して定義され、また、「=」が後に続く名前はバリュー
・エントリ、すなわちキーの属性として定義される。
【0017】物理的には、レジストリ107 は、ハード・
ディスク(図示略)上のファイルのセットとして存在す
る。これらのファイルを生成するために、レジストリ10
7 は、ハイブ(hive)と呼ばれるセクションに分割され
る。各ハイブは、ハード・ディスク上のファイルに直接
対応している。
【0018】レジストリ107 のSystemハイブのデータ
(すなわち、HKEY-LOCAL-MACHINE木131 System)は、コ
ントロール・セットに組織化されている。コントロール
・セットは、単純には、システム・パラメータのセット
のインスタンスである。図2は、Systemハイブの好まし
い木構造を示している。このSystemハイブの各キーは、
以下に詳述される。
【0019】ControlSetnnn という名前をもつ各キー20
1 〜203 は、コンピュータ105 の異なるシステム構成
(configuration )を示している。各ControlSetnnn は
不揮発性の記憶装置に記憶されていることが好ましい。
クローン(clone )204 は、システム・ブートを試みる
ために今回使用されるControlSetnnn のコピーである。
このコピーは、この今回使用されるコントロール・セッ
トへの変化が起こる以前に、ブート・プロセスの初期の
段階に作成される。クローン204 は、好ましくは、揮発
性メモリに記憶される。
【0020】各ControlSetnnn キーは、Control サブキ
ー206 (図3に詳細に示す)およびServicesサブキー20
7 (図4および図5に詳細に示す)の2つのサブキーを
備えている。Servicesサブキー207 は、コンピュータ10
5 のブート・プロセスによって、実行のためにロードさ
れ、セットされることが可能なすべての構成要素を列挙
したものである。図4に列挙された各サブキーの名前
は、コンピュータ・システム100 にインストールするた
めの異なるデバイス・ドライバを示している。1つのデ
バイス・ドライバは、コンピュータ・システム100 がデ
バイスと通信するためのソフトウェア・コンポーネント
である。例えば、プリンタ・ドライバは、コンピュータ
のデータを、プリンタ(図示略)が理解できる形式に変
換するデバイス・ドライバである。このプリンタは、入
出力装置125 を介してコンピュータ・システム100 に接
続される。当業者ならば、コンピュータ・システムが異
なれば、このServicesサブキー207 の下にリストされる
構成要素も異なったものとなることを理解するであろ
う。同様にして、コンピュータ・システムが異なれば、
図4に示すバリュー・エントリにも異なった値が割り当
てられるであろう。
【0021】Control サブキー206 は、コンピュータ10
5 をブートするのに必要な様々な値の全てを保持する。
例えば、Control サブキー206 のバリュー・エントリse
rvice-group-order 301 (図3)は、コンピュータ・シ
ステム100 によって用いられるデバイス・ドライバを起
動する順番を示している。
【0022】後に詳述するように、ControlSetnnn キー
は、クローン204 とともに、コンピュータが、使用不可
能なシステム構成データによって始動できなくなること
を防止する。使用不可能なシステム構成データが、シス
テムの始動を最初に妨げたときに、この発明は、Select
キー205 (後に詳述する)を検索し、コンピュータ105
のブートに成功したときに使用された最後(直前)のコ
ントロール・セットを取り出してくる。そして、この発
明は、システムのブート手続きを完了させるために、取
り出されたコントロール・セットを使用する。
【0023】Selectキー205 は、コントロール・セット
についての情報を保持している。Selectキー205 は、好
ましくは、バリュー・エントリCurrent 208 、Default
209、LastKnownGood 210 、Failed 211、およびAutoSel
ect 212(図2参照)を含んでいる。Current 208 は、
コンピュータ105 が現在ブートを行っているコントロー
ル・セット(すなわち、Current コントロール・セット
208 )を表すデータ・バリュー(値)を含んでいる。De
fault 209 は、デフォルトのコントロール・セット(す
なわち、Default コントロール・セット209 )を表すデ
ータ・バリューを含んでいる。LastKnownGood 210 は、
コンピュータ105 のブートに最後に成功したときのデー
タ・バリューを含むコントロール・セット(すなわち、
LastKnownGood コントロール・セット210 )を示すデー
タ・バリューを含んでいる。Failed 211は、もし設定さ
れていれば、LastKnownGood コントロール・セット210
が最後に使用されたときに、失敗したコントロール・セ
ット(すなわち、Failedコントロール・セット211 )を
表す。AutoSelect 212は、LastKnownGood ユーザ・イン
タフェース・メニューが表示されるかどうかを制御する
データ・バリューを含んでいる。LastKnownGood ユーザ
・インタフェース・メニューは、コンピュータ105 をLa
stKnownGood コントロール・セット210 からブートする
か、Defaultコントロール・セット209 によってブート
するかを、ユーザに選択させるためのメニューである。
【0024】Current コントロール・セット208 、Defa
ult コントロール・セット209 、LastKnownGood コント
ロール・セット210 、またはFailedコントロール・セッ
ト211 を検索するために、オペレーティング・システム
101 は、(1) バリュー・エントリDefault 209 、Curren
t 208 、Failed 211、またはLastKnownGood 210 のバリ
ュー・エントリにそれぞれ記憶されているデータ・バリ
ューを検索し、(2) このデータ・バリューを、零で満た
された3つの数字からなる文字列としてフォーマットし
(例えば、フォーマットにより001となる)、(3) 選
択すべきコントロール・セットの名前(例えば、Contro
lSet001 )になるように、この3つの数字からなる文字
列を文字列“ControlSet”の後ろに追加する。
【0025】レジストリ107 のバリュー・エントリLast
KnownGood 210 によって示されるコントロール・セット
を用いてコンピュータ105 をブートするために、好まし
いオペレーティング・システム101 のコンポーネント同
士がどのように相互作用するかを議論することは、この
発明の方法およびシステムを例証するのに役立つ。
【0026】[処理の概要]コンピュータ105 のブート
要求が、ユーザから入出力装置125 を介して入力される
と、これに応じて、コンピュータ105 は、オペレーティ
ング・システム101のシステム・ブート・プログラム109
を実行し、コンピュータ105 のシステム・ブート手続
を管理する。このシステム・ブート・プログラム109
は、中央処理装置(CPU)127 で実行されるとき、コ
ントロール・セット選択プログラム113を起動する。こ
のコントロール・セット選択プログラム113 は、コンピ
ュータ105 をブートするために用いるシステム構成デー
タのセット(すなわち、コントロール・セット)の選択
を行うものである。コントロール・セット選択プログラ
ム113 は、レジストリ107 のDefault コントロール・セ
ット209 またはLastKnownGood コントロール・セット21
0 のいずれかを選択する。そして、システム・ブート・
プログラム109 は、レジストリ初期化プログラム111 を
起動する。このレジストリ初期化プログラム111 は、C
PU127 で実行されるとき、コンピュータ105 のシステ
ム構成データを検索し、検索されたシステム構成データ
をレジストリ107 に記憶する。次に、システム・ブート
・プログラム109 は、デバイス・ドライバ・ロード・プ
ログラム121 を起動する。このプログラム121 は、CP
U127で実行されるとき、選択されたコントロール・セ
ットに列挙されているデバイス・ドライバのセットをロ
ードし、初期化しようと試みる。図1は、デバイス・ド
ライバ129 がコンピュータ・メモリ103 にロードされた
後のシステム101 の状態を示している。デバイス・ドラ
イバのいずれかがロードまたは初期化に失敗したなら
ば、デバイス・ドライバ・ロード・プログラム121 は、
現在実行中のシステム・ブート手続が、その失敗にも関
わらず、デバイス・ドライバを正しく初期化し続けるべ
きかどうか、または新たなシステム・ブート手続がレジ
ストリ107 のLastKnownGood コントロール・セット210
を用いて開始されるべきかどうかを決定する。
【0027】LastKnownGood コントロール・セット210
を用いてコンピュータ105 を再ブートする決定がなされ
た場合には、システム・ブート手続は、LastKnownGood
コンピュータ・セット210 に記憶されているシステム構
成データを用いて、再始動される。各コントロール・セ
ットを用いて、コンピュータ105 のブートに成功する
と、システム・ブート・プログラム109 は、レジストリ
更新プログラム123 を起動する。Default コントロール
・セット209 からのブートが成功した場合には、これに
対応して、レジストリ更新プログラム123 は、コンピュ
ータ105 のブートに成功したDefault コントロール・セ
ット209 と等価な新しいLastKnownGood コントロール・
セット210 を作成する。LastKnownGood コントロール・
セット210を用いてコンピュータ105 のブートに成功し
た場合には、これに対応して、レジストリ更新プログラ
ム123 は、Default コントロール・セット209 を、シス
テムのブートに成功したCurrent コントロール・セット
208 と等しくなるようにセットする。また、レジストリ
更新プログラム123 は、コンピュータ105 のブートに成
功したCurrent コントロール・セット208 と等価な新し
いLastKnownGood コントロール・セット210 を生成す
る。これにより、Default コントロール・セット209 内
のシステム構成データがたとえ使用不可能となった後で
も、この発明はコンピュータ105 のブートを確実に成功
させることができる。
【0028】[流れ図]図6は、コンピュータ105 のシ
ステム・ブート手続を制御するシステム・ブート処理の
流れ図である。このシステム・ブート処理は、好ましく
は、システム・ブート・プログラム109 によって実行さ
れる。ステップ601 において、システム・ブート処理
は、コントロール・セット選択処理を呼び出す。このコ
ントロール・セット選択処理は、コンピュータ105 のブ
ートに用いられるシステム構成データのセット(すなわ
ち、コントロール・セット)の選択を行うものである。
コントロール・セット選択処理は、レジストリ107 のDe
fault コントロール・セット209 またはLastKnownGood
コントロール・セット210 のいずれかを選択する。コン
トロール・セット選択処理は、後に詳述され、また図7
に示されている。ステップ603 では、システム・ブート
処理は、レジストリ初期化処理を呼び出す。レジストリ
初期化処理は、コンピュータ105 のシステム構成データ
を検索し、この検索されたシステム構成データをレジス
トリ107 に記憶する。記憶されたシステム構成データ
は、コンピュータ105 をブートするのに用いられる。レ
ジストリ初期化処理は、後に詳述され、図8に示されて
いる。適切なコントロール・セットが一度選択され、レ
ジストリ107 が一旦初期化されると、ステップ605 にお
いて、システム・ブート処理は、デバイス・ドライバ・
ロード処理を呼び出す。デバイス・ドライバ・ロード処
理は、選択されたコントロール・セット内に列挙されて
いるデバイス・ドライバのセットをコンピュータ・メモ
リ103 にロードし、初期化する。デバイス・ドライバの
いずれかが、ロードに失敗または初期化に失敗した場合
には、デバイス・ドライバ・ロード処理は、現在実行中
のシステム・ブート手続が、その失敗にも関わらず、デ
バイス・ドライバを正しくロードし、初期化し続けるべ
きかどうか、新しいシステム・ブート手続が、レジスト
リ107 のLastKnownGood コントロール・セット210 を用
いて始動されるべきかどうかを決定する。デバイス・ド
ライバ・ロード処理は、後に詳述され、図9に示されて
いる。
【0029】いずれかのコントロール・セットを用いて
コンピュータ105 のブートに成功すると、システム・ブ
ート処理は、ステップ607 で、レジストリ更新処理を実
行する。レジストリ更新処理は、LastKnownGood コント
ロール・セット210 を用いてコンピュータ105 のブート
に成功したことに対応して、Default コントロール・セ
ット209 を、システムのブートに成功したCurrent コン
トロール・セット208と等しくなるようにセットし、コ
ンピュータ105 をブートするのに成功したCurrent コン
トロール・セットと等しい新たなLastKnownGood コント
ロール・セット210 を生成する。レジストリ更新処理
は、Default コントロール・セット209 からのコンピュ
ータ105 のブートの成功に対応して、コンピュータ105
のブートに成功したCurrent コントロール・セット208
と等しい新たなLastKnownGood コントロール・セット21
0 を生成する。これにより、たとえDefault コントロー
ル・セット209 のあるシステム構成データが使用できな
くなった後であっても、この発明は、コンピュータ105
のブートの成功を確実にする。ステップ609 で、システ
ム・ブート処理はその処理を終了する。しかしながら、
システム・ブート処理とは関係のないコンピュータ105
の処理は続行される。
【0030】図7は、コントロール・セット選択処理の
流れ図である。コントロール・セット選択処理は、コン
ピュータ105 をブートするのに用いられるシステム構成
データのセット(すなわち、コントロール・セット)の
選択を行うものである。コントロール・セット選択処理
は、レジストリ107 のDefault コントロール・セット20
9 またはLastKnownGood コントロール・セット210 のい
ずれかを選択する。コントロール・セット選択処理は、
オペレーティング・システム101 のコントロール・セッ
ト選択プログラム113 によって実行されることが好まし
い。
【0031】ステップ701 において、コントロール・セ
ット選択処理は、変数UseLastKnownGoodを値False にセ
ットする。レジストリ107 のLastKnownGood コントロー
ル・セット210 がコンピュータ105 をブートするために
使用されるときには、変数UseLastKnownGoodは、値True
にセットされる。レジストリ107 のDefault コントロー
ル・セット209 がコンピュータ105 をブートするために
使用されるときには、変数UseLastKnownGoodは、値Fals
e にセットされる。ステップ703 では、コントロール・
セット選択処理は、LastKnownGood 環境変数を検索す
る。コンピュータ105 をブートする直前の試みが、レジ
ストリ107 のDefault コントロール・セット209 を用い
て失敗していたときには、LastKnownGood 環境変数は、
Trueにセットされている。それ以外の場合には、LastKn
ownGood 環境変数は、False にセットされている。Last
KnownGood 環境変数は、不揮発性の記憶媒体に記憶され
ていることが好ましい。
【0032】ステップ705 では、コントロール・セット
選択処理は、コンピュータ105 のユーザがブレークイン
・キーを入力したかどうかを判定する。ブレークイン・
キーは、ユーザがLastKnownGood ユーザ・インタフェー
ス・メニューを見たいという意思を方法ChooseControlS
etに示すものである。LastKnownGood ユーザ・インタフ
ェース・メニューは、コンピュータ105 をLastKnownGoo
d コントロール・セットからブートするのか、Default
コントロール・セットからブートするのかの選択を、コ
ンピュータ105 のユーザに行わせるものである。好まし
い実施例においては、このブレークイン・キーは、スペ
ース・バーであり、このスペース・バーを押し続けるこ
とにより起動される。このコントロール・セット選択処
理は、ユーザがブレークイン・キーを入力したと判定し
たならば、ステップ706 で、LastKnownGood ユーザ・イ
ンタフェース・メニューを表示する。LastKnownGood ユ
ーザ・インタフェース・メニューは、図15に示されてい
る。LastKnownGood ユーザ・インタフェース・メニュー
は、コンピュータ105 のユーザに、コンピュータ105 を
ブートするためのオプションを提供する。図15に示すLa
stKnownGood ユーザ・インタフェース・メニューを用い
ることにより、ユーザは、レジストリ107 のDefault コ
ントロール・セット209 またはレジストリ107 のLastKn
ownGood コントロール・セット210 のいずれを用いてコ
ンピュータ105 をブートするのかを選択することができ
る。ステップ706 の処理が終了すると、ステップ707 に
おいて、コントロール・セット選択処理は、LastKnownG
ood メニュー管理処理を呼び出す。LastKnownGood メニ
ュー管理処理は、LastKnownGood メニュー・オプション
に応じてユーザから入力されたデータ入力を処理するも
のである。LastKnownGood メニュー管理処理は、後に詳
述され、図12に示されている。ステップ707 の処理が終
了すると、コントロール・セット選択処理は、ステップ
709 で、変数UseLastKnownGoodが値Trueに等しいかどう
かを判定する。変数UseLastKnownGoodが値Trueに等しい
場合には、ステップ711 で、コントロール・セット選択
処理は、レジストリ107 のバリュー・エントリCurrent
208 を、レジストリ107 のバリュー・エントリLastKnow
nGood 210 によって示されるコントロール・セットと等
しくなるようにセットする。これにより、バリュー・エ
ントリLastKnownGood 210 によって示されるコントロー
ル・セットが、システムをブートするために使用され
る。ステップ711 の処理が終了すると、コントロール・
セット選択処理は、ステップ713 において、図6に示す
システム・ブート処理に処理の制御を返す。
【0033】ステップ709 に戻って、変数UseLastKnown
Goodが値False に等しい場合には、コントロール・セッ
ト選択処理は、ステップ715 において、バリュー・エン
トリCurrent 208 を、バリュー・エントリDefault 209
と等しくなるようにセットする。ステップ715 の処理が
終了すると、コントロール・セット選択処理は、ステッ
プ713 において、図6に示すシステム・ブート処理に処
理の制御を返す。
【0034】ステップ705 に戻って、ユーザが、ブレー
クイン・キーを入力しなかった場合には、ステップ717
において、コントロール・セット選択処理は、LastKnow
nGood 環境変数が値Trueに等しいかどうかを判定する。
LastKnownGood 環境変数が値False に等しい場合には、
処理は、ステップ709 、711 、713 および715 (上述)
に進む。
【0035】ステップ717 に戻って、LastKnownGood 環
境変数が値Trueに等しい場合には、ステップ719 におい
て、このコントロール・セット選択処理は、レジストリ
107のバリュー・エントリAutoSelect 212が値Trueにセ
ットされているかどうかを判定する。バリュー・エント
リAutoSelect 212は、LastKnownGood ユーザ・インタフ
ェース・メニューが表示されるかどうかを制御する。Au
toSelect 212が値False に等しい場合には、ステップ70
6 、707 、708 、711 、713 および715 が上述したよう
に実行される。
【0036】バリュー・エントリAutoSelect 212が値Tr
ueに等しい場合には、ステップ721において、変数UseLa
stKnownGoodが値Trueにセットされる。ステップ721 の
処理が終了した後、ステップ709 〜715 が上述したよう
に実行される。
【0037】図8は、レジストリ初期化処理の流れ図で
ある。このレジストリ初期化処理は、コンピュータ105
のシステム構成データ(configuration data)を得、得
られたシステム構成データをレジストリ107 に記憶する
ものである。記憶されたシステム構成データは、コンピ
ュータ105 のブートを成功させるために、この発明によ
って使用される。レジストリ初期化処理は、オペレーテ
ィング・システム101のレジストリ初期化プログラム111
によって実行されることが好ましい。
【0038】ステップ801 において、レジストリ初期化
処理は、コンピュータ105 のためのシステム構成データ
を得、このシステム構成をレジストリ107 に記憶する。
ソフトウェア・システム構成データ(software configu
ration data )は、Systemハイブ・ファイル(System h
ive file)から読み出され、ハードウェア・システム構
成データ(hardware configuration data )は、計算に
よってシステムから得られる。記憶されたシステム構成
データは、コンピュータ105 をブートするために、後に
使用される。ステップ803 では、レジストリ初期化処理
は、レジストリ107 のバリュー・エントリCurrent 208
によって示されるコントロール・セットへのシンボリッ
ク・リンクを生成する。シンボリック・リンクは、定義
された名前をもつ特定のキー(“CurrentControlSet
”)へのすべての参照を、実際には、異なった名前を
もつ異なったキー(“ControlSetnnn ”)への参照にす
るための手段である。ステップ805 では、レジストリ初
期化処理は、シンボリック・リンクを初期化する。これ
は、キー“CurrentControlSet ”から、システムのブー
トに使用されるControlSetnnn コントロール・セットの
ルートのキーへ向かうリンクを生成することにより行わ
れる。ステップ807 では、レジストリ初期化処理は、Cu
rrent コントロール・セット208 をClone 204 にコピー
することにより、Clone 204 を生成する。ステップ807
の処理が終了すると、レジストリ初期化処理は、ステッ
プ809 で、システム・ブート処理(図6)に処理の制御
を返す。
【0039】図9は、デバイス・ドライバ・ロード処理
の流れ図である。デバイス・ドライバ・ロード処理は、
コンピュータ105 の現在のブート処理に使用されている
コントロール・セット内に列挙されたデバイス・ドライ
バのセットをコンピュータ・メモリ103 にロードし、初
期化するものである。デバイス・ドライバのいずれか
が、コンピュータ・メモリ103 へのロードに失敗する
か、または初期化に失敗すると、現在のブート処理を続
行するか、またはLastKnownGood コントロール・セット
を用いてシステムを再ブートするかの決定がなされる。
デバイス・ドライバ・ロード処理は、オペレーティング
・システム101 のデバイス・ドライバ・ロード・プログ
ラム121 によって実行されることが好ましい。
【0040】ステップ901 では、デバイス・ドライバ・
ロード処理が、バリュー・エントリCurrent 208 によっ
て示されるコントロール・セットから、デバイス・ドラ
イバのリストを検索し、これをコンピュータ・メモリ10
3 にロードし、初期化する。ステップ903 では、このデ
バイス・ドライバ・ロード処理は、未処理のデバイス・
ドライバが残っているかどうかを判定する。未処理のデ
バイス・ドライバが残っているならば、ステップ905
で、デバイス・ドライバ・ロード処理は、最初の未処理
のデバイス・ドライバをコンピュータ・メモリ103 にロ
ードする。ステップ907 において、デバイス・ドライバ
・ロード処理は、デバイス・ドライバのコンピュータ・
メモリ103 へのロードが失敗したかどうかを判定する。
デバイス・ドライバがコンピュータ・メモリ103 に正し
くロードされたならば、ステップ909 において、このデ
バイス・ドライバ・ロード処理は、デバイス・ドライバ
初期化処理を呼び出す。デバイス・ドライバ初期化処理
は、コンピュータ・メモリ103 にロードされたデバイス
・ドライバの初期化を行うものである。デバイス・ドラ
イバ初期化処理は、後に詳述され、図10に示される。ス
テップ909 の処理が終了すると、処理は、ステップ903
から繰り返される。
【0041】ステップ907 に戻って、デバイス・ドライ
バをコンピュータ・メモリ103 にロードするのに失敗し
たならば、ステップ911 において、デバイス・ドライバ
・ロード処理は、プレス・オン処理(Press On)を呼び
出す。このプレス・オン処理は、現在進行中のシステム
・ブート手続が、その失敗にも関わらず、デバイス・ド
ライバを正しくロードし、初期化することを続行すべき
かどうか、または新たなシステム・ブート手続が、レジ
ストリ107 のLastKnownGood コントロール・セット210
を用いて開始されるべきかどうかを決定する。プレス・
オン処理は後に詳細され、図13に示されている。ステッ
プ911 の処理の終了後、ステップ913 において、デバイ
ス・ドライバ・ロード処理は、プレス・オン処理から返
される変数PressOn が値Trueに等しいかどうかを判定す
る。変数PressOn が値False に等しい場合には、ステッ
プ915 において、デバイス・ドライバ・ロード処理は、
システムを再ブートする。一方、変数PressOn が値True
にセットされている場合には、デバイス・ドライバ・ロ
ード処理は、ステップ909 において、デバイス・ドライ
バ初期化処理を呼び出し、コンピュータ・メモリ103 に
ロードされたデバイス・ドライバの初期化を行う。デバ
イス・ドライバ初期化処理は、後に詳述され、図10に示
される。ステップ909 の処理が終了すると、処理は、ス
テップ903 から繰り返される。
【0042】ステップ903 において、すべてのデバイス
・ドライバが処理されたと判定された場合には、デバイ
ス・ドライバ・ロード処理は、ステップ917 において、
処理の制御をシステム・ブート処理(図6)に返す。
【0043】図10は、デバイス・ドライバ初期化処理の
流れ図である。デバイス・ドライバ初期化処理は、デバ
イス・ドライバ・ロード処理(図9)によってコンピュ
ータ・メモリ103 にあらかじめロードされているデバイ
ス・ドライバを初期化するものである。デバイス・ドラ
イバ初期化処理は、オペレーティング・システム101の
デバイス・ドライバ初期化プログラム139 によって実行
されることが好ましい。
【0044】ステップ1001において、デバイス・ドライ
バ初期化処理は、コンピュータ・メモリ103 にあらかじ
めロードされているデバイス・ドライバを初期化する。
ステップ1003では、デバイス・ドライバ初期化処理は、
ロードされたデバイス・ドライバを正しく初期化するの
に失敗したかどうかを判定する。デバイス・ドライバが
正しく初期化されたならば、ステップ1005において、デ
バイス・ドライバ初期化処理は、デバイス・ドライバ・
ロード処理(図9)に処理の制御を返す。
【0045】ステップ1003に戻って、デバイス・ドライ
バを正しく初期化するのに失敗した場合には、ステップ
1007において、デバイス・ドライバ初期化処理は、プレ
ス・オン処理(Press On)を呼び出して、ブート処理を
続けるかどうかを判定する。プレス・オン処理は後に詳
述され、図13に示されている。
【0046】ステップ1007の処理が終了すると、デバイ
ス・ドライバ初期化処理は、ステップ1009において、プ
レス・オン処理から返された変数PressOn が値Trueに等
しいかどうかを判定する。変数PressOn が値False に等
しい場合には、デバイス・ドライバ初期化処理は、ステ
ップ1011において、システムを再ブートする。
【0047】ステップ1009に戻って、プレス・オン処理
から返された変数PressOn が値Trueに等しいならば、ス
テップ1005において、デバイス・ドライバ初期化処理
は、図9に示すデバイス・ドライバ・ロード処理へ処理
の制御を返す。
【0048】図11は、レジストリ更新処理の流れ図であ
る。レジストリ更新処理は、LastKnownGood コントロー
ル・セット210 を用いてコンピュータ105 のブートに成
功したことに応じて、Default コントロール・セット20
9 を、システムのブートに成功したCurrent コントロー
ル・セット208 に設定し、コンピュータ105 のブートに
成功したDefault コントロール・セット209 と等価な新
たなLastKnownGood コントロール・セット210 を生成す
る。Default コントロール・セット209 からのブートに
成功したことに応じて、レジストリ更新処理は、Curren
t コントロール・セット208 と等価な新たなLastKnownG
ood コントロール・セット210 を生成する。これによ
り、たとえDefault コントロール・セット209 のシステ
ム構成データが使用不可能となった後であっても、この
発明は、コンピュータ105 のブートの成功を確実にす
る。
【0049】ステップ1101では、レジストリ更新処理
は、LastKnownGood 更新処理を呼び出す。このLastKnow
nGood 更新処理は、レジストリ107 のバリュー・エント
リLastKnownGood 210 が、コンピュータ105 のブートに
最後に成功したレジストリ107のコントロール・セット
を指し示すように更新する。LastKnownGood 更新処理
は、後の詳述され、図14に示される。ステップ1101の処
理が終了すると、レジストリ更新処理は、ステップ1103
において、コンピュータ105 がレジストリ107 のバリュ
ー・エントリLastKnownGood 210 によって示されるコン
トロール・セットからのブートに成功したかどうかを判
定する。好ましくは、基準となるデフォルト・セットに
基づいて、システム・ブートが成功したか不成功に終わ
ったかが判定される。例えば、オペレーティング・シス
テムが検出することのできない問題(例えば、間違った
ビデオ・モードがセットされているために、スクリーン
が読みだせない)が発生した場合には、オペレーティン
グ・システム101 にはシステムが正しくブートしたよう
に見えても、実際はブートに失敗していたということが
ある。この場合に、現在のブートは、成功したとはみな
されない。好ましい実施例においては、2つの基準に合
致したならば、システム・ブートが成功したとみなされ
る。第1に、システムが該当するすべてのデバイス・ド
ライバを始動させるように試みなければならない。いず
れかのドライバが始動に失敗し、かつそのErrorControl
値が、SevereまたはCriticalであるならば、そのブート
は、うまくいったとは言えないであろう。すべてのデバ
イス・ドライバは、SystemハイブのServicesサブキー20
7 の下にある、名前をもったノードを備え、かつすべて
のドライバのノードは、バリュー・エントリErrorContr
ol 401(図4参照)を備えている。ErrorControlは、
(1)Ignore、(2) Normal、(3) Severe、および(4) Crit
icalの4つの値のうちの一つを持つ。値Ignoreは、現在
のシステム・ブートを続行すべきことを示し、たとえド
ライバが初期化に失敗しても、ユーザには、その失敗に
ついて、ポップ・アップ・メッセージの形で通知されな
いことを示す。値Normalは、現在のシステム・ブートが
続行されるべきことを示す。しかし、好ましい実施例に
おいては、システム・ブート中にエラーが発生したこと
を示すメッセージが、ユーザに表示される。値Severe
は、システムが現在、LastKnownGoodコントロール・セ
ット210 からブートされていないならば、システムがLa
stKnownGood コントロール・セット210 を用いて再ブー
トされるべきであること示す。システムが現在、LastKn
ownGood コントロール・セット210 からブートされてい
る場合には、LastKnownGood コントロール・セット210
からの現在のブートが続行される。値Criticalは、シス
テム・ブートが、バリュー・エントリDefault 209 によ
って示されるコントロール・セットから現在行われてい
るならば、システムがLastKnownGood コントロール・セ
ット210 を用いて再ブートされるべきことを示す。ま
た、値Criticalは、システム・ブートが、LastKnownGoo
d コントロール・セット210 から現在行われているなら
ば、システム・ブートが失敗であることを示す。
【0050】第2に、少なくとも一人のユーザは、シス
テムへのログオンに成功しなければならない。上述した
基準セットはデフォルトの基準セットである。しかし、
好ましい実施例においては、ユーザはブート成功のため
の、上述したデフォルトの基準セットとは異なる基準セ
ットを定義することができる。
【0051】コンピュータ105 が、LastKnownGood コン
トロール・セットからのブートに成功した場合には、ス
テップ1105において、レジストリ更新処理は、レジスト
リ107 のバリュー・エントリFailed 211によって現在示
されているコントロール・セットを消去する。ステップ
1107において、このレジストリ更新処理は、バリュー・
エントリFailed 211を、バリュー・エントリDefault 20
9 に含まれているデータ・バリューと等しい値にセット
する。ステップ1109において、レジストリ更新処理は、
バリュー・エントリDefault 209 を、レジストリ107 の
バリュー・エントリLastKnownGood 210 のデータ・バリ
ューと等しい値にセットする。ステップ1111では、この
レジストリ更新処理は、システム・ブート処理(図6)
に処理の制御を返す。
【0052】ステップ1103に戻って、コンピュータ105
がバリュー・エントリLastKnownGood 210 によって示さ
れるコントロール・セット以外のコントロール・セット
からのブートに成功したならば、レジストリ更新処理
は、ステップ1111において、システム・ブート処理(図
6)に処理の制御を返す。
【0053】図12は、LastKnownGood メニュー管理処理
の流れ図である。LastKnownGood メニュー管理処理は、
LastKnownGood ユーザ・インタフェース・メニューに表
されたオプションに対応して入力されたユーザのリクエ
ストを処理するものである。LastKnownGood メニュー管
理処理は、図1のLastKnownGood メニュー管理プログラ
ム133 によって実行されることが好ましい。ステップ12
01では、LastKnownGood メニュー管理処理は、図15に示
すLastKnownGood ユーザ・インタフェース・メニューを
表示する。ステップ1203では、この管理処理は、コンピ
ュータ105 のユーザが、レジストリ107 のバリュー・エ
ントリLastKnownGood 210 によって参照されるコントロ
ール・セットからコンピュータ105 をブートすることを
選択し、LastKnownGood メニューにおいて、ユーザがこ
の選択に対応する要求を入力したかどうかを判定する。
ユーザが、バリュー・エントリLastKnownGood 210 によ
って参照されるコントロール・セットからコンピュータ
105 をブートする要求を入力したならば、ステップ1205
において、この管理処理は、変数UseLastKnownGoodを値
Trueにセットする。ステップ1207では、このLastKnownG
ood メニュー管理処理は、コントロール・セット選択処
理(図7)に処理の制御を返す。
【0054】ステップ1203に戻って、ユーザがレジスト
リ107 のバリュー・エントリDefault 209 によって参照
されるコントロール・セットからのシステムのブートを
選択し、LastKnownGood メニューにおいて、この選択に
対応する要求を入力したならば、ステップ1209におい
て、この管理処理は、変数UseLastKnownGoodを値False
にセットする。ステップ1209の処理が終了すると、Last
KnownGood メニュー管理処理は、ステップ1207におい
て、コントロール・セット選択処理(図7)に処理の制
御を返す。
【0055】図13は、プレス・オン処理(Press On)の
流れ図である。このプレス・オン処理は、現在実行され
ているシステム・ブート手続が、少なくとも一つのデバ
イス・ドライバのロードもしくは初期化に失敗したにも
関わらず、このシステム・ブート手続を続行すべきかど
うか、またはレジストリ107 のLastKnownGood コントロ
ール・セット210 を用いて、新しいシステム・ブート手
続を開始すべきかどうかを決定するものである。プレス
・オン処理は、各デバイス・ドライバのバリュー・エン
トリErrorControl 401(図4)およびLastKnownGood 環
境変数の双方をテストすることにより、現在のシステム
・ブート手続を続行すべきかどうかを決定する。ドライ
バのErrorControlが、IgnoreまたはNormalであるなら
ば、ブート処理は続けられる。ドライバのErrorControl
がSevereであり、かつシステムがDefault コントロール
・セット209 からブートしているならば、現在のブート
処理は不成功とされ、システムは、ブートをリトライす
るために、LastKnownGood コントロール・セットを用い
て再ブートされる。ErrorControlがSevereであり、かつ
システムがLastKnownGood コントロール・セット210 か
らブートしているならば、ブート処理は続けられる。Er
rorControlがCriticalであり、かつシステムがDefault
コントロール・セット209 からブートしているならば、
ブート処理は不成功とされ、システムは、LastKnownGoo
d コントロール・セットに戻り、次のブートが行われ
る。ErrorControlがCriticalであり、かつシステムがLa
stKnownGood コントロール・セット210 からブートして
いるならば、ブートは完全に失敗する。ドライバのErro
rControlバリュー・エントリは、ドライバがインストー
ルされたときにセットされるが、システムが実行状態で
ある間いつでも、プログラムにより変更することができ
る。
【0056】LastKnownGood 環境変数は、システムがレ
ジストリ107 のDefault コントロール・セット209 から
のブートに失敗し、レジストリ107 のLastKnownGood コ
ントロール・セット210 を用いて再ブートされたことを
示す。LastKnownGood 環境変数は、不揮発性メモリに記
憶されることが好ましい。プレス・オン処理は、図1の
プレス・オン・プログラム135 によって実行されること
が好ましい。
【0057】ステップ1301において、プレス・オン処理
は、バリュー・エントリErrorControlが、値Ignoreまた
はNormalに等しいかどうかを判定する。バリュー・エン
トリErrorControlが値IgnoreまたはNormalに等しいなら
ば、ステップ1303において、プレス・オン処理は、変数
PressOn を値Trueにセットする。ステップ1303の処理が
終了すると、プレス・オン処理は、その呼び出し元(す
なわち、図9のデバイス・ドライバ・ロード処理または
図10のデバイス・ドライバ初期化処理)に戻る。
【0058】ステップ1301に戻って、バリュー・エント
リErrorControlが値NormalまたはIgnoreと等しくないな
らば、ステップ1307において、プレス・オン処理は、バ
リュー・エントリErrorControlが値Severeに等しいかど
うかを判定する。バリュー・エントリErrorControlが値
Severeに等しいならば、ステップ1309において、プレス
・オン処理は、LastKnownGood 環境変数が値Trueと等し
いかどうかを判定する。LastKnownGood 環境変数が値Tr
ueに等しいならば、ステップ1303において、プレス・オ
ン処理は、変数PressOn を値Trueにセットする。ステッ
プ1305において、プレス・オン処理はその呼び出し元に
戻る。
【0059】ステップ1309に戻って、LastKnownGood 環
境変数が値False に等しいならば、ステップ1311におい
て、プレス・オン処理は、LastKnownGood 環境変数を値
Trueにセットする。ステップ1313において、プレス・オ
ン処理は、変数PressOn を値False にセットする。ステ
ップ1313の処理が終了すると、プレス・オン処理は、ス
テップ1305において、その呼び出し元に戻る。
【0060】ステップ1307に戻って、バリュー・エント
リErrorControlが値Severeに等しくないならば、ステッ
プ1315において、プレス・オン処理は、バリュー・エン
トリErrorControlが値Criticalと等しいかどうかを判定
する。バリュー・エントリErrorControlが値Criticalと
等しくないならば、ステップ1303において、プレス・オ
ン処理は、変数PressOn を値Trueにセットする。ステッ
プ1303の処理が終了すると、プレス・オン処理は、ステ
ップ1305において、その呼び出し元に戻る。
【0061】ステップ1315に戻って、バリュー・エント
リErrorControlが値Criticalと等しいならば、ステップ
1317において、プレス・オン処理は、LastKnownGood 環
境変数が値Trueと等しいかどうかを判定する。LastKnow
nGood 環境変数が値False と等しいならば、ステップ13
11において、プレス・オン処理は、LastKnownGood 環境
変数を値Trueにセットする。ステップ1313において、プ
レス・オン処理は、変数PressOn を値False にセットす
る。ステップ1313の処理が終了すると、プレス・オン処
理は、ステップ1305において、その呼び出し元に戻る。
【0062】ステップ1317に戻って、LastKnownGood 環
境変数が値Trueと等しいならば、ステップ1319におい
て、システムはクラッシュする。
【0063】図14は、LastKnownGood 更新処理の流れ図
である。この更新処理の最初のタスクは、レジストリ10
7 のCurrent コントロール・セット208 を用いたシステ
ム・ブートが成功した後に、LastKnownGood バリュー・
エントリを更新するために、バリュー・エントリLastKn
ownGood 210 を、クローン(clone )204 のコピーを指
し示すようにリセットすることである。LastKnownGood
更新処理は、図1のLastKnownGood 更新プログラムによ
って実行されることが好ましい。
【0064】ステップ1041において、LastKnownGood 更
新処理は、クローン204 を揮発性メモリから不揮発性メ
モリコピーする。ステップ1403では、LastKnownGood 更
新処理は、レジストリ107 をフラッシュ(flush )す
る。レジストリ107 のフラッシュにより、以前に行われ
たフラッシュ以降にハイブ(例えば図2のSystemハイ
ブ)になされたすべての変更が、ディスクに強制的に書
き込まれる。このフラッシュは、全ての変更が起こる場
合であっても、変更が全く起こらない場合であっても実
行されることが好ましい。
【0065】ステップ1405において、この更新処理は、
レジストリ107 のバリュー・エントリLastKnownGood 21
0 によって参照されるコントロール・セットを消去す
る。ステップ1407において、この更新処理は、レジスト
リ107 をフラッシュする。ステップ1409では、この更新
処理は、レジストリ107 のバリュー・エントリLastKnow
nGood 210 を、不揮発性メモリに記憶されているクロー
ン(Clone )・コントロール・セットのコピーを参照す
るようにセットする。ステップ1411では、LastKnownGoo
d 更新処理は、処理の制御をレジストリ更新処理(図1
1)に返す。
【0066】当業者ならば、上述したこの発明による方
法を実行するために、他のシステム・アーキテクチャが
使用できることを理解するであろう。他のシステム・ア
ーキテクチャには、複数のコンピュータがファイル・サ
ーバに接続され、コンピュータ・ユーザがデータ通信ネ
ットワークを介してデータのアクセスを共有するネット
ワークも含まれるし、またこのネットワークに限定され
ないシステム・アーキテクチャも含まれる。
【0067】ここで述べたことは、デバイス・ドライバ
に焦点を合わせたものであるが、当業者ならば、ここで
述べた内容の範囲がデバイス・ドライバに限定されるも
のでないし、ファイル・システムおよびユーザ・モード
・プログラム・サービスにも等しく適用されることを理
解するであろう。
【0068】ここでは、この発明を例示するために、特
定の実施例について説明したが、この発明の思想および
範囲内において、様々な変更を行うことができるのはい
うまでもない。
【図面の簡単な説明】
【図1】コンピュータ・システムをブートするこの発明
の実施例のシステム構成を示すブロック図である。
【図2】図1のレジストリのSystemハイブの好ましい木
構造を示す。
【図3】SystemハイブのControl サブキーの好ましい木
構造を示す。
【図4】SystemハイブのServicesサブキーの好ましい木
構造を示す。
【図5】SystemハイブのServicesサブキーの下にあるノ
ードの好ましい構造を示す。
【図6】図1のシステムにおけるシステム・ブート処理
の流れ図である。
【図7】図1のシステムにおけるコントロール・セット
選択処理の流れ図である。
【図8】図1のシステムにおけるレジストリ初期化処理
の流れ図である。
【図9】図1のシステムにおけるデバイス・ドライバ・
ロード処理の流れ図である。
【図10】図1のシステムにおけるデバイス・ドライバ
初期化処理の流れ図である。
【図11】図1のシステムにおけるレジストリ更新処理
の流れ図である。
【図12】図1のシステムにおけるLastKnownGood メニ
ュー管理処理の流れ図である。
【図13】図1のシステムにおけるプレス・オン処理の
流れ図である。
【図14】図1のシステムにおけるLastKnownGood 更新
処理の流れ図である。
【図15】好ましいLastKnownGood ユーザ・インターフ
ェース・メニューのイメージ図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ダン アルヴィン ヒンズリー アメリカ合衆国 ワシントン州 98027 イサカ サウスイースト フォーティ フィフス ストリート 18606 (72)発明者 ジョン ディヴィッド ヴァート アメリカ合衆国 ワシントン州 98105 シアトル セヴンス アベニュー ノ ースイースト 303−4550 (72)発明者 ディヴィッド オットー ホーヴェル アメリカ合衆国 ワシントン州 98052 レッドモンド ノースイースト ワン ハンドレッドアンドシックスティース コート15822 (72)発明者 リタ マン チェー ウォン アメリカ合衆国 ワシントン州 98027 イサカ ワンハンドレッドアンドシッ クスティセヴンス アベニュー サウス イースト 4440 (56)参考文献 特開 昭63−178357(JP,A) 特開 昭63−172338(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/06

Claims (22)

    (57)【特許請求の範囲】
  1. 【請求項1】 コンピュータ・システムをブートする第
    1の試みにおいて使用される第1のシステム構成データ
    ・セット、およびコンピュータ・システムのブートに成
    功した最後のシステム構成データ・セットを格納する第
    2のシステム構成データ・セットを提供するステップ、 上記第1のシステム構成データ・セットからコンピュー
    タ・システムのブートを試みるステップ、ならびに上記
    第1のシステム構成データ・セットを用いてコンピュー
    タ・システムをブートする試みが失敗したことに応じ
    て、上記第2のシステム構成データ・セットからコンピ
    ュータ・システムを自動的にブートするステップ、 を含むコンピュータ・システムのブート方法。
  2. 【請求項2】 上記コンピュータ・システムのブートを
    試みるステップが、システムが定義する基準セットおよ
    びユーザが定義する基準セットの一方に基づいて、ブー
    トが失敗したかどうかを判定するステップを含むもので
    ある、請求項1に記載のコンピュータ・システムのブー
    ト方法。
  3. 【請求項3】 上記第2のシステム構成データ・セット
    を用いたコンピュータ・システムのブートが成功したこ
    とに応じて、上記第1のシステム構成データ・セットが
    上記第2のシステム構成データ・セットに等しくなるよ
    うに、上記第1のシステム構成データ・セットを更新す
    るステップ、を含む請求項1に記載のコンピュータ・シ
    ステムのブート方法。
  4. 【請求項4】 上記コンピュータ・システムのブートを
    試みるステップが、システムが定義する基準セットおよ
    びユーザが定義する基準セットの一方に基づいて、ブー
    トが成功したかどうかを判定するステップを含むもので
    ある、請求項3に記載のコンピュータ・システムのブー
    ト方法。
  5. 【請求項5】 コンピュータ・システムをブートする第
    1の試みにおいて使用される第1のシステム構成データ
    ・セット、およびコンピュータ・システムのブートに成
    功した最後のシステム構成データ・セットを格納する第
    2のシステム構成データ・セットを提供するステップ、 上記第1のシステム構成データ・セットからコンピュー
    タ・システムのブートを試みるステップ、ならびに上記
    第1のシステム構成データ・セットからのブートの成功
    に応じて、上記第2のシステム構成データ・セットが、
    コンピュータ・システムのブートに成功した上記第1の
    システム構成データ・セットと等しくなるように、上記
    第2のシステム構成データ・セットを自動的に更新する
    ステップ、 を含むコンピュータ・システムのブート方法。
  6. 【請求項6】 上記コンピュータ・システムのブートを
    試みるステップが、システムが定義する基準セットおよ
    びユーザが定義する基準セットの一方に基づいて、ブー
    トが成功したかどうかを判定するステップを含むもので
    ある、請求項5に記載のコンピュータ・システムのブー
    ト方法。
  7. 【請求項7】 コンピュータ・システムをブートする第
    1の試みにおいて使用される第1のシステム構成データ
    ・セット、およびコンピュータ・システムのブートに成
    功した最後のシステム構成データ・セットを格納する第
    2のシステム構成データ・セットを提供するステップ、 上記第1のシステム構成データ・セットからコンピュー
    タ・システムのブートを試みるステップ、 上記第1のシステム構成データ・セットを用いてコンピ
    ュータ・システムをブートする試みが失敗であったこと
    を判定するステップ、 コンピュータ・システムが上記第2のシステム構成デー
    タ・セットからブートされるべきであることを示す、コ
    ンピュータ・システムのユーザから入力された入力デー
    タを受け取るステップ、ならびに上記入力データを受け
    取るステップに応じて、上記第2のシステム構成データ
    ・セットからコンピュータ・システムをブートするステ
    ップ、 を含むコンピュータ・システムのブート方法。
  8. 【請求項8】 コンピュータ・システムをブートする第
    1の試みにおいて使用される第1のシステム構成データ
    ・セット、およびコンピュータ・システムのブートに成
    功した最後のシステム構成データ・セットを格納する第
    2のシステム構成データ・セットを含む、コンピュータ
    ・システムをブートするのに必要なすべてのデータを記
    憶するレジストリを提供するステップ、 上記第1のシステム構成データ・セットに格納されたデ
    ータが変更される前に、上記第1のシステム構成データ
    ・セットに格納されたデータと等しいデータを、第3の
    システム構成データ・セットに割り当てるステップ、 上記第1のシステム構成データ・セットからコンピュー
    タ・システムのブートを試みるステップ、 上記第1のシステム構成データ・セットからのコンピュ
    ータ・システムのブートが成功であったことを判定する
    ステップ、ならびに上記第1のシステム構成データ・セ
    ットからのコンピュータ・システムのブートが成功であ
    ったことの判定に応じて、上記第3のシステム構成デー
    タ・セットに格納されたデータと等しいデータを、上記
    第2のシステム構成データ・セットに割り当てるステッ
    プ、 を含むコンピュータ・システムのブート方法。
  9. 【請求項9】 上記コンピュータ・システムのブートを
    試みるステップが、デバイスとの通信をコンピュータ・
    システムに許容するデバイス・ドライバのロードを試み
    るステップ、および上記デバイス・ドライバのロードの
    失敗に基づいて、上記ブートが失敗であったことを判定
    するステップを含むものである、請求項8に記載のコン
    ピュータ・システムのブート方法。
  10. 【請求項10】 上記第1のシステム構成データ・セッ
    トに格納されたデータを変更するステップ、を含む請求
    項8に記載のコンピュータ・システムのブート方法。
  11. 【請求項11】 上記第1のシステム構成データ・セッ
    トからコンピュータ・システムのブートを試みるステッ
    プは、上記変更するステップが上記第1のシステム構成
    データ・セットに誤ったデータを格納したことにより、
    コンピュータ・システムのブートに失敗するステップを
    含むものである、請求項10に記載のコンピュータ・シス
    テムのブート方法。
  12. 【請求項12】 コンピュータ・システムをブートする
    第1の試みにおいて使用される第1のシステム構成デー
    タ・セットを記憶する第1の記憶手段、 コンピュータ・システムのブートに成功した最後のシス
    テム構成データ・セットを格納する第2のシステム構成
    データ・セットを記憶する第2の記憶手段、 上記第1のシステム構成データ・セットからコンピュー
    タ・システムのブートを試みる手段、および上記第1の
    システム構成データ・セットを用いてコンピュータ・シ
    ステムをブートする試みが失敗したことに応じて、上記
    第2のシステム構成データ・セットからコンピュータ・
    システムを自動的にブートする手段、 を備えているコンピュータ・システムのブート装置。
  13. 【請求項13】 上記コンピュータ・システムのブート
    は、システムが定義する基準セットおよびユーザが定義
    する基準セットの一方に基づいて、失敗したとみなされ
    る、請求項12に記載のコンピュータ・システムのブート
    装置。
  14. 【請求項14】 上記第2のシステム構成データ・セッ
    トを用いたコンピュータ・システムのブートが成功した
    ことに応じて、上記コンピュータ・システムのブートに
    成功した上記第2のシステム構成データ・セットを上記
    第1のシステム構成データ・セットとして記憶するため
    に、上記第1の記憶手段を更新する手段、を備えている
    請求項12に記載のコンピュータ・システムのブート装
    置。
  15. 【請求項15】 上記コンピュータ・システムのブート
    は、、システムが定義する基準セットおよびユーザが定
    義する基準セットの一方に基づいて、成功したとみなさ
    れる、請求項14に記載のコンピュータ・システムのブー
    ト装置。
  16. 【請求項16】 コンピュータ・システムをブートする
    第1の試みにおいて使用される第1のシステム構成デー
    タ・セットを記憶する第1の記憶手段、 コンピュータ・システムのブートに成功した最後のシス
    テム構成データ・セットを格納する第2のシステム構成
    データ・セットを記憶する第2の記憶手段、 上記第1のシステム構成データ・セットからコンピュー
    タ・システムのブートを試みる手段、および上記第1の
    システム構成データ・セットからのブートの成功に応じ
    て、上記第2のシステム構成データ・セットが、コンピ
    ュータ・システムのブートに成功した上記第1のシステ
    ム構成データ・セットと等しくなるように、上記第2の
    システム構成データ・セットを自動的に更新する手段、 を備えているコンピュータ・システムのブート装置。
  17. 【請求項17】 上記コンピュータ・システムのブート
    は、システムが定義する基準セットおよびユーザが定義
    する基準セットの一方に基づいて、成功したものとみな
    される、請求項16に記載のコンピュータ・システムのブ
    ート装置。
  18. 【請求項18】 コンピュータ・システムをブートする
    第1の試みにおいて使用される第1のシステム構成デー
    タ・セットを記憶する第1の記憶手段、 コンピュータ・システムのブートに成功した最後のシス
    テム構成データ・セットを格納する第2のシステム構成
    データ・セットを記憶する第2の記憶手段、 上記第1のシステム構成データ・セットからコンピュー
    タ・システムのブートを試みる手段、 上記第1のシステム構成データ・セットを用いてコンピ
    ュータ・システムをブートする試みが失敗であったこと
    を判定する手段、 コンピュータ・システムが上記第2のシステム構成デー
    タ・セットからブートされるべきであることを示す、コ
    ンピュータ・システムのユーザから入力された入力デー
    タを受け取る手段、および上記入力データを受け取る手
    段による入力データの受け取りに応じて、上記第2のシ
    ステム構成データ・セットからコンピュータ・システム
    をブートする手段、 を備えているコンピュータ・システムのブート装置。
  19. 【請求項19】 コンピュータ・システムをブートする
    第1の試みにおいて使用される第1のシステム構成デー
    タ・セット、およびコンピュータ・システムのブートに
    成功した最後のシステム構成データ・セットを格納する
    第2のシステム構成データ・セットを含む、コンピュー
    タ・システムをブートするのに必要なすべてのデータを
    記憶するレジストリ、 上記第1のシステム構成データ・セットに格納されたデ
    ータが変更される前に、上記第1のシステム構成データ
    ・セットに格納されたデータと等しいデータを、第3の
    システム構成データ・セットに割り当てる手段、 上記第1のシステム構成データ・セットからコンピュー
    タ・システムのブートを試みる手段、 上記第1のシステム構成データ・セットからのコンピュ
    ータ・システムのブートが成功であったことを判定する
    手段、ならびに上記第1のシステム構成データ・セット
    からのコンピュータ・システムのブートが成功であった
    ことを判定する手段の判定に応じて、上記第3のシステ
    ム構成データ・セットに格納されたデータと等しいデー
    タを、上記第2のシステム構成データ・セットに割り当
    てる手段、 を備えているコンピュータ・システムのブート装置。
  20. 【請求項20】 上記コンピュータ・システムのブート
    を試みる手段が、デバイスとの通信をコンピュータ・シ
    ステムに許容するデバイス・ドライバのロードを試みる
    手段、および上記デバイス・ドライバのロードの失敗に
    基づいて、上記ブートが失敗であったことを判定する判
    定手段を含むものである、請求項19に記載のコンピュー
    タ・システムのブート装置。
  21. 【請求項21】 上記第1のシステム構成データ・セッ
    トに格納されたデータを変更する手段、を備えている請
    求項19に記載のコンピュータ・システムのブート装置。
  22. 【請求項22】 上記第1のシステム構成データ・セッ
    トからコンピュータ・システムのブートを試みる手段
    は、上記変更する手段が上記第1のシステム構成データ
    ・セットに誤ったデータを格納したことにより、コンピ
    ュータ・システムのブートに失敗する手段を含むもので
    ある、請求項19に記載のコンピュータ・システムのブー
    ト装置。
JP18008894A 1993-07-30 1994-08-01 最後にブートに成功した既知のシステム構成データ・セットを用いたコンピュータ・システムのブート方法および装置 Expired - Lifetime JP3279823B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10008093A 1993-07-30 1993-07-30
US08/100080 1993-07-30

Publications (2)

Publication Number Publication Date
JPH0756719A JPH0756719A (ja) 1995-03-03
JP3279823B2 true JP3279823B2 (ja) 2002-04-30

Family

ID=22278009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18008894A Expired - Lifetime JP3279823B2 (ja) 1993-07-30 1994-08-01 最後にブートに成功した既知のシステム構成データ・セットを用いたコンピュータ・システムのブート方法および装置

Country Status (5)

Country Link
US (1) US6529966B1 (ja)
EP (1) EP0636972B1 (ja)
JP (1) JP3279823B2 (ja)
CA (1) CA2126950A1 (ja)
DE (1) DE69423151T2 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802365A (en) * 1995-05-05 1998-09-01 Apple Computer, Inc. Dynamic device matching using driver candidate lists
JP3593241B2 (ja) * 1997-07-02 2004-11-24 株式会社日立製作所 計算機の再起動方法
DE19736972C1 (de) * 1997-08-25 1999-01-21 Thomas Schumacher Verfahren und Vorrichtung zum beschleunigten Hochfahren eines Personal Computers
KR100283243B1 (ko) 1998-05-11 2001-03-02 구자홍 운영체제의 부팅방법
US6832371B1 (en) * 1999-01-04 2004-12-14 Microsoft Corporation Method for automatically updating a computer registry
EP1085396A1 (en) * 1999-09-17 2001-03-21 Hewlett-Packard Company Operation of trusted state in computing platform
US6931523B1 (en) * 1999-12-09 2005-08-16 Gateway Inc. System and method for re-storing stored known-good computer configuration via a non-interactive user input device without re-booting the system
US6718463B1 (en) * 2000-08-17 2004-04-06 International Business Machines Corporation System, method and apparatus for loading drivers, registry settings and application data onto a computer system during a boot sequence
US6763457B1 (en) * 2000-11-09 2004-07-13 International Business Machines Corporation Network station suitable for supplying indicated default values for boot parameters
US7055024B2 (en) * 2001-09-20 2006-05-30 Intel Corporation Computer system component initialization using a BIOS formal hardware language to represent the initialization requirements
US7073053B1 (en) * 2001-10-11 2006-07-04 Cisco Technology, Inc. Method and apparatus for a boot progression scheme for reliably initializing a system
US7603440B1 (en) * 2001-11-09 2009-10-13 Persystent Technology Corporation System and method for management of end user computing devices
US6993643B2 (en) * 2001-12-03 2006-01-31 International Business Machines Corporation Method and system of dynamic video driver selection on a bootable CD via symbolic links
JP2005537575A (ja) * 2002-08-30 2005-12-08 フィリップス・セミコンダクターズ・ドレスデン・アクチェンゲゼルシャフト プログラム可能なシステムの初期化方法
US7174420B2 (en) * 2002-10-22 2007-02-06 Microsoft Corporation Transaction-safe FAT file system
US7363540B2 (en) 2002-10-22 2008-04-22 Microsoft Corporation Transaction-safe FAT file system improvements
US8412803B1 (en) 2003-09-19 2013-04-02 Juniper Networks, Inc. Rescue configuration
US7152189B2 (en) * 2003-10-07 2006-12-19 Microsoft Corporation Testing distributed services by using multiple boots to timeshare a single computer
US20060059327A1 (en) * 2004-09-13 2006-03-16 Brown Norman P Method to reset an image to a known state
US9298513B2 (en) * 2004-10-07 2016-03-29 International Business Machines Corporation Method and structure for autonomic application differentiation/specialization
US7873596B2 (en) 2006-05-23 2011-01-18 Microsoft Corporation Extending cluster allocations in an extensible file system
US8321439B2 (en) 2004-12-17 2012-11-27 Microsoft Corporation Quick filename lookup using name hash
US8606830B2 (en) * 2004-12-17 2013-12-10 Microsoft Corporation Contiguous file allocation in an extensible file system
US9639554B2 (en) 2004-12-17 2017-05-02 Microsoft Technology Licensing, Llc Extensible file system
US20060195467A1 (en) * 2005-02-25 2006-08-31 Microsoft Corporation Creation and composition of sets of items
CN100416502C (zh) * 2005-07-11 2008-09-03 威盛电子股份有限公司 启动计算机系统的方法
US20070101342A1 (en) * 2005-10-31 2007-05-03 Microsoft Corporation Automated device driver management
US8312459B2 (en) * 2005-12-12 2012-11-13 Microsoft Corporation Use of rules engine to build namespaces
US7996841B2 (en) * 2005-12-12 2011-08-09 Microsoft Corporation Building alternative views of name spaces
US8539481B2 (en) * 2005-12-12 2013-09-17 Microsoft Corporation Using virtual hierarchies to build alternative namespaces
US7698546B2 (en) * 2006-04-27 2010-04-13 Microsoft Corporation BIOS configuration update technique
US7747664B2 (en) * 2007-01-16 2010-06-29 Microsoft Corporation Storage system format for transaction safe file system
US7613738B2 (en) 2007-01-16 2009-11-03 Microsoft Corporation FAT directory structure for use in transaction safe file system
US7913113B2 (en) 2007-03-23 2011-03-22 Microsoft Corporation Self-managed processing device
US20090055683A1 (en) * 2007-08-24 2009-02-26 Ronald Wells Method of restoring previous computer configuration
CN102119508B (zh) * 2008-06-10 2015-04-08 惠普开发有限公司 将交换机层级结构后面的多功能设备呈现为单功能设备
JP5335622B2 (ja) 2009-08-31 2013-11-06 レノボ・シンガポール・プライベート・リミテッド 設定情報データベースを管理するコンピュータ・プログラム
US8271754B2 (en) * 2009-10-05 2012-09-18 Advanced Micro Devices, Inc. Simple preconfigured client management failsafe
JP5489278B2 (ja) * 2010-03-31 2014-05-14 Necパーソナルコンピュータ株式会社 情報処理装置及びその起動方法
WO2012001780A1 (ja) * 2010-06-30 2012-01-05 富士通株式会社 システム制御装置、情報処理システム及び情報処理システムのデータ退避及び復元方法
US9645811B2 (en) 2013-04-01 2017-05-09 Oc Acquisition Llc Fault tolerance for a distributed computing system
US10877845B2 (en) * 2018-08-02 2020-12-29 Dell Products, L.P. Apparatus and method for diagnostic use of BIOS attributes to remediate configuration issues
US11496356B2 (en) * 2018-08-13 2022-11-08 Microsoft Technology Licensing, Llc Device lifecycle management via a central identity service

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4070704A (en) * 1976-05-17 1978-01-24 Honeywell Information Systems Inc. Automatic reconfiguration apparatus for input/output processor
US4403303A (en) * 1981-05-15 1983-09-06 Beehive International Terminal configuration manager
JPS5897724A (ja) * 1981-12-04 1983-06-10 Mitsubishi Electric Corp 初期プログラムロ−ド方法
US4589063A (en) * 1983-08-04 1986-05-13 Fortune Systems Corporation Data processing system having automatic configuration
US4974151A (en) * 1985-02-21 1990-11-27 International Business Machines Corporation Configuration capability for devices in an open system having the capability of adding or changing devices by user commands
GB8823509D0 (en) * 1988-10-06 1988-11-16 Int Computers Ltd Bootstrap mechanism for data processing system
US5247659A (en) * 1988-10-06 1993-09-21 International Computers Limited Method for bootstrap loading in a data processing system comprising searching a plurality of program source devices for a bootstrap program if initial data indicating a bootstrap program source device fails a validity check
US5014193A (en) * 1988-10-14 1991-05-07 Compaq Computer Corporation Dynamically configurable portable computer system
CA2016396C (en) * 1989-05-15 1994-03-15 Refus J. Archon Initial program load (ipl) based on an object abstraction for a data processing system
GB9012949D0 (en) * 1989-08-25 1990-08-01 Ibm An apparatus and method for loading bios from a diskette in a personal computer system
CA2010591C (en) * 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
US5327553A (en) * 1989-12-22 1994-07-05 Tandem Computers Incorporated Fault-tolerant computer system with /CONFIG filesystem
JP3275261B2 (ja) * 1990-03-09 2002-04-15 セイコーエプソン株式会社 情報処理装置
US5261104A (en) * 1990-03-22 1993-11-09 International Business Machines Flexible computer initialization
US5134580A (en) * 1990-03-22 1992-07-28 International Business Machines Corporation Computer with capability to automatically initialize in a first operating system of choice and reinitialize in a second operating system without computer shutdown
US5237689A (en) * 1990-05-31 1993-08-17 Hewlett-Packard Company Configuration of mass storage devices
US5237690A (en) * 1990-07-06 1993-08-17 International Business Machines Corporation System for testing adaptor card upon power up and having disablement, enablement, and reconfiguration options
US5257368A (en) * 1991-03-28 1993-10-26 International Business Machines Corp. System for dynamically changing a system I/O configuration by determining differences between current and future configurations and describing differences to software and hardware control blocks
US5319751A (en) * 1991-12-27 1994-06-07 Intel Corporation Device driver configuration in a computer system

Also Published As

Publication number Publication date
JPH0756719A (ja) 1995-03-03
EP0636972B1 (en) 2000-03-01
EP0636972A1 (en) 1995-02-01
DE69423151T2 (de) 2000-07-06
US6529966B1 (en) 2003-03-04
CA2126950A1 (en) 1995-01-31
DE69423151D1 (de) 2000-04-06

Similar Documents

Publication Publication Date Title
JP3279823B2 (ja) 最後にブートに成功した既知のシステム構成データ・セットを用いたコンピュータ・システムのブート方法および装置
US6804774B1 (en) Software image transition aid comprising building a disk image based on identified hardware
US5974546A (en) Apparatus and method to determine cause of failed boot sequence to improve likelihood of successful subsequent boot attempt
US5764593A (en) Method and system for the interception and control of the computer boot process
US6363499B1 (en) Method and system for restoring a computer to its original state after an unsuccessful installation attempt
US6353928B1 (en) First run installer
US6427227B1 (en) System, method, and computer-readable medium for repairing an application program that has been patched
KR100860447B1 (ko) 선택된 기능성을 갖는 오퍼레이팅 시스템 생성 및 이용을위한 방법 및 시스템
US6675295B1 (en) Method and computer system for detecting and correcting a failure in a computer application program during startup
USRE40092E1 (en) Method for quickly booting a computer system
US6438749B1 (en) Method and system for restoring a computer to its original state after an unsuccessful patch installation attempt
JP2996909B2 (ja) ブート方法及び装置
US6820214B1 (en) Automated system recovery via backup and restoration of system state
US5745669A (en) System and method for recovering PC configurations
US6044461A (en) Computer system and method of selectively rebooting the same in response to a system program code update
US7266807B2 (en) Method for integration edition of setting file and setting file integration base
US8468342B2 (en) Computer system and method for performing integrity detection on the same
US6658562B1 (en) Method, system, and program for customizing a basic input/output system (“BIOS”) configuration according to the type of user
US20040172578A1 (en) Method and system of operating system recovery
US7480793B1 (en) Dynamically configuring the environment of a recovery OS from an installed OS
JP2000207176A (ja) 手近にない読取り/書込みハ―ドドライブ区分を有する図形のユ―ザインタ―フェイス(gui)を起動しかつ実行するコンピュ―タシステムおよび操作方法
US6430706B1 (en) Tracking and managing failure-susceptible operations in a computer system
US7062643B2 (en) System method and apparatus for controlling a boot process of a computer
US6275930B1 (en) Method, computer, and article of manufacturing for fault tolerant booting
KR100678974B1 (ko) 보안성과 사용자의 편의성을 고려한 컴퓨터 시스템의재부팅 방법 및 장치

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020107

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080222

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090222

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100222

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100222

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110222

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120222

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120222

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130222

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130222

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140222

Year of fee payment: 12

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term