Windows 이미지를 캡처할 때 드라이버 구성 유지 관리

일반적인 배포 시나리오는 참조 컴퓨터에서 단일 Windows 이미지를 캡처한 다음, 하드웨어 구성이 동일한 대상 컴퓨터 그룹에 이 이미지를 적용하는 것입니다.

설치하는 동안 시간을 ​​절약하고 최종 사용자에 대한 OOBE(첫 실행 경험) 속도를 높이려면 Windows 설치 프로그램에서 참조 컴퓨터의 드라이버 구성을 Windows 이미지의 일부로 유지 관리하도록 지시할 수 있습니다. 이 작업은 참조 컴퓨터의 하드웨어와 대상 컴퓨터의 하드웨어가 동일한 경우에만 수행해야 합니다. 이렇게 하면 이미지 캡처 및 배포 중에 Windows 설치 프로그램에서 드라이버 구성을 유지 관리합니다.

드라이버 구성을 유지 관리하도록 Windows 설치 프로그램에 지시

이미지를 캡처하기 전에 Windows 설치 프로그램에서 드라이버 구성을 유지 관리하도록 지시하는 응답 파일을 사용하여 컴퓨터를 일반화합니다.

응답 파일을 사용하여 드라이버 구성을 유지 관리하려면

  1. 관리자 컴퓨터에서 Windows SIM(Windows 시스템 이미지 관리자)을 엽니다. 시작을 클릭하고, Windows 시스템 이미지 관리자를 입력한 다음, Windows 시스템 이미지 관리자를 선택합니다.

  2. 새 응답 파일을 만들거나 기존 응답 파일을 업데이트합니다. 자세한 내용은 응답 파일 만들기 또는 열기응답 파일 작성 모범 사례를 참조하세요.

  3. Microsoft-Windows-PnpSysprep/PersistAllDeviceInstalls 설정을 추가합니다. 자세한 내용은 이 항목의 개요 섹션을 참조하세요.

  4. 검색할 수 없는 하드웨어가 컴퓨터에 있는 경우 Microsoft-Windows-PnpSysprep/DoNotCleanUpNonPresentDevices 설정을 포함합니다. 자세한 내용은 이 항목의 검색할 수 없는 하드웨어 섹션을 참조하세요.

  5. 응답 파일을 사용하여 컴퓨터를 일반화합니다. 예:

    Sysprep /generalize /unattend:C:\unattend.xml
    

개요

Windows 기본 제공 드라이버 패키지에는 널리 사용되는 다양한 하드웨어를 지원하는 장치 드라이버가 포함되어 있습니다. 특정 하드웨어를 부팅하기 위해 추가 장치 드라이버가 필요한 경우 추가 장치 드라이버를 Windows 이미지에 사전 설치할 수 있습니다. IHV(독립 하드웨어 공급업체)에서 이러한 추가 장치 드라이버를 디바이스 하드웨어와 함께 제공하는 경우가 많습니다. 장치 드라이버를 추가하는 방법에 대한 자세한 내용은 감사 모드에서 온라인으로 드라이버 추가를 참조하세요.

여러 컴퓨터에 배포할 Windows 이미지를 준비하려면 Sysprep(시스템 준비) 도구를 사용하여 Windows 이미지를 일반화해야 합니다. Windows 이미지를 일반화하면 컴퓨터 관련 정보가 제거되고 첫 번째 부팅을 위해 장치 드라이버가 준비됩니다. 이 준비에 포함되는 단계는 다음과 같습니다.

  • 하드웨어에 대한 디바이스 상태가 제거됩니다.

  • 부팅에 중요한 드라이버 설정이 기본값으로 다시 설정됩니다.

  • 디바이스 로그 파일이 삭제됩니다.

컴퓨터를 일반화하는 경우 Microsoft-Windows-PnpSysPrep\PersistAllDeviceInstalls 설정이 있는 응답 파일을 사용하여 시간을 절약합니다. 이 설정은 Windows 설치 프로그램에서 동일한 하드웨어에 대한 디바이스 상태를 제거하고 다시 구성하지 않도록 방지합니다. 처음 부팅할 때 검색된 장치 드라이버가 이미 미리 구성되어 있으므로 더 빠른 첫 번째 부팅 환경을 사용할 수 있습니다.

중요 참조 컴퓨터의 하드웨어 및 하드웨어 구성이 대상 컴퓨터의 해당 구성과 동일하지 않은 경우 PersistAllDeviceInstalls 설정을 사용하지 마세요. 하드웨어 또는 하드웨어 구성의 사소한 차이일지라도 심각하거나 쉽게 간과되는 문제가 발생할 수 있습니다. 자세한 내용은 이 항목의 하드웨어 구성 차이 문제 해결 섹션을 참조하세요.

