Palm84 某所の日記

死のうは一定、しのびクマには何しよぞ...

スタートアップ修復後に「コンピューターの修復」が起動できない

VMware Player 上での確認なのでバグなのかたまたまなのかよくわかってませんが。orz

「コンピューターの修復」とは、Windows 7 のブート時にF8キー押すと出てくるやつのことです。「Windows 回復環境」とか「Windows Recovery Environment」とか俗に略して RE とか言われてる模様です。

f:id:palm84:20181219215249p:plain

何が原因なん?

f:id:palm84:20181219215251p:plain

詳しくはわかりませぬが、「スタートアップ修復」実行時に通常起動、RE起動と休止状態からの再開の3点について、古いエントリが削除され新しいエントリが追加される様なのですが、RE起動へのチェイン設定が古いIDのままになってるのが原因みたいですねん。これを修正したったら起動しましてん。

ちゅうわけで比べてみませう。

コマンド プロンプトを「管理者として実行」してくだされ。

  • 正常時(スタートアップ修復前)
C:\Windows\system32>bcdedit /enum all

Windows ブート マネージャー
--------------------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
description             Windows Boot Manager
locale                  ja-JP
inherit                 {globalsettings}
default                 {current}
resumeobject            {37bddda0-336c-11e1-b9d7-d3ee788de335}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows ブート ローダー
--------------------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  ja-JP
inherit                 {bootloadersettings}
recoverysequence        {37bddda2-336c-11e1-b9d7-d3ee788de335}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {37bddda0-336c-11e1-b9d7-d3ee788de335}
nx                      OptIn

