Palm84 某所の日記

有為のクマにかくれり~

Windows RE(回復環境)の diskpart コマンドでアクティブ設定確認

2024.1.16 追記

今更ですが... 「アクティブ設定」はMBR/BIOSブート環境での設定です。UEFI/GPT環境では不要(というか無い?)です。

2011.6.8 ちょこちょこ追記

アクティブ設定だけなら Linux の GParted や fdisk の方が簡単だと思いますが、BOOTMGR の位置からパーティションを確認する方法でありんす。慣れてる人ならどうってことない話でござりんす。

「BOOTMGR is missing」のメッセージが出て、その原因が文字通り BOOTMGR のないパーティションから起動しようとしている場合はこれで治るかも。

以前 Ubuntu をインストールしたらアクティブ設定を変更されてたことがありました。ブートストラップを Windows のものに直しただけでは起動せんかったです。

BOOTMGR のあるパーティションを確認する

BOOTMGR が複数ある場合もある?

メーカー製PCでは、通常の Windows 起動用とリカバリープログラム起動用のパーティションにそれぞれ BOOTMGR が置かれている場合がある模様です。どっちを指定すべきかはワタシにはわかりかねますが・・・リカバリーが起動したらたぶん間違いでないかな・・・すみませぬ。

コマンド プロンプトで BOOTMGR を探します。下記コマンドを実行しておくんなまし。

(【注意】隠しパーティションは検索されません。)

注意
  • (基本的には)BOOTMGR はアクティブ領域にある
  • RE上では Windows 7 の「システムで予約済み領域」にもドライブレターが振られる
  • Windows 7 で「システムで予約済み領域」がある場合は通常そこに BOOTMGR があり、アクティブに設定
  • RE上では「システムで予約済み領域」は C: となることが多いが、内蔵メモリカードスロットがあるPCなどでは J: となってたこともある
  • Windows 7 であっても「システムで予約済み領域」がない場合もある
  • メーカー製PCでは「システムで予約済み領域」がなくリカバリー用領域に BOOTMGR などが置かれてることもある

dir /a c:, dir /a d: ... で順番に確認でいいわけですが、下記は C: から K: までを1回で確認する方法です。(ワシ流ですけど...アセ)

for %x in (c,d,e,f,g,h,i,j,k) do @dir /a-d >nul %x:\bootmgr && echo %x:\
X:\windows\system32>for %x in (c,d,e,f,g,h,i,j,k) do @dir /a-d >nul %x:\bootmgr && echo %x:\
c:\
ファイルが見つかりません
ファイルが見つかりません
f:\
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。

C:ドライブにあるのが確認できました。尚、このドライブレターですが、RE 上では「システムで予約済み」領域なども表示されるんで 通常の Windows 上とは違う場合がほとんどかと。

【注意】上記の f:\ はDVDドライブ。検索時にDVDなどは抜いておきませう。

diskpart で確認

diskpart を実行します

diskpart
X:\windows\system32> diskpart

Microsoft DiskPart バージョン 6.1.7600
Copyright (C) 1999-2008 Microsoft Corporation.
コンピューター: MININT-TBGIAOB

DISKPART> 

ドライブレターを確認汁

list volume
DISKPART> list volume

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    F   GRMCENEVAL_  UDF   CD-ROM      2254 MB  正常
  Volume 1    C   システムで予約済み    NTFS  Partition    100 MB  正常

  Volume 2    D                NTFS  Partition     60 GB  正常
  Volume 3    E                NTFS  Partition     99 GB  正常
【追記】隠しパーティション

メーカー製PCではリカバリーや診断用の隠しパーティションがあったりしますな。Ltr(ドライブレター) が空白、Info が「非表示」となってました。

(前項の検索で調べた)C となってる volume 1 を選択

select volume 1
DISKPART> select volume 1

ボリューム 1 が選択されました。

パーティションの詳細を確認

detail partition
DISKPART> detail partition

パーティション 1
種類         : 07
隠し属性     : いいえ
アクティブ   : はい
オフセット (バイト): 1048576

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
* Volume 1    C   システムで予約済み    NTFS  Partition    100 MB  正常

アクティブが「はい」なら正しいので diskpart は終了

exit
DISKPART> exit

DiskPart を終了しています...

いいえとなってる場合は...

DISKPART> detail partition

パーティション 1
種類         : 07
隠し属性     : いいえ
<strong>アクティブ   : いいえ</strong>
オフセット (バイト): 1048576

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
&#x2A; Volume 1    C   システムで予約済み    NTFS  Partition    100 MB  正常

アクティブ化するする

active
DISKPART> active

DiskPart は現在のパーティションをアクティブとしてマークしました。

も一度確認にん

detail partition
 DISKPART> detail partition

 パーティション 1
 種類         : 07
 隠し属性     : いいえ
 アクティブ   : はい
 オフセット (バイト): 1048576

   Volume ###  Ltr Label        Fs    Type        Size     Status     Info
   ----------  --- -----------  ----  ----------  -------  ---------  --------
 * Volume 1    C   システムで予約済み    NTFS  Partition    100 MB  正常

diskpart を終了。

exit
DISKPART> exit

DiskPart を終了しています...

X:\windows\system32>

アクティブ設定は以上ですが、これでも通常起動できない場合は下記も試してみるべし。

  1. bootrec /fixmbr
  2. bootrec /fixboot
  3. bootrec /rebuildbcd
  4. 「スタートアップ修復」

おつかりー