Top > CUIでバックアップと復元

CUIでバックアップと復元
HTML ConvertTime 0.075 sec.

Windowsには様々な復旧方法が用意されている。


その中でも今回紹介するのがコマンドラインベース(CUI)によるバックアップ方法と適応方法である。


CUIと言われるとなんだか不安に感じる人も少なくないが、それを簡易的に実行するために設けられているのがバッチファイル(*.bat)というものだ。


自分の環境に応じたバッチファイルを一度準備すれば、そのバッチファイルを実行すれば目的を実現できるのである。

補足と追記 Edit

具体的な検証を行ったところ、次の事が判明した。


  • cptimgprt.batでシステムパーティションがキャプチャできない
  • 同じPCにイメージを適応する際、基本的にシステム読み出し情報を再書き込みする必要がない
  • 空のフォルダはキャプチャされないが大きな問題は発生しない
  • Windows PEがあることは望ましいが手持ちのインストールディスクでもこれらの作業が可能なこと
  • 従ってcrtprt.txtでシステムが存在するドライブを完全消去ではなく、適応したいパーティションだけを初期化しイメージを各パーティションに適応して簡易Windowsを再起動するだけに変更した
  • これにより、BIOSベースかUEFIベースかを意識する必要も、MBR形式化GPT形式化を判断する手順を省くことができる
    特にシステムパーティションが取り込めない不具合は大変ご迷惑をおかけしました。
    既に最新のファイルをページ最下部のダウンロードページにアップロードしましたのでご利用ください。
    手持ちのインストールディスクを使う場合は最初に言語とキーボードの選択が出てくるが、既に日本語が選ばれているので[ALT]+[N]で次の画面へ進んでから[Shift]+[F10]を押すと簡易Windowsのコマンドプロンプトが起動するのでそれを利用して作業する。ただし、Windows 7のインストーラーではdismコマンドはimagexというコマンドになり、書式も違うのでご注意を。
    以下本文

前提条件と準備するもの Edit



準備するもの Edit


必ず準備しなければならないのは、外付けハードディスクである。
このページの最下部に用意してあるダウンロードページの簡易Windows wpe.iso(Windows PE)を使用する場合は、光学ドライブとCD-R1枚


光学ドライブは、簡易Windowsを起動するために使用するもので、外付けハードディスクはバックアップデータを保存するのに使用する。



前提条件 Edit



  • バックアップの作成や適応には、内臓ドライブで実行しているWindowsの各バージョンではなくWindowsPEという簡易Windowsを使用します。
  • 作成したバックアップはWindowsが起動している同一ドライブの別パーティションに保存してはならない。
  • バックアップを適応する際は、Windowsが実行されているドライブは完全に初期化されるので、バックアップデータは必ず外付けハードディスクで管理すること。
  • バックアップを取得したり、適応したりするための簡易Windowsでは、音声のフィードバックを受けることができないことを十分注意すべきである。
  • バックアップを保存する外付けハードディスクは必ずNTFSでフォーマットされた1つ以上のパーティションが存在しなければならない

大まかな流れ Edit



向上心が強い方は各バージョンに応じたWindows ADKや、Windows AIKを導入して簡易Windowsを作成し、これを用いて健全な状態のWindowsのバックアップや復元といった事ができるツールを使用して不安定になったシステムを元に戻すことができます。


ただし、初心者がここまでの領域に達するには、私も含めて難易度がかなり高いので、下のURLから出来上がったisoファイルをダウンロードし、それをCD-ROMに展開して使用するのがお勧めである。


この準備ができたらDISMというコマンドを使って用意したハードディスクにバックアップを作成するのだが、その前に行ってほしい作業がある。


それは「これはバックアップのフォルダ」ということが判るディレクトリを作り、同じドライブに複数のパーティションがある場合には\backup\systemや\backup\dataまたは\backup\moviesなどのようにフォルダー分けして、どのパーティションのファイルが入っているのかを一目瞭然に管理できるようにしておくことだ。


