以前は、次の方法でWindowsインストール(NT/2000/XP/2003)を新しいブートメディアに転送することが可能でした。
これはWindows(Vista/7/2008)でも可能ですか?そのような手順は機能しますか?
たとえば、bootmgrとbcdが実際に内部でどのように機能するかを説明できますか? grubまたはntldr?第一段階と第二段階はありますか?ブロックリストをどこかに保持していますか?
更新:私の元の問題はハードウェアに関連していることが判明しました。より広い問題に対処するために言い換えられた質問。
bootmgrは、「ドライブ文字」を認識しません。これは、Windowsが起動プロセスの後半で行うことです(レジストリで構成され、物理ディスクの構成とはまったく関係ありません)。
Linuxを使用してシステムのクローンを作成することは、Microsoftではサポートされていません。要するに、公式の答えはそれをしないでくださいです。 WindowsPEを使用する必要があります。 DISMは、Microsoftが推奨する形式(Windowsセットアップで使用されるものと同じ)であるWIMイメージファイルを作成して適用できます。
マシンのクローン作成は、通常、次のようになります。
sysprep
を実行します。WinPEを起動します。 dism
を使用してドライブをキャプチャします。このバッチファイルのようなもの:
@ECHO OFF
IF %1 == "" GOTO DIE:
CHKDSK /X C:
CHKDSK /X D:
IF NOT ERRORLEVEL 0 GOTO DIE:
DISM /Capture-Image /ImageFile:Z:\Path\To\Images\%1.wim /Name:Boot /CaptureDir:C:\ /Compress:fast
DISM /Append-Image /ImageFile:Z:\Path\To\Images\%1.wim /Name:Windows /CaptureDir:D:\
:DIE
非標準のパーティションレイアウトがある場合は、これを変更する必要があります。
移行先コンピューターをWinPEで起動します。 diskpart
とdism
を使用して、画像を適用します。
パーティションを構成するための標準のdiskpart
スクリプト:
SEL DISK 0
CLEAN
CREATE PART PRI SIZE=350
ACT
FORMAT QUICK
ASSIGN LETTER=M
CREATE PART PRI
FORMAT QUICK
ASSIGN LETTER=O
EXIT
イメージを書き込むための標準のdism
バッチファイル:
@ECHO OFF
IF %1 == "" GOTO DIE:
DISKPART /s Diskpart-Standard.script
IF NOT ERRORLEVEL 0 GOTO DIE:
DISM /Apply-Image /ImageFile:%1 /Index:1 /ApplyDir:M:\
DISM /Apply-Image /ImageFile:%1 /Index:2 /ApplyDir:O:\
IF NOT ERRORLEVEL 0 GOTO DIE:
BCDEDIT -STORE M:\BOOT\BCD -set {bootmgr} device partition=M:
BCDEDIT -STORE M:\BOOT\BCD -set {memdiag} device partition=M:
BCDEDIT -STORE M:\BOOT\BCD -set {default} device partition=O:
BCDEDIT -STORE M:\BOOT\BCD -set {default} osdevice partition=O:
:DIE
ECHO Script ended...
プロセスは機能する可能性がありますが、スクリプトの最後の4つのbcdedit
行が欠落している可能性があります。
これはWinREを構成しないことに注意してください。ただし、WinPEがあれば、必要ありません。