PersistAllDeviceInstalls 설정을 기본 참조 이미지에 사용하지 않는 것이 좋습니다. 대신 다른 하드웨어 구성이 있는 컴퓨터의 각 그룹에 대해 먼저 기본 참조 이미지를 계획된 하드웨어 구성이 있는 새 참조 컴퓨터에 로드합니다. 다음으로, 이 설정의 새 이미지를 캡처하고 PersistAllDeviceInstalls 설정을 사용합니다.

Windows 이미지를 일반화하는 방법에 대한 자세한 내용은 Windows 설치 Sysprep(일반화)을 참조하세요.

드라이버 수정 버전 및 드라이버 순위 지정에 대한 모범 사례

동일한 이미지에서 동일한 드라이버 패키지의 여러 버전 또는 수정 버전을 유지 관리하지 않습니다. 오프라인 또는 온라인 서비스 도구를 사용하여 드라이버를 업데이트합니다.

일반적으로 Windows 설치 프로그램에서 컴퓨터를 부팅하고 해당 컴퓨터에 여러 버전의 드라이버 패키지가 있는 경우 설치 프로그램은 드라이버 순위 지정을 사용하여 설치할 드라이버를 결정합니다. 그러나 PersistAllDeviceInstalls 설정을 사용하면 일반적인 드라이버 순위 지정 프로세스가 수행되지 않습니다. 따라서 오래된 드라이버를 사용하는 디바이스가 설치된 상태로 남아 있을 수 있습니다. 드라이버 순위를 지정하는 방법에 대한 자세한 내용은 MSDN에서 Windows에서 드라이버 순위를 지정하는 방법을 참조하세요.

PersistAllDeviceInstalls 설정을 사용하는 이미지에 장치 드라이버를 추가해야 하는 경우 다음 방법 중 하나를 사용하여 장치 드라이버를 업데이트할 수 있습니다.

하드웨어 구성 차이 문제 해결

PersistAllDeviceInstalls 설정이 올바르게 작동하려면 참조 컴퓨터와 대상 컴퓨터에서 하드웨어 구성이 동일해야 합니다. 하드웨어 구성에 포함되는 구성 요소는 다음과 같습니다.

  • 하드웨어 제조업체 및 모델

  • 펌웨어. 업데이트, 수정 버전 및 구성 차이로 인해 일부 디바이스에서 장치 드라이버 일치에 대해 다른 조건을 보고하거나 다른 리소스를 사용할 수 있습니다. 예:

    • PCI(Peripheral Component Interconnect) 기반 디바이스는 다른 하위 시스템 수정 번호를 보고된 하드웨어 ID에 포함할 수 있습니다.

    • BIOS 수정 버전은 ACPI(고급 구성 및 전원 인터페이스) 네임스페이스를 변경할 수 있습니다. 이로 인해 Windows 설치 프로그램에서 기존 디바이스를 다르게 보고하거나 기존 디바이스를 새 디바이스로 도입합니다.

    • BIOS 시스템 구성 차이로 인해 시스템 디바이스에서 다른 메모리, I/O, DMA(직접 메모리 액세스) 또는 IRQ(인터럽트 요청) 리소스를 클레임할 수 있습니다.

  • 물리적 위치. 하드웨어 구성은 동일한 슬롯, 포트 또는 소켓 번호를 사용하여 외부 디바이스에 연결해야 합니다. 예:

    • PCI 확장 카드는 동일한 슬롯 번호에 삽입해야 합니다.

    • USB 디바이스는 동일한 USB 호스트 컨트롤러 및 통합 허브의 동일한 포트 번호에 연결하거나 배선해야 합니다.

    • 스토리지 디바이스는 동일한 스토리지 컨트롤러 및 채널에 연결해야 합니다.

하드웨어 구성의 낮은 위험, 중간 위험 및 높은 위험 수준 차이

PersistAllDeviceInstalls 설정을 사용하는 경우 하드웨어 차이로 인해 잠재적으로 문제가 발생할 수 있습니다. 그러나 일부 차이는 다른 차이보다 문제가 발생할 가능성이 더 높습니다.

낮은 위험 수준 차이

다음과 같은 하드웨어 차이 유형의 경우 잠재적인 드라이버 충돌을 해결하고 PersistAllDeviceInstalls 설정을 계속 사용할 수 있습니다.

  • CPU 클럭 속도

  • 메모리 양

  • 하드 디스크 용량

  • 외부 입력 디바이스(예: 키보드 및 마우스 디바이스)

  • 모니터

중간 위험 수준 차이

다음과 같은 하드웨어 차이 유형의 경우 PersistAllDeviceInstalls 설정을 사용하지 않는 것이 좋습니다.

  • 비디오 카드

  • 스토리지 드라이브 및 미디어 판독기(예: 광학 드라이브 및 카드 판독기)

  • 내부 또는 통합 버스 디바이스(예: USB 또는 1394 디바이스)

