回復パーティションの作成
Windowsの回復パーティションをつくってみる。
自分でインストールしたWindowsには回復パーティションにある WinRe.wim がなく、なんか不安。
ブート失敗したときは、C:\Windows\System32\Recovery\WinRe.wim
から起動するはずだけど、Cがブートだとわからなくなったらどうすりゃと不安になったので作り方を調べてみた
Windowsの回復パーティションの設置場所
SSD/HDDの先頭・末尾に1GBほどの小さい領域をつくって、そこにWinRe.wimを設置する
作ってみた
メーカ製PCではなく自作やHDD交換カスタムインストールされたWindowsではWinREはつくられてない。またWindowsアップデートのタイミングでWindows REが消されてたりする。
いままでEFIブートをぶっ壊したPCを何台か修復したのですが、USBのインストールメディア作成が面倒だった。もしブートがぶっ飛んでも安心なようなWinREを作成しておけばUSBのインストールメディアの手間を飛ばすことができる。もし自分のPCにトラブルが起きたときにリカバリの詳細オプションからスタートアップ修復やコマンド・プロンプトで修復ができれば便利だと思う。
winreの状態チェック
reagentc /info
コマンドでWinREの現在状態がわかる。
現在はDisabledなのでWinREを作成しEnabledを目指そうと思う。
WinRe の準備
ともかくWinRe.wimが無いと始まらない。
方法1:既存のWindowsから持ってくる
C:\Windows\System32\Recovery
Win ProにはRecoveryにWinRe.wimがありHomeにはなかった。
インストールしているWin10のバージョンの問題かもしれない。
もしかしたらWinRe.wimはHomeにはなくPro以上限定かもしれない。
方法2:インストールメディアから取り出す
インストール・メディアから持ってくる
- WindowsのインストールUSBを挿入する
- 7zip でUSBを開く
install.esd
を探して7zip で開く- 更にたどると、WinRe.wim がある。
E:\sources\install.esd\1\Windows\System32\Recovery\
ESD(インストールイメージ)が7z で開いてさらに中身が見れることを知っておく必要がありますね。
ESD自体はマイクロソフト公式サイトからメディア作成ツールで作ることができる。
取り出したWinRe.wimを設置
取り出したWinRe.wimを、Recoveryに設置する
C:\Windows\System32\Recovery\Winre.wim
ちなみに、この設置で、回復ドライブ作成が動くようになる。
わたしのWindows Homeでは回復パーティションどころか回復ドライブ作成すらできなかったので、回復ドライブ作成が動くだけでも助かった。
設置で回復ドライブを作れるようになった例
winre.wim
をC:\Windows\System32\Recovery\Winre.wim
に設置すると、回復メディア作成ツールが動くようになった。
WindowsHomeのインストールの一部ではC:\Windows\System32\Recovery\Winre.wim
が作られてない事があるようだ。回復ドライブ作成機能が動かないWindows10を、何度か見かけた。
末尾にパーティションを作成
次の図のように、パーティションを配置したい。
未割り当てを消せばいいが、Cドライブが500GBにもなるとバックアップが不便だしSSDの寿命も考えて未使用領域を残しておきたい。*1
Windowsのディスク管理ツールだと不便がある。未割当て領域を跨ぎ末尾にパーティションを作るのができない。Windowsだと末尾にパーティションつくる計算が面倒。
gidsk で 2700 を指定すれば Windows RE
になる
使い慣れたgdisk で作った
$ gdisk /dev/sdX Command (? for help): l Type search string, or <Enter> to show all codes: 0700 Microsoft basic data 0c01 Microsoft reserved 2700 Windows RE 3000 ONIE boot 3001 ONIE config 3900 Plan 9
gidks で末尾から1GiBは。セクタ数から計算した
start セクタ : `末尾 - 1024*1024*1024/512` end セクタ : 末尾
gidskなら差分サイズ指定できたので楽ができたはず
パーティションを作ったら初期化
windowsのdiskpart で確認
作ったパーティションをWindowsのDISKPART
で確認した
回復パーティションが認識された
パーティションをマウントする
WinRe.wimをコピーすればいいのだが、そのためにはドライブにアサイン(マウント)してエクスプローラーで見られるようにする必要がある。
diskpart
でコマンドをサクサク叩く
ドライブレターのアサインとIDの割当
list vol select vol 5 assign letter=r set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac" gpt attributes=0x8000000000000001
パーティションにアクセスしファイルを書き込みたいので、ドライブレターを割り当てた。
gpt attribute と gpt のid が大事らしい。参考資料に従ってやった
あとは、R:\
を、開いて WinReをコピーした
winreをコピーする
参考資料はcmd.exe で次のようにやっていた
mkdir R:\Recovery\WindowsRE xcopy /h C:\Windows\System32\Recovery\Winre.wim R:\Recovery\WindowsRE
わたしはWSLから操作したので、次のように実行した。
mkdir -p /mnt/r sudo mount -t drvfs R: /mnt/r mkdir -p /mnt/r/Recovery/WindowsRE cp /mnt/c/windows/system32/recovery/winre.wim /mnt/r/Recovery/WindowsRE
windows REの状態を確認する
最初はDisabledで絶望したのだが。
> reagentc /info Windows 回復環境 (Windows RE) およびシステム リセット構成 情報: Windows RE の状態: Disabled
有効にする事ができた。
> reagentc /enable REAGENTC.EXE: 操作は成功しました。
Windows RE 環境を作れた
reagentc /enable
をすることで、回復パーティションを作ることができた。
回復ドライブの指定
参考資料によると、回復ドライブを指定して、そのドライブを使って回復ができるらしい
/pathオプションに登録する回復環境のパス、/targetに登録先のWindowsフォルダを指定する。
> reagentc /setreimage /path R:\Recovery\WindowsRE /target C:\Windows ディレクトリは次に設定されています: \\?\GLOBALROOT\device\harddisk0\partition4\Recovery\WindowsRE
回復起動する
Windowsの設定で「再起動時のブート方法」を選んで、トラブルシューティングで起動して、コマンド・プロンプトなど色々と増えていることを確認にする。 [設定] > [PC 設定の変更] > [全般] とか
回復起動のための、起動オプションの出し方
起動オプションの出し方は、「Shiftをおしながら電源を押す」
おまけ diskpart の使い方
起動
diskpart
ディスクを扱う場合
list disk select disk 0 list part select part 0
ボリューム(Windowsが認識可能なフォーマットされたドライブ・パーティション)を扱う
list vol select vol 2 list vol select vol 1 remove letter=c select vol 2 assgin letter=c
C:
の割当の解除は、回復から起動したコマンドであればできる。
bitlocker の制限
bitlocker 環境化はWinREにアクセスできたとしてもディスクのマウントができないので、暗号化ボリュームの復号化キーをつかうことになるだろう
reagentc /enable
の実行時に何も指定してない場合、C:\Windows
を使うので、WinREだけではBitlockerにアクセスできないので有効化できなくて当然である。
PS C:\Users\takuya\Desktop> reagentc /enable REAGENTC.EXE: Windows RE cannot be enabled on a volume with BitLocker Drive Encryption enabled.
もし必要なら、システムイメージが入ったデータ・パーティションを作ればいいのだが。
Bitlockerはノートパソコンが主流であろうし、回復用USBフラッシュを作るだけで事足りそうな気がしますね。
TPMのセキュアブートなどがうまく組み合わされるWin11だとまた事情は変わってくるかもしれません。
WinREが使えたほうが良い理由
UEFI+GPTに変わって、MBRのフラグで管理しなくなった。
そのためスタートアップ修復の登場機会が増えていいる。
UEFIの修正にとても重要。
とくにEFIブートのパーティションはFAT32で作られるので、「自称詳しい」ひとたちが、「何だこれ?Windowsはいらんことを」と消してしまうことが多発して、我が家にEFIのぶっ壊れたWindowsが持ち込まれる要件が増えている。
MBRオジサンはEFIを知らないままEFI環境に移行しているので、HDD増設で先頭のEFIパーティションのFAT32を、あれこれ弄っちゃうようです。
起動しなくなったーって電話があるときは、回復パーティションがないから電話かかってくるんですよね。古くからのPC達人たちよ、まじ学んでくれ、君たちがエロゲをやってたアオハル時代のMBRじゃないんだよ。もう。