0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Windowsが入っていたブートセクターをrm -rfで全削除してしまった時の話

Last updated at Posted at 2021-12-09

1.はじめに

先日、WindowsとGentooをデュアルブートさせるためにLiveCDで環境構築していたのですが、
ブートセクターをマウントしていた/mnt/gentoo/boot/efiを誤って

bash
rm -rf /mnt/gentoo/boot/efi

理由としては、日頃からrm -rfを常習しながらブートローダーを構築をしていたのが原因だと思います。
もちろんOSが起動しないので何もできなくなりました。あーあ。

Windows11をとりあえず起動させるまで

ブートセクターが消えているので当然Windowsは起動しませんし、WindowsREも使えないので当然修復するコマンドなども使えません。
また、メーカー製のPCなのでBDなどのインストールメディアもないし、USBメモリも8GB以上の物がなく、インストールメディアも作成できませんでした。
ですので、他のPCからUSBメモリやDVDなどに入れた修復ツールを構成してブートローダーの再構築をします。

必要なもの

  • USBメモリかDVD(2GBあれば十分)
  • Windowsが動作するPC
  • ブートセクターを破壊してしまったPC

ブートセクターを再構築する

Windows PEを使用して、ブートセクターを修復します。

Windows PEのセットアップ

1.まずはMicrosoftのサイトからWindows ADK(Windows アセスメント & デプロイメント キット)をダウンロードします。

2.インストーラーを起動します

適当にインストーラーの設定をして、この画面で最低限Deployment Toolsを選択します。

Screenshot 2021-12-09 140800.jpg

diskpart
select disk X    #Xに現在認識されているUSBメモリのドライブの文字を入力
clean
create partition primary size=2048
active
format fs=FAT32 quick label="WinPE"
assign letter=P
Exit

6.以下のコマンドで作業ファイルを作成する

cmd
copype amd64 C:\WinPE_amd64

7.以下のコマンドでUSBメモリに書き込む

cmd
MakeWinPEMedia /UFD C:\WinPE_amd64 P:

8.壊したPCにUSBメモリを差し、USBメモリから先にBootするようにUEFIの設定をする

9.起動したら、詳細オプションにあるコマンドプロンプトを選択し、起動する

10.diskpartでWindowsがインストールされているディスクをsel disk {番号}で選択し、list volで`WindowsのCドライブがあるパーティションとFAT32のファイルシステムのパーティションがあることを確認する。

11.FAT32のファイルシステム(ブートセクター)にドライブレター(アルファベット1文字のやつ)を設定する

diskpart
select volume X #FAT32ファイルシステムのドライブ番号
assign letter=B #重複しないドライブレターを設定する

12.以下のコマンドでブートセクターを構築する

cmd
 #XはWindowsがインストールされているドライブレター
 #Yはブートセクターのドライブレターを設定する
 #言語によってja-JPなどを適度変更する(日本語環境の場合このままでOK)
 bcdboot X:\Windows /l ja-JP /s Y: /f ALL

13.PCの電源を落とし、UFEIからWindowsが入っているディスクを一番最初に読み込むようにする。

これでとりあえずはWindowsが起動するようになり、半年分のデータを取り戻すこどができました。
しかし、WindowsREなどが認識されず、修復オプションが利用できないので修復します。

###WindowsREの設定
1.とりあえずcmdで回復環境の確認

PowerShell
reagentc /info

※ここで状態がEnabledで場所がWindowsシステムのドライブ内でなければ正常なので以下の作業は不要です

2.WindowsREの無効化を行う

PowerShell
reagentc /disable

3.パーティションツールでWindowsREの残骸があるパーティションを削除する

4.diskpartで回復用パーティションを作成する。

diskpart
select disk X #回復パーティションに使用するディスク番号
create partition primary size=1024
format quick fs=ntfs label="Recovery tools"
assign letter="R" #重複しないドライブレター
gpt attributes=0x8000000000000001
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
list par

指定したパーティションのタイプに回復と記載されていれば正常

5.作成したドライブにWindowsREをコピーする

PowerShell
mkdir R:\Recovery\WindowsRE #Rは適宜変更する
xcopy /h C:\Windows\System32\Recovery\Winre.wim R:\Recovery\WindowsRE

6.WindowsにWindowsREを構築したパーティションを登録する

PowerShell
reagentc /setreimage /path R:\Recovery\WindowsRE /target C:\Windows

7.reagentcでWindowsREを有効化し、設定が正常に反映されたかを確認する

PowerShell
reagentc /enable
reagentc /info

WindowsREの状態がEnabledになっており、WindowsREの場所が指定したドライブに存在していれば完了です。

8.Shiftキーを押しながら再起動を行い、動作確認する

回復オプションが表示されれば完了です。
お疲れ様でした。

まとめ

ブートセクターを爆破しちゃってもまだ救いがあるよ!
ただし環境によっては修復するまで面倒臭いです。

時間が足りないときにパーティションを弄ったり、ブートセクターを弄るのはやめよう!
rm -rfは気を付けて使おう!
お酒を飲みながら手作業での環境構築は危険なのでやめようね!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?