이러한 하드웨어 차이 유형이 있는 경우 이 설정을 사용하면 잠재적인 드라이버 충돌을 해결하더라도 설치 시간이 줄어들지 않을 수 있습니다.

높은 위험 수준 차이

주요 하드웨어 차이의 경우 PersistAllDeviceInstalls 설정을 사용하지 않습니다. 이러한 차이점에는 다음이 포함됩니다.

  • 마더보드 칩셋 또는 CPU 브랜드

  • 스토리지 컨트롤러

  • 폼 팩터 차이(예: 데스크톱에서 랩톱으로 또는 랩톱에서 데스크톱으로 변경)

  • 키보드 레이아웃 차이(예: 표준 101키 키보드에서 일본어 106키 키보드로 변경)

  • Windows 부팅 볼륨의 열거 경로에 있는 기타 모든 디바이스

하드웨어 구성 변경으로 인해 발생할 수 있는 문제 유형

하드웨어 또는 하드웨어 구성의 사소한 차이일지라도 다음과 같은 심각하거나 쉽게 간과되는 문제가 발생할 수 있습니다.

  • 시스템 불안정

  • 디바이스의 기본 또는 확장 기능 중 일부를 사용할 수 없음

  • 부팅 시간 연장 및 설치 시간 연장

  • 디바이스 및 프린터 폴더, 디바이스 관리자 및 기타 디바이스 관련 사용자 인터페이스에서 디바이스 이름이 잘못됨

  • 컴퓨터를 부팅할 수 없는 상태로 남겨 두는 심각한 시스템 문제

시스템 부팅 실패가 발생할 수 있는 하드웨어 구성 차이

참조 컴퓨터 및 대상 컴퓨터에서 부팅에 중요한 하드웨어가 동일하지 않은 경우 PersistAllDeviceInstalls 설정을 사용하면 컴퓨터를 부팅할 수 없는 상태로 남겨 둘 수 있는 심각한 시스템 문제가 발생할 수 있습니다.

부팅에 중요한 드라이버 패키지는 드라이버 패키지에 있는 .inf 파일의 <Version> 섹션에 있는 ClassGUID 지시문으로 식별되는 다음 Windows 디바이스 설정 클래스 중 하나에 속할 수 있습니다.

시스템 제공 디바이스 설정 클래스 ClassGUID

시스템

{4D36E97D-E325-11CE-BFC1-08002BE10318}

Computer

{4D36E966-E325-11CE-BFC1-08002BE10318}

프로세서

{50127DC3-0F36-415E-A6CC-4CB3BE910B65}

PCMCIA

{4D36E977-E325-11CE-BFC1-08002BE10318}

HDC

{4D36E96A-E325-11CE-BFC1-08002BE10318}

SCSIAdapter

{4D36E97B-E325-11CE-BFC1-08002BE10318}

DiskDrive

{4D36E967-E325-11CE-BFC1-08002BE10318}

CDROM

{4D36E965-E325-11CE-BFC1-08002BE10318}

FDC

{4D36E969-E325-11CE-BFC1-08002BE10318}

FloppyDisk

{4D36E980-E325-11CE-BFC1-08002BE10318}

볼륨

{71A27CDD-812A-11D0-BEC7-08002BE2092F}

USB

{36FC9E60-C465-11CF-8056-444553540000}

SBP2

{D48179BE-EC20-11D1-B6B8-00C04FA372A7}

1394

{6BDD1FC1-810F-11D0-BEC7-08002BE2092F}

Enum1394

{C459DF55-DB08-11D1-B009-00A0C9081FF6}

Keyboard

{4D36E96B-E325-11CE-BFC1-08002BE10318}

마우스

{4D36E96F-E325-11CE-BFC1-08002BE10318}

HIDClass

{745A17A0-74D3-11D0-B6FE-00A0C90F57DA}

포트

{4D36E978-E325-11CE-BFC1-08002BE10318}

이러한 디바이스 설정 클래스에 대한 자세한 내용은 MSDN의 시스템 제공 디바이스 설정 클래스를 참조하세요.

검색할 수 없는 하드웨어

새 컴퓨터를 최종 사용자에게 배포하는 경우 이동식 디바이스 또는 켜기/끄기 스위치가 있는 디바이스와 같은 일부 하드웨어가 처음 부팅하는 동안 없거나 검색되지 않을 수 있습니다. Windows 설치 프로그램은 기본적으로 처음 부팅할 때 검색되지 않은 하드웨어에 대해 미리 구성된 디바이스 상태를 제거합니다.