次に外付けハードディスクをe:\とした場合のフォルダーを作成するコマンドラインを示す。



md e:\backup


md e:\backup\system


md e:\backup\data


md e:\backup\movies


md e:\backup\photos




Windowsが動作している同じドライブに存在するパーティション分のフォルダーを作る。



ドライブ番号とパーティション番号の数え方 Edit



ドライブ番号(Disk Number)は、0から始まります。


内蔵の光学ドライブを備えている場合は、内臓ハードディスクは1になる可能性があるので、コマンドプロンプトが開いて下のように入力してドライブの認識情報を確かめておこう。


  • コマンドプロンプトでdiskpartと入力してエンターキーを押す
  • list diskと入力してエンターキーを押す
  • 現在接続されているディスクがディスク番号、総容量、形式を含んだ表が示される
  • list volumeと入力してエンターキーを押す
  • 各パーティションのドライブ文字、パーティションの種類、パーティションのフォーマット形式、パーティションの総容量が表に示される


外付け光学ドライブを使用している場合は簡易Windowsが起動したら、その光学ドライブは取り外して構わないので、その後に外付けハードディスクを取り付ければ確実に内蔵ディスクが0、外付けハードディスクは1のままとなる。


しかし、内蔵ディスクが二つあったり、外付け光学ドライブを取り外さないまま外付けハードディスクを取り付けた場合はこの限りではないので、音声のフィードバックを受けられる時によく確認してほしい。


ディスク番号が変わってしまうとe:\やf:\などのドライブ文字も変わってしまうからだ。



BIOSベースとUEFIベースの判断基準 Edit



現在PCには大きく分けてBIOSベースとUEFIベースが存在する。


通常使用では特に意識する必要はないが、ハードディスクとりわけシステムディスクのパーティショニングを決定する上で欠かすことができないからだ。


時代順ではBIOSベースの方が古いが、現在のPCの多くはUEFIベースなので、こちらから説明する


diskpartコマンドでlist volumeとしたとき、EFIパーティションが見つかればUEFIベースで、おのずとMSRパーティションも作成しなければならない。


一方BIOSベースのハードディスクを同じコマンドで覗いてみると、NTFS Partitionと表記されている。
しかし、その内の一つはMBRパーティションになっていることに注意が必要だ。


また各パーティションの配置順序と容量も決められている。


ここでは配置順を>で()内に容量(メガ単位)で示す。


ただし、目が見えないと折角recoveryを作っても結局利用できないので、recoveryパーティションは作成しないことにする。


BIOSベース 
MBR(300)>>recovery(500)>Windows(<8192)>その他(自由に)


UEFIベース
EFI(100)>MSR(128)>Windows(<8192)>recovery(500)>その他(自由に)



3つのファイルから構成されている Edit



下に各ファイルの役割を説明する。


  • cptimgprt.bat
    • バックアップを保存するときに使用するバッチファイル
  • aplimgprt.bat
    • バックアップを適応するために使用するバッチファイル
  • crptrt.txt
    • バックアップを適応するためにパーティションセットを準備するためのファイル
      crtprt.txtはUEFIベースのPC用に作られているので、必要に応じてBIOSベースの場合は書き変えてもらいたい。

crtprt.txtの編集 Edit



このファイルはハードディスク上のパーティションセットを準備するためのファイルです。