Windows ブート ローダー
--------------------------------
identifier              {37bddda2-336c-11e1-b9d7-d3ee788de335}
device                  ramdisk=[C:]\Recovery\37bddda2-336c-11e1-b9d7-d3ee788de335\Winre.wim,{37bddda3-336c-11e1-b9d7-d3ee788de335}
path                    \windows\system32\winload.exe
description             Windows Recovery Environment
inherit                 {bootloadersettings}
osdevice                ramdisk=[C:]\Recovery\37bddda2-336c-11e1-b9d7-d3ee788de335\Winre.wim,{37bddda3-336c-11e1-b9d7-d3ee788de335}
systemroot              \windows
nx                      OptIn
winpe                   Yes
<以下略>
  • identifier = {current}(または {default} が通常起動のエントリ
  • description = Windows Recovery Environment がRE起動のエントリ

{current}recoverysequence の値はREの identifier の値になっとりますですな。

  • スタートアップ修復後
C:\Windows\system32>bcdedit /enum osloader

Windows ブート ローダー
--------------------------------
identifier              {37bddda1-336c-11e1-b9d7-d3ee788de335}
device                  unknown
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  ja-JP
inherit                 {bootloadersettings}
recoverysequence        {37bddda2-336c-11e1-b9d7-d3ee788de335}
recoveryenabled         Yes
osdevice                unknown
systemroot              \Windows
resumeobject            {37bddda0-336c-11e1-b9d7-d3ee788de335}
nx                      OptIn

Windows ブート ローダー
--------------------------------
identifier              {37bddda2-336c-11e1-b9d7-d3ee788de335}

Windows ブート ローダー
--------------------------------
identifier              <strong class="ms">{current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7 Enterprise (回復済み)
locale                  ja-JP
recoverysequence        {37bddda2-336c-11e1-b9d7-d3ee788de335}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {e82b2148-774b-11e1-9cff-806e6f6e6963}

Windows ブート ローダー
--------------------------------
identifier              {37bddda5-336c-11e1-b9d7-d3ee788de335}
device                  ramdisk=[C:]\Recovery\37bddda2-336c-11e1-b9d7-d3ee788de335\Winre.wim,{37bddda6-336c-11e1-b9d7-d3ee788de335}
path                    \windows\system32\winload.exe
description             <strong class="ms">Windows Recovery Environment (回復済み)
locale
osdevice                ramdisk=[C:]\Recovery\37bddda2-336c-11e1-b9d7-d3ee788de335\Winre.wim,{37bddda6-336c-11e1-b9d7-d3ee788de335}
systemroot              \windows
winpe                   Yes

※ 上記2点及び device = unknown となってるのは無効化されたエントリの模様なのでムシで。(ってか、delete しちゃってもいいかもしれない?)

recoverysequence の値がREの identifier の値になっちょらんですな。

これをちょいちょいと修正したらRE起動おk!となりました。こんなかんじですねん...

C:\Windows\system32>bcdedit /set {current} recoverysequence {37bddda5-336c-11e1-b9d7-d3ee788de335}
この操作を正しく終了しました。
C:\Windows\system32>bcdedit /enum osloader

Windows ブート ローダー
--------------------------------
identifier              {37bddda1-336c-11e1-b9d7-d3ee788de335}
device                  unknown
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  ja-JP
inherit                 {bootloadersettings}
recoverysequence        {37bddda2-336c-11e1-b9d7-d3ee788de335}
recoveryenabled         Yes
osdevice                unknown
systemroot              \Windows
resumeobject            {37bddda0-336c-11e1-b9d7-d3ee788de335}
nx                      OptIn

Windows ブート ローダー
--------------------------------
identifier              {37bddda2-336c-11e1-b9d7-d3ee788de335}

Windows ブート ローダー
--------------------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7 Enterprise (回復済み)
locale                  ja-JP
recoverysequence        {37bddda5-336c-11e1-b9d7-d3ee788de335}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {e82b2148-774b-11e1-9cff-806e6f6e6963}

Windows ブート ローダー
--------------------------------
identifier              {37bddda5-336c-11e1-b9d7-d3ee788de335}
device                  ramdisk=[C:]\Recovery\37bddda2-336c-11e1-b9d7-d3ee788de335\Winre.wim,{37bddda6-336c-11e1-b9d7-d3ee788de335}
path                    \windows\system32\winload.exe
description             Windows Recovery Environment (回復済み)
locale
osdevice                ramdisk=[C:]\Recovery\37bddda2-336c-11e1-b9d7-d3ee788de335\Winre.wim,{37bddda6-336c-11e1-b9d7-d3ee788de335}
systemroot              \windows
winpe                   Yes

おんやぁ、ブートメニューがEnglish豆腐になっとるやん

ハギスみたいに美味かもw

f:id:palm84:20181219215255p:plain

マルチブートにしてないとこのメニューには気づかないと思われますが。。。

これは日本語版 Windows 7 のバグバグの模様でありんす。F8メニューの方はふつーに日本語なんですけどね。

※ 多分もっとうまい方法があると思いますがワタシはわからないのであしからず。orz

これもよくわかりませんが上記ページにある方法で治りマスタ。

C:\Windows\system32>bcdedit /enum bootmgr

Windows ブート マネージャー
--------------------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
path                    \bootmgr
description             Windows Boot Manager
locale                  ja-JP
inherit                 {globalsettings}
default                 {current}
resumeobject            {37bddda0-336c-11e1-b9d7-d3ee788de335}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30
</pre>
<p><code>path</code> が余計みたいです。これを削除すると日本語メニューとなり申したです。</p>
<pre>
C:\Windows\system32&gt;<strong>bcdedit /deletevalue {bootmgr} path</strong>
この操作を正しく終了しました。
</pre>

>||
C:\Windows\system32>bcdedit /enum bootmgr

Windows ブート マネージャー
--------------------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
description             Windows Boot Manager
locale                  ja-JP
inherit                 {globalsettings}
default                 {current}
resumeobject            {37bddda0-336c-11e1-b9d7-d3ee788de335}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

f:id:palm84:20181219215259p:plain

bcdboot はちょっと危険なかほりがぁー

はい、これでも治ります、治るんです。ですけどね、、、、やらん方がよろしいようですYO!

C:\Windows\system32>bcdboot c:\windows /l ja-JP

この後bcdeditしてみると・・・なんと

せんせー!REチェイン設定が消えてますー!

【注意】bcdboot実行直後は {current} ではなく {default} になってます。

「コンピューターの修復」がいなくなりましたー!(F8メニューから消えてる...orz)

C:\windows\system32>bcdedit /enum {current}

Windows ブート ローダー
--------------------------------
identifier              {current}
device                  partition=C:
path                    \windows\system32\winload.exe
description             Windows 7
locale                  ja-JP
inherit                 {bootloadersettings}
osdevice                partition=C:
systemroot              \windows
resumeobject            {37bddda7-336c-11e1-b9d7-d3ee788de335}
nx                      OptIn
detecthal               Yes

というわけで上記を参考に設定しなおししなおし。orz

C:\windows\system32>bcdedit /set {current} recoverysequence {<REのidentifierの値>}
この操作を正しく終了しました。

C:\windows\system32>bcdedit /set {current} recoveryenabled Yes
この操作を正しく終了しました。

おつかりさん。ほなねー!