처음 부팅할 때 없거나 검색되지 않을 수 있는 하드웨어를 배포하려면 해당 장치 드라이버를 참조 이미지에 추가하고, Windows에서 설치할 수 있도록 해당 디바이스를 연결하거나 켜고, 이미지를 캡처할 때 Microsoft-Windows-PnpSysprep/DoNotCleanUpNonPresentDevices 설정을 사용합니다.

중요DoNotCleanUpNonPresentDevices 설정을 사용하면 과도한 디바이스 상태가 불필요하게 저장되고 부팅 시간이 느려질 수 있습니다.

드라이버 충돌 문제 해결

드라이버가 독립적인 부팅에 중요한 드라이버 패키지 간에 충돌하지 않도록 방지하려면 IHV에서 각 장치 드라이버가 서로 다른 서비스 이름, 레지스트리 키 값 및 이진 파일 이름을 사용하는지 확인해야 합니다.

잠재적 드라이버 충돌 예제

다음 예제에서는 Fabrikam이라는 가상의 IHV에서 StandardController 및 ExtremeController라는 두 가지 유형의 스토리지 컨트롤러를 생성합니다. Fabrikam은 한 번에 한 가지 유형의 스토리지 컨트롤러만 특정 컴퓨터에 설치된다고 가정합니다.

드라이버 패키지는 동일한 드라이버 서비스 이름인 storctrl을 사용하도록 StandardController 및 ExtremeController 구성을 정의합니다. storctrl 드라이버 서비스는 설치된 하드웨어(StandardController 또는 ExtremeController)에 따라 변경되는 다양한 서비스 설정을 사용합니다. StandardController와 ExtremeController는 모두 동일한 서비스를 사용하므로 공존할 수 없습니다.

이 샘플에서는 Storctrl.inf 드라이버 패키지 파일의 내용을 보여 줍니다.

[Version]
Signature = "$WINDOWS NT$"
Class = SCSIAdapter
ClassGuid = {4D36E97B-E325-11CE-BFC1-08002BE10318}
...
[Manufacturer]
%Fabrikam% = Fabrikam,NTx86

[Fabrikam.NTx86]
%StandardController% = StandardController_DDInstall,PCI\VEN_ABCD&DEV_0001
%ExtremeController%  = ExtremeController_DDInstall, PCI\VEN_ABCD&DEV_0002

...

[StandardController_DDInstall.Services]
AddService = storctrl,0x00000002,StandardController_ServiceInstall

[StandardController_ServiceInstall]
ServiceType  = 1 ; SERVICE_KERNEL_DRIVER
StartType    = 0 ; SERVICE_BOOT_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ImagePath    = %12%\storctrl.sys
AddReg       = StandardController_ServiceSettings

[StandardController_ServiceSettings]
HKR,Settings,LowPowerMode,0x00010001,1
HKR,Settings,ErrorCorrection,0x00010001,1

...

[ExtremeController_DDInstall.Services]
AddService = storctrl,0x00000002,ExtremeController_ServiceInstall

[ExtremeController_ServiceInstall]
ServiceType  = 1 ; SERVICE_KERNEL_DRIVER
StartType    = 0 ; SERVICE_BOOT_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ImagePath    = %12%\storctrl.sys
AddReg       = ExtremeController_ServiceSettings

[ExtremeController_ServiceSettings]
HKR,Settings,LowPowerMode,0x00010001,0
HKR,Settings,ErrorCorrection,0x00010001,4
...

StandardController가 참조 컴퓨터에 있고 이미지 캡처 중에 해당 설정이 유지되는 경우 storctrl 드라이버 서비스가 미리 구성됩니다. ExtremeController가 대상 컴퓨터에 있는 경우 Windows는 StandardController를 위해 미리 구성된 설정 및 파일을 사용할 수 있습니다. 이로 인해 예기치 않은 결과가 발생할 수 있습니다.

IHV는 다음 옵션 중 하나를 사용하여 충돌을 해결하는 데 도움이 될 수 있습니다.

  • 각 구성에 대해 별도의 .inf 파일이 있는 별도의 드라이버 패키지를 만들고, 배포 중에 필요한 드라이버 패키지만 Windows 이미지로 가져옵니다. 예를 들어 Storctrl.inf를 각각 StandardController용 버전과 ExtremeController용 버전의 두 개의 개별 .inf 파일로 분할하고 필요한 드라이버 패키지만 Windows 이미지로 가져옵니다.
  • 각 구성에 대해 다른 서비스를 드라이버 패키지에 만듭니다. 다른 이름(예: storctrl 및 storctrlx)을 각 서비스에 지정하고, 다른 이진 이미지 파일(예: Storctrl.sys 및 Storctrlx.sys)을 가리킵니다.

장치 드라이버 및 배포 개요