こんにちは、amumaです。
最近自宅で使っているPCのSSDが使用時間も多くなってきているので、壊れる前に新しくしようということになり交換をしました。
その時にWindowsの再インストールをしたり、データをバックアップしたり、ソフトの再インストールをしたりと面倒臭いのでいっそのことdismを使ってクローンを取ってしまおうということで少しやってみました。
今回はその時の備忘録です。基本的にMicrosoft Docsを参照しながら作業を進めました。
前準備
クローン作成
普通にPEディスクなりインストーラなりで起動。インストーラの場合Shift + F10でコマンドプロンプトを立ち上げる。
立ち上がったらまずはボリュームを確認。必要なのはキャプチャしたいシステムディスクとキャプチャデータの保存先(外付けメディア)のボリュームレター。
diskpart list volume
ここで仮にシステムディスクをc:、外部PEディスクをd:、外付けメディアをe:とする。
確認できたら実際にキャプチャを行う。キャプチャしたwimファイルの名前はここでは'testenv.wim'とする。
dism /capture-image /imagefile:"e:¥testenv.wim" /capturedir:c:¥ /name:testenv /checkintegrity
これで実行。ラベルを間違えないように気をつける。あとはキャプチャが始まり、しばらくしたらwimファイルが外付けメディアの直下に保存されているはず。。
/checkintegrityはキャプチャデータの真正性を確認するオプション。時間もかかるので任意。
正常に終わっていることを確認したら電源を切って新しいHDDなりSSDに交換する。
クローンの展開
新しいディスクに換装できたら実際にクローンの展開を行っていく。まずは外部PE起動。
ひとまずdiskpartとかでdisk0に新しいディスクが認識されているか確認。確認は大事。
まずはパーティションを区切る。ここの作業はめちゃ重要で、間違えたら起動しないことにも繋がるので注意して行う。必要なコマンドが多いので下にあるスクリプトを使用する手法を推奨する。
diskpart select disk 0 clean convert gpt create partition efi size=100 format quick fs=fat32 label="System" assign letter="S" create partition msr size=16 create partition primary shrink minimum=500 format quick fs=ntfs label="Windows" assign letter="W" 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
ちなみにMS Docsではこの過程をスクリプト化している。もしスクリプト化する場合、下記コマンドを丸々コピペしてtxt形式でPEメディア内に保存しておく。
select disk 0 clean convert gpt create partition efi size=100 format quick fs=fat32 label="System" assign letter="S" create partition msr size=16 create partition primary shrink minimum=500 format quick fs=ntfs label="Windows" assign letter="W" 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
diskpartにおいてスクリプトの実行には /s オプションを使用する。仮にスクリプトのテキストファイルが'createpartitions-UEFI.txt'だった場合、実行するコマンドは
diskpart /s d:¥createpartitions-UEFI.txt
となる。
一応’list vol’コマンドとかでちゃんとパーティションが区切られていることを確認できたらクローンの展開を行う。
それぞれのボリュームレターは上記コマンドで割り振ったものを前提とし、インストールメディアを上と同じくd:、外部メディアをe:とする(おそらく実際はc:などが振られている)。
クローンの展開はdismコマンドを使用する。以下のコマンドを順に実行していけばよい。こちらもコマンドの下にbatスクリプトについて書いたので、スクリプト化した方が楽だし安全。
powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c dism /Apply-Image /ImageFile:e:¥testenv.wim /Index:1 /ApplyDir:W:\ W:\Windows\System32\bcdboot W:\Windows /s S: md R:\Recovery\WindowsRE xcopy /h W:\Windows\System32\Recovery\Winre.wim R:\Recovery\WindowsRE\ W:\Windows\System32\Reagentc /Setreimage /Path R:\Recovery\WindowsRE /Target W:\Windows W:\Windows\System32\Reagentc /Info /Target W:\Windows
スクリプト化するなら以下。ここでbatファイルの名前は'Applyimage.bat'とし、PEメディアの直下(d:¥)に置くものとする。
call powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c dism /Apply-Image /ImageFile:%1 /Index:1 /ApplyDir:W:\ W:\Windows\System32\bcdboot W:\Windows /s S: md R:\Recovery\WindowsRE xcopy /h W:\Windows\System32\Recovery\Winre.wim R:\Recovery\WindowsRE\ W:\Windows\System32\Reagentc /Setreimage /Path R:\Recovery\WindowsRE /Target W:\Windows W:\Windows\System32\Reagentc /Info /Target W:\Windows
スクリプトの実行にはbatファイルに対してwimファイルを引数として渡してあげる必要がある。以下のような形で実行する。
d:¥applyimage.bat e:¥testenv.wim
正常にコマンドが終了したら再起動してみる。正常に終わっていればこれで新しいHDD/SSDにWindowsの環境は移しかえられて起動できるようになっているはず。
場合によっては初回起動時のみchkdskなどが走る可能性があるが、気長に様子を見ておく。
また自分の場合、回復環境がなぜか正常に展開することができなかった。まぁこれができている時点でPEメディアなりインストールディスクを持っているのでローカルの回復環境は必要ないと思うが。自分はEFIパーティションとシステムパーティションしか置いていない。
終わり。