rem ドライブを指定します
select disk 0
rem 指定したドライブのパーティション情報を消去
clean
select disk 0
rem GPTに変換します。BIOSベースの場合はGPTではなくMBRになります
convert gpt noerr
select disk 0
rem EFIパーティションを100MB作ります。BIOSベースの場合はEFIパーティションとMSRパーティションの代わりにprimary partitionを300MBで作成し、MBRを示すset id=27とします。またFAT32形式でフォーマットします。
create partition efi size=100 noerr
format fs=fat32 label=efi quick noerr
rem ブートエントリーコードを書き込むために、明示的にドライブ文字を割り当てます。
rem 起動後はドライブ文字はなくなり、エクスプローラなどには表示されなくなる。
assign letter=s noerr
select disk 0
rem BIOSベースでは不要です。またいずれの形式でもフォーマットは行いません。ドライブ文字も与えません。
create partition msr size=128 noerr
select disk 0
rem オペレ-ティングシステムが入るパーティションです。現在のvolume cと容量をぴったり合わせてください。
create partition primary size=71783 noerr
format fs=ntfs label=windows quick noerr
rem ここでは仮にドライブ文字をwに設定しているが、起動時には自動的にcに変更される。
assign letter=w noerr
select disk 0
create partition primary noerr
format fs=ntfs label=data quick noerr
assign letter=d noerr




cptimgprt.batの編集 Edit



上と同様このファイルも編集しておく必要がある。



rem 現在日時からファイル名を自動生成
set dt=%date%& set tm=%time: =0%
set fn=%dt:~0,4dt:~5,2dt:~8,2tm:~0,2tm:~3,2%%tm:~6,2%.wim
echo システムパーティションをバックアップしています
dism /capture-image /capturedir:c:\ /imagefile:a:\bcd\efg\hij\%fn% /checkIntegrity /verify /compress:maximum /name:"sysprt"
echo データパーティションをバックアップしています
dism /capture-image /capturedir:d:\ /imagefile:b:\cde\fgh\ijk\%fn% /checkIntegrity /verify /compress:maximum /name:"datprt"
wpeutil reboot



aplimgprt.batの編集 Edit



これでファイルの編集も最後です。。


@echo off
set dt=%date%& set tm=%time: =0%
set fn=%dt:~0,4dt:~5,2dt:~8,2tm:~0,2tm:~3,2%%tm:~6,2%.wim
rem システムパーティションのバックアップイメージ保存フォルダを指定してください。
set svsysfld=a:^\bcd^\efg^\hij^\
rem データパーティションバックアップイメージ保存フォルダを指定してください。
set svdatfld=b:^\cde^\fgh^\ijk^\
rem 上で指定されたフォルダが存在しなければ作成します。
if not exist "%svsysfld%" (mkdir %svsysfld%)
if not exist "%svdatfld%" (mkdir %svdatfld%)

dism /capture-image /capturedir:c:\ /imagefile:%svsysfld%%fn% /checkIntegrity /verify /compress:maximum /name:"sysprt"
dism /capture-image /capturedir:d:\ /imagefile:%svdatfld%%fn% /checkIntegrity /verify /compress:maximum /name:"datprt"
wpeutil reboot

間違ってイメージが復元できないということのないように、私的には配慮して作り直したつもりだが、不十分なところがあればご意見をいただきたい。



isoイメージをCD-Rに焼くには光学ドライブにCD-Rをセットし、イメージファイルを選択したら右クリック([Shift]+[F10])のメニューから[ディスクに書き込む]という項目を選択する。 Edit


あとはダイアログに従うだけで完成する。


光学ドライブから起動するには、トレーを納めた後にシステムを再起動する。


ロゴが表示されメディアが回転し始めたら、どれかのキーを連打する。


メディアが速度を上げて回り始めれば成功で、失敗すればWindowsが通常起動する。


ただし、ESCやDelete、F1~F12のキーはBIOSやブートメニューが表示される可能性があるので控えよう。


それでは、関連ファイルのダウンロードをして挑戦していただこう。



簡易Windowsの起動のテスト Edit



とりあえず光学ドライブ起動を試してみようと考えるのは当然の流れだ。


光学ドライブの動きが止まれば簡易Windowsは起動し、x:\で始まる特殊なコマンドプロンプトが現れる。


このときPCの電源を長押しして電源を落としたくなるが、その前に


wpeutil reboot
wpeutil shutdown


を試してほしい。これが正常に動作すれば簡易Windowsの正常動作も確認できるからだ。