Vistaのブートプロセス

Vistaのスタートアップ処理

Ntldr、Boot.iniファイルは使用されなくなった。マルチブート構成において、Windows XP、Windows 2000、Windows Server 2003を使用するときは二次的な役割としてそれらが呼び出される。

  1. コンピュータの電源オンセルフテスト(POST)
  2. BIOSを持つ各アダプタカードごとにPOSTの実行(高度なストレージアダプタやビデオカード)
  3. システムBIOSによって、マスターブートレコード(MBR〜ブートデバイスとして定義されたハードディスク上にある最初の物理セクタ)が読み取られる。
  4. MBR内のコード(Windows Vistaセットアップによって作成される)に制御が移る。
  5. この時点でスタートアップ処理がWindowsに引き継がれる。
  6. MBRによってブートセクタ(アクティブなパーティションの最初のセクタ、PBS:パーティションブートセクタ)が読み取られる。
  7. ブートセクタにはWindowsブートマネージャプログラム(Bootmgr.exe)を起動するコード(IPL:イニシャルプログラムローダ)と、そのパーティションに含まれるファイルシステムに関する情報が含まれる。
  8. Windowsブートマネージャによってブート構成データストア(コンピュータにインストールされているすべてのオペレーティングシステムに関する構成情報を含み、このデータを使用してブートメニューの構成と表示が行われる。)の内容が読み取られる。
  9. ブートメニューで選択を行う。
    • Windows Vistaのインスタンスを選択した場合
      %SystemRoot%\System32フォルダからOSローダーであるWinload.exeがWindowsブートマネージャによって起動される。
    • Windows Vistaを休止状態から再開するオプションを選択した場合
      WindowsブートマネージャによってWinresume.exeがロードされ、以前の環境が復元される。
    • 以前のバージョンのWindowsオプションを選択した場合
      そのバージョンのあるボリュームが検索され、Ntldr.exeがロードされる。必要があれば、そのボリュームにあるBoot.iniファイルから読み込まれた新しいブートメニューが表示される。
  10. Windows Vistaの起動時には、そのコアファイルであるNtoskrnl.exeとHal.dllがロードされ、設定がレジストリから読み取られてドライバがロードされる。
  11. 次にWindowsセッションマネージャ(Smss.exe)が起動される。
  12. そこからWindowsスタートアップアプリケーション(Wininit.exe)が起動される。
  13. さらにローカルセキュリティ機関(Lsass.exe)とサービス(Services.exe)の各プロセスが起動される。
  14. ログオンできる状態になる。

ブート構成データ(BCD)ストアの編集

Bcdedit(Boot Configuration Data Editor)ユーティリティを使う。BCDはBoot.iniに代わるもので、Bcdedit.exeは以前のBootcfg.exeと同じ働き。システム権限が必要なので、管理者として実行オプションを使用してコマンドウィンドウを開いて実行する。
Bcdedit -?で詳しい構文が調べられる。

Vistaの複数バージョンをインストールしているときなど、どのVistaもMicrosoft Windows Vistaというテキストになってしまう。

  1. ブートメニューのシステムを変更するには、いずれかのVistaを起動してスタートボタン→検索ボックスにcmdと入力→CtrlとShiftとEnterキーを押す→ユーザーアカウント制御ボックスの続行をクリックしてシステム特権を持つコマンドプロンプトを起動する。
  2. bcdedit /set description "Windows Vista Home Premium"などと入力し、Enterキーを押す。(bcdedit /set {current} description "Windows Vista Home Premium"と同じなので、識別子で区別できるときはOSを起動しなおさなくても設定できる。識別子は引数なしのbcdeditで確認できる。{current}は現在起動しているOS。そのOSを一定時間後に自動的に起動する既定のWindowsにしたいときは bcdedit /default {current})
  3. 次にテキストを変更したいOSを起動し、同じように変更する。

起動と回復ダイアログボックスでも、スタートアップオプションのいくつかを設定できる。

  1. コントロールパネルのシステムを開く。
  2. [タスク]ウィンドウの[システムの詳細設定]リンクをクリックして、[詳細設定]タブの[起動と回復]の[設定]をクリックする。
  3. 既定のオペレーティングシステムと、オペレーティングシステムの一覧を表示する時間を選択する。
既定のオペレーティングシステムが自動的に起動するようにするには、チェックボックスをオフにするか0を入力する。
上記の方法で設定したオプションはブート構成データストアにデータが直接書き込まれる。

MBRの再構築

  • Windows Vistaをインストールした後にWindows XPなどをインストールすると、MBRがWindows Vistaのブートローダーが認識できないものに上書きされてしまう。

    1. 古いオペレーティングシステムでコマンドプロンプトを開く。
    2. Windows Vista DVDからコマンドを実行する。
      Q:\Boot\Bootsect.exe -NT60 All
      Bootsect.exe(Boot Sector Manipulation Tool)は、fixfat、fixntfsに代わるもので、マスターブートレコードを更新することによってBootmgrとNtldrを切り替える。コンピュータのブートセクタの復元に使う。
    3. 再起動するとWindows Vistaのブートメニューが表示される。
    4. 以前のバージョンのWindowsに対応したメニュー項目を復元するため、システム特権を持つコマンドプロンプトを開く。
      Bcdedit -create {ntldr} -d "Windows XP Professional"
    Windows XPなどのドライブを削除したいときは、Windows PEを起動してコマンドプロンプトで
    xcopy C:\bootmgr d:\ /h
    xcopy C:\boot d:\boot /h /e /c /r /k
    と入力して、bootmgrとbootフォルダをWindows Vistaのパーティションに移す。さらに
    diskpart
    select disk 0
    select partition 2
    active exit
    でWindows Vistaのパーティションをアクティブパーティションにする。
    wpeutil shutdown
    でWindows PEをシャットダウンする。
  • Windows Vistaをデュアルブートシステムから削除してWindows XPのブートローダーを復元する。

    コマンドプロンプトで
    Q:\Boot\Bootsect.exe -NT52 All と入力する。ntldr、ntdetect.com、bootfont.bin、boot.iniが使われるようになる。

  • Intel PAE(Physical Address Extension:物理アドレス拡張)対応のCPUとWindows Vista32bit版で4GBを超えるメモリにアクセスする。

    コマンドプロンプトで
    bcdedit /SET PAE ForceEnable
    と入力する。

Vistaが起動しないときにVistaインストールDVDを使う(エラーがブートセクタにある)場合

VistaインストールDVDで起動し、「コンピュータを修復する」を選ぶ。
コマンドプロンプトを選び、
Q:\bootrec /fixmbr(MBRの修復)
Q:\bootrec /fixboot(PBSの修復) を行う。