Windows Vista / 7 / 2008 bootmgr은 뒤에서 어떻게 작동합니까?


4

항상 다음을 통해 Windows 설치 (NT / 2000 / XP / 2003)를 새 부트 매체로 전송할 수있었습니다.

  • 파티션 테이블 및 MBR 재 작성
  • ntfsclone을 사용하여 파티션 복사
  • 까다로운 부분 : 디스크 구조는 동일하게 유지되어야하고 ntldr이있는 파티션은 이전과 동일한 LBA 섹터에서 시작해야했습니다.

여전히 Windows (Vista / 7 / 2008)에서도 가능합니까? 그러한 절차가 효과가 있습니까?

  • 디스크 서명 (!) 및 MBR이있는 파티션 테이블 복사
  • 하드 드라이브에 맞게 파티션 크기를 조정하십시오
  • Ntfsclone "시스템 예약 파티션"및 "부팅 파티션".
  • 기존 하드 디스크와 새 하드 디스크의 동일한 섹터에서 여전히 하나 또는 둘 다 시작해야합니까?

grub 또는 ntldr과 달리 bootmgr과 bcd가 실제로 어떻게 작동하는지 설명 할 수 있습니까? 첫 번째와 두 번째 단계가 있습니까? 차단 목록을 어딘가에 보관합니까?

업데이트 : 내 원래 문제는 하드웨어와 관련이있는 것으로 나타났습니다. 더 광범위한 문제를 해결하기 위해 질문을 다시 표현했습니다.


실제로 나는했다. 왜 작동하지 않는지 찾지 못했습니다.

답변:


3

bootmgr은 "드라이브 문자"를 인식하지 못합니다. 이는 부팅 프로세스에서 늦게 Windows가 수행하는 작업이며 레지스트리에서 구성되며 실제 디스크 구성과는 전혀 관련이 없습니다.

Microsoft는 Linux를 사용하여 시스템을 복제 할 수 없습니다. 간단히 말해서 공식 답변은 Do n't Do That 입니다. Windows PE를 사용해야합니다. DISM은 Microsoft가 선호하는 형식 (Windows 설치 프로그램과 동일한 형식) 인 WIM 이미지 파일을 만들고 적용 할 수 있습니다.

머신 복제는 일반적으로 다음과 같습니다.

  1. 참조 머신 설정. 를 실행하십시오 sysprep.
  2. 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
    

    비표준 파티션 레이아웃이있는 경우 수정해야 할 수도 있습니다.

  3. 대상 컴퓨터를 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...
    

프로세스가 작동 할 수 있지만 bcdedit스크립트에서 마지막 네 줄 이 누락되었을 수 있습니다 .

WinRE를 구성하지는 않지만 WinPE가있는 경우에는 필요하지 않습니다.


자세한 답변 감사합니다. 언젠가는 네이티브 Microsoft 도구를 배우는 데 시간을 투자 할 수도 있습니다. 그러나 bootmgr의 내부 작업에 대한 세부 정보는 포함하지 않았습니다.
edgar.holleis

죄송합니다.이 답변은 수퍼 유저에게 주제가 아닙니다 . 에 서버 오류 우리는 형 답변으로 "그렇게하지 않는다"고려 정답을 가끔. 나는 이것을 참고로 여기에 남겨 둘 것이지만 당신은 그것이 여기의 질문에 맞지 않는 것이 맞습니다.
Chris S
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.