バックアップ、ディスク、パーティション、ブート関係メモ

3 minute read

Tags: , , , , , , , , , , , ,

投稿日:

全体の簡単な目次

色々書く前にこれから使うであろう用語を簡単に説明しておきます。

用語解説 必要な情報

ベーシックディスク と ダイナミックディスク
ディスクの種類。 ディスク管理をみていると種類という項目があり、 ベーシック や ダイナミック となっているはずだが ベーシック から ダイナミック への変換はできるが ダイナミック から ベーシックへの変換は フォーマット して中身のデータを消さないといけないとかなんとか。 そのほかどちらにもできるできないことがある。 なるべく ベーシック で済むようにしたほうがいいと思う。 今回はすべて ベーシック で考えていく。
ボリューム と パーティション
同じような見えるかもだけど違うもの。 diskpart においては volume は partition や dvd-rom を含むが partition は dvd-rom を含まない。 dvd-rom つまり dvdドライブなど のことだが、それらは partition を持たない
bios と uefi
いわゆる bios 画面は bios の設定画面。 そしてその bios 設定で bios ブートがされるわけなのだが、 そこに新しい設定とブートができた。それが uefi であるわけ。 bios では パーティションのスタイルはマスターブートレコード(MBR) しか使えない uefi では GUIDパーテーションテーブル(GPT)が使える。os が対応していないと起動できない。
MBR と GPT
MBR は従来のパーティションスタイル。biosで扱えるのはこれ一択。 GPT は MBRより冗長性がある。uefiでしか扱えない。 MBR より大きなパーティションを起動ディスクで扱えるらしい。 パーティションのフォーマット形式はどっちも ntfs を主に使うことになるだろう 余談だけど回復パーティションとか uefi システムパーティションには fat32 が使われているはず

windows の回復のバックアップの win7 の バックアップ について パーティションスタイル は 統一 しといたほうがよさげ。エラーでるかもだから。 統一のためにも変換方法を知っておくといい。

ディスクを GPT か MBR 形式にしてあるかの確認

win+r msinfo32
BIOSモード
UEFI か レガシーか
セキュアブート
有効 か 無効か

winキー右クリックポップアップメニュー ディスクの管理 パーティション ではなく ディスク で 右クリック -> プロパティ -> ボリューム -> パーティションのスタイル GPT か MBR

両方確認しておくといいだろう。
ディスク管理については設定により非表示のものもありうるので
よりしっかり見ておくにはコマンドプロンプト

diskpart  
list disk  
select disk <ディスク番号>  
list partition  
exit  

このあたりで見ることができるゾ

セキュアブートについては bios で設定が必要かもなので見ておくべき

参考URL:
UEFIやセキュアブートの勘違いしやすい設定30個 まとめ

セキュアブート、CSM、FastBootとかわかりやすくまとまってるたすかる
色々な設定が、場合があってトラブル時の原因特定は大変ですなぁ・・・

MBR -> GPT 変換 そして UEFI ブートするには

MBR だったどうしよう、フォーマットでデータ消えるのはヤだ。
だけど GPT にしたい、UEFI 使いたいさんって人向け

このヘッダーの内容は以下の参考URLとほぼおなじ流れになります。

参考URL:
gptgen で MBR → GPT 変換する

目次

  1. gptgen.exe 入手、mbr -> gpt 変換
  2. UEFI ブートするためのパーティション作成の前準備
  3. 領域を空ける。ディスク先頭にあるシステムの予約パーティションを削除
  4. EFI システムパーティション を作る
  5. Microsoft(R) 予約パーティション (MSR) を作る
  6. ドライブレター修正
  7. ブートローダー の設定

1. gptgen.exe 入手、mbr -> gpt 変換

gptgen.exeを手に入れる。検索してね。

コマンド例:
gptgen.exe -w \\.\physicaldrive0
ディスクの管理から対象のディスク番号を確認し、番号合わせてコマンド実行。

2. UEFI ブートするためのパーティション作成の前準備

ディスクの管理からシステムの予約パーティションを確認

BIOSの設定画面で セキュアブート を有効にする。

win10 インストールメディアから起動してコマンドプロンプトを使う。

diskpart を使っていく。

diskpartで使う基本コマンド一覧

list disk  
select disk [disk番号]  
list partition  
select partition [partition番号]  
delete partition override
list volume  
select volume [volume番号]
assign letter=[ドライブ文字]
exit

3. 領域を空ける。ディスク先頭にあるシステムの予約パーティションを削除

必要なパーティションを作る場所を確保するために、まず ディスク先頭にあるシステムの予約パーティションを削除します。

使うコマンド

list disk  
select disk [disk番号]  
list partition  
select partition [partition番号]  
delete partition override

そして空いた先頭の領域に順番に

  • EFI システムパーティション
  • Microsoft(R) 予約パーティション (MSR)
    を作る

4. EFI システムパーティション

UEFI システムパーティションを作る
これは EFI システムパーティションのことで ESP とも。

参考URL:
UEFI/GPT ベースのハード ドライブ パーティション

このページにもあるように
UEFI システムパーティションは
最小サイズは 100 MB フォーマットは FAT 32

コマンド例:
DISKPART> create partition EFI size=100 offset=1
DISKPART> format quick fs=fat32
DISKPART> assign letter=I

5. Microsoft(R) 予約パーティション (MSR)

Windows 10 以降では、MSR のサイズは 16 MB です。

なので16より大きければ機能するはず。しかし

参考URL:
UEFI ベースの推奨ディスク パーティション構成

ここによると

説明 パーティション ID サイズ パーティションの種類 形式 ドライブ文字
EFI システム パーティション (ESP) 1 100 MB EFI FAT32 なし
Microsoft 予約パーティション 2 128 MB MSR なし なし
Windows 3 ディスクの残り プライマリ NTFS W

サイズが 128 MB とあるのでそれ以上にしたほうがいいかもしれない。

MSR は、パーティション ID が割り当てられない予約パーティションです。

これはディスクの管理からは確認できない。
しかし、 diskpart からは確認できる。

で、EFI システムパーティション と Windowsの入っているパーティションとの間に
Microsoft(R) 予約パーティション (MSR) を
サイズとオフセットをちゃんと指定して作ろうとしてエラーがでたので、
引数のoffsetを省略すると、
はじめのほうから見ていって最初に入るところに入れてくれた。

DISKPART> create partition msr size=400

6. ドライブレター修正

ドライブレターの確認と必要あれば修正。
パーティション一つ消して2つぶっこんだのだから後ろのレターがズレている可能性が大きい。

使うコマンド

list volume  
select volume [volume番号]
assign letter=[ドライブ文字]

レター修正が終わったら

DISKPART> exit

これでdiskpart終了

最終的には以下のようになる。

DISKPART> list disk

省略

DISKPART> select disk 0

ディスク 0 が選択されました。

DISKPART> list partition

|  Partition ### | Type               | Size      | Offset  |                  補足                       |
|  ------------- | ------------------ | -------   | ------- | --------------------------------------------|
|  Partition 1   | システム            |   100 MB  | 1024 KB |    EFI システムパーティション                 |
|  Partition 2   | 予約                | 400 MB    |  101 MB |       Microsoft(R) 予約パーティション (MSR)  |
|  Partition 3   | プライマリ          |    475 GB |  501 MB  |    Windowsパーティション                     |
|  Partition 4   | 回復                | 871 MB    |  476 GB  |       回復パーティション                     |

7. ブートローダー bcdboot

例:
bcdboot C:\Windows /l ja-JP /s I: /f UEFI
EFI システムパーティション の指定としてドライブレター I: を指定している。

あとは再起動したら UEFIブートできるはず。

Windows RE (Windows回復環境)

インストールメディアなしで使えるようにする

uefiにしたのはいいけど今度はもしものときに
インストールメディア使わなくても
Windows回復環境 (Windows RE)が使えるようにしておきたい人向け

winre.wimがあれば
以下ページ参考。ただし、誤字がある。.winではなく.wim

参考URL:
[windows] Windows 回復環境 (WinRE) を修理する

reagentc /enable

これで winre.wim が設定される。これで Windows RE が使われるようになる。
このコマンドで同時に回復パーティションへのコピーも行われる。
回復パーティションの中身はこれで完成のはず。

もし回復パーティションをまだ作っていないのなら
一旦 reagentc /disable してから回復パーティションを作って、
また reagentc /enable すればいい

reagentc で RE設定のポイントは
C:\Windows\System32\Recoveryにwinre.wim を用意すること。

あと、
winre.wim は隠しファイル設定になる場合がある。

また、
windows がインストールされているパーティションと同じパーティションに windows RE があることになるから
このままだと windows がインストールされているパーティションに問題があれば RE 使えないよ。

でも windows RE は別パーティションに作ることもできるのよ。
bitLocker で暗号化されている場合でも別パーティションに回復パーティションを用意しなければ使えない

wimを手に入れる方法

なんらかの理由でwinre.wimがない人さん向け

参考URL:
WIMBoot イメージの作成

ここでいきなり .wim がでてくるけど、持ってない人はインストールメディアの x64 のほうのinstall.wim をコピーすればいいとおもう。もうみんな x64 だよね?

Copy C:\Images\install_updated.wim C:\Images\install_temp.wim

マウント先ディレクトリ作って

md C:\mount\Windows

マウントする。たぶんエラーでる。たぶん/ReadOnlyつければうまくいく

install.wim ファイルのマウント ディレクトリを作成して、そのイメージをマウントします。

Dism /Mount-Image /ImageFile:”C:\Images\install_temp.wim” /Index:1 /MountDir:C:\mount\Windows

そのイメージから winre.wim ファイルを移動します。

move C:\mount\Windows\Windows\System32\Recovery\winre.wim C:\images\winre.wim

Dismで.wimをマウントしたものをアンマウントするとき

参考URL:
DISM を使ってイメージをマウントおよび変更する

Dism /Unmount-Image /MountDir:C:\mount\Windows /Commit

msdn見てるとコミットが例になってるけどぶっちゃけ変更してないし間違ってなにか知らないうちに変更しちゃってたときにそれで更新しちゃうのは避けたいので

Dism /Unmount-Image /MountDir:C:\mount\Windows /discard

この/discardのほうにしといたほうが無難でしょう。

一応Dismの使い方公式ページ

参考URL:
DISM イメージ管理のコマンド ライン オプション

回復パーティションを作る方法(UEFIの場合)

なんらかの理由で回復パーティションがない人向け

参考URL:
UEFI/GPT ベースのハード ドライブ パーティション

create partition primary
format quick fs=ntfs label="Recovery tools"
assign letter="R"
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
gpt attributes=0x8000000000000001
list volume
exit

500 MB 未満のパーティションの場合は、少なくとも 50 MB の空き領域が必要です。
500 MB 以上のパーティションの場合は、少なくとも 320 MB の空き領域が必要です。
1 GB を超えるパーティションの場合は、少なくとも 1 GB の空き領域を確保しておくことをお勧めします。

とあり、winre.wim 用に通常 250 ~ 300 MB が必要とあり、
また、たとえば 340 MB くらい使うときがあったので
回復パーティションの大きさは
500 MB 未満はちょい少ないと思うので 820 MB ~ 1 GB の間、たとえば 870 MB でよいだろう

上記ページには各種類のパーティションの最低サイズとか載っているので一応目を通しておくとなおよい

Comments