다음을 통해 공유


버그 검사 0x7B: INACCESSIBLE_BOOT_DEVICE

INACCESSIBLE_BOOT_DEVICE 버그 검사 값은 0x0000007B. 이 버그 검사 Microsoft Windows 운영 체제가 시작하는 동안 시스템 파티션에 대한 액세스 권한을 상실했음을 나타냅니다.

중요

이 문서는 프로그래머용입니다. 컴퓨터를 사용하는 동안 파란색 화면 오류 코드를 받은 고객인 경우 블루 스크린 오류 문제 해결을 참조하세요.

매개 변수

매개 변수 Description
1 UNICODE_STRING 구조체의 주소 또는 탑재할 수 없는 디바이스 개체의 주소
2 0
3 0
4 0

매개 변수 1의 의미를 확인하려면 가리키는 데이터를 확인합니다. 이 주소의 첫 번째 단어(USHORT)가 짝수이면 매개 변수 1은 유니코드 문자열의 시작입니다. 이 주소의 첫 번째 단어(USHORT)가 0x3 경우 매개 변수 1은 디바이스 개체의 첫 번째 필드(형식)입니다.

  • 이 매개 변수가 디바이스 개체를 가리키는 경우 부팅 디바이스를 읽어야 하는 파일 시스템이 초기화되지 않았거나 부팅 디바이스의 데이터를 파일 시스템 구조로 인식하지 못했습니다. 이 경우 지정된 디바이스 개체는 탑재할 수 없는 개체입니다.

  • 이 매개 변수가 유니코드 문자열을 가리키는 경우 이 주소에서 처음 8바이트를 읽어야 합니다. 이러한 바이트는 UNICODE_STRING 구조를 형성합니다. 다음 예제에서는 구조체가 정의되는 방법을 보여줍니다.

    USHORT Length;
    USHORT MaximumLength;
    PWSTR Buffer;
    

    길이 필드는 문자열의 실제 길이를 제공합니다. 버퍼 필드는 문자열의 시작을 가리킵니다. 버퍼 는 항상 0x80000000 이상입니다.

    문자열에는 부팅이 시도된 디바이스의 ARC(Advanced RISC Computing) 사양 이름이 포함됩니다. ARC 이름은 ARC 환경에서 디바이스를 식별하는 일반적인 방법입니다.

원인

INACCESSIBLE_BOOT_DEVICE 버그 검사 부팅 디바이스 오류로 인해 발생하는 경우가 많습니다. I/O 시스템 초기화 중에 부팅 디바이스 드라이버가 부팅 디바이스(일반적으로 하드 디스크)를 초기화하지 못했을 수 있습니다.

부팅 디바이스에서 데이터를 인식하지 못했기 때문에 파일 시스템 초기화에 실패했을 수 있습니다. 시스템 파티션을 다시 분할하거나 BIOS 구성을 변경하거나 디스크 컨트롤러를 설치하면 이 오류가 발생할 수 있습니다.

이 오류는 호환되지 않는 디스크 하드웨어로 인해 발생할 수 있습니다. 시스템의 초기 설정에서 오류가 발생한 경우 시스템이 지원되지 않는 디스크 컨트롤러에 설치되었을 수 있습니다. 일부 디스크 컨트롤러는 Windows가 시작될 때 다른 드라이버가 있어야 합니다.

이 오류는 스토리지 하드웨어가 실패하고 Windows의 요청에 응답할 수 없는 경우에 발생할 수 있습니다.

해결 방법

이 오류는 시스템이 시작되는 동안 항상 발생합니다. 이 오류는 디버거 연결이 설정되기 전에 자주 발생하므로 디버깅이 어려울 수 있습니다. OS가 해당 하위 시스템을 시작할 만큼 충분히 부팅되지 않았기 때문에 OS에 액세스할 수 없고 오류 로그가 비어 있을 수 있습니다. 다음 섹션에서는 Windows를 부팅할 수 없고 Windows를 부팅할 수 있는 경우 두 상황 모두에 대한 해결 방법을 설명합니다.

Windows를 부팅할 수 없는 경우

이 중지 코드를 수신하고 Windows가 OS로 앞으로 부팅되지 않는 경우 다음 해결 방법을 시도해 보세요.

  • 최근 하드웨어 변경 내용을 되돌려 갑니다.

    최근에 추가된 하드웨어, 특히 하드 디스크 드라이브 또는 컨트롤러를 제거하여 오류가 해결되었는지 확인합니다. 문제가 있는 하드웨어가 하드 디스크 드라이브인 경우 디스크 펌웨어 버전이 Windows 운영 체제 버전과 호환되지 않을 수 있습니다. 업데이트는 제조업체에 문의하세요. 다른 하드웨어 부분을 제거하고 오류가 해결되면 IRQ 또는 I/O 포트 충돌이 있을 수 있습니다. 제조업체의 지침에 따라 새 디바이스를 다시 구성합니다.

    컨트롤러 모드를 UEFI에서 레거시에서 AHCI로 변경하는 등 최근에 BIOS(UEFI) 설정을 변경한 경우 이러한 변경 내용을 되돌리기. 자세한 내용은 고급 호스트 컨트롤러 인터페이스를 참조하세요.

  • 스토리지 디바이스 호환성을 확인합니다.

    모든 하드 디스크 드라이버, 하드 디스크 컨트롤러 및 기타 스토리지 어댑터가 설치된 Windows 버전과 호환되는지 확인합니다. 예를 들어 Windows 10 사양에서 호환성에 대한 정보를 가져올 수 있습니다.

  • UEFI(BIOS) 및 펌웨어를 업데이트합니다.

    시스템 UEFI(BIOS) 및 스토리지 컨트롤러 펌웨어에 대한 업데이트의 가용성을 확인합니다.

  • Windows 미디어 만들기 도구를 사용하여 부팅 가능한 USB 썸 드라이브 또는 DVD를 만듭니다.

    다른 컴퓨터의 미디어 만들기 도구를 사용하여 부팅 가능한 USB 썸 드라이브 또는 DVD를 만듭니다. 이 도구를 사용하여 설치 파일을 선택하거나 USB에서 부팅하여 클린 설치를 수행합니다.

    자세한 내용은 Windows 10 다운로드 참조하세요.

    기능을 사용하지 않도록 설정하거나 UEFI(BIOS) 메뉴에서 부팅 시퀀스 우선 순위를 변경하여 HDD 대신 USB, FDD(FlashDiskDrive) 또는 DVD에서 부팅해야 할 수 있습니다.

    일반 부팅 메뉴 키

    부팅 메뉴 키는 제조업체마다 다릅니다. 이러한 키는 일반적으로 사용됩니다. PC 설명서를 확인하여 어떤 부팅 키가 사용되는지 확인합니다.

    자주 사용되는 부팅 메뉴 키는 다음과 같습니다.
    F12
    ESC 키
    F9
    F10
    F8

    BIOS(일반 UEFI) 설정 키

    UEFI(BIOS) 설정 키는 제조업체마다 다릅니다. 이러한 키는 일반적으로 사용됩니다. PC 설명서를 확인하여 어떤 설정 키가 사용되는지 확인합니다.

    자주 사용되는 UEFI(BIOS) 설정 키는 다음과 같습니다.
    ESC 키
    DEL
    F2

Windows를 부팅할 수 있는 경우

이 중지 코드가 수신되고 Windows가 부팅되는 경우 다음 해결 방법을 시도해 보세요.

  • 안전 모드로 부팅한 다음 정상적으로 부팅합니다.

    안전 모드로 부팅하면 스토리지 시스템에 다시 액세스할 수 있는 스토리지 드라이버의 핵심 집합이 로드됩니다. 안전 모드로 부팅하려면 다음 단계를 완료합니다.

    1. 설정에서 업데이트 및 보안을 선택합니다.
    2. 복구 > 고급 시작을 선택하여 유지 관리 모드로 부팅합니다.
    3. 결과 메뉴에서 고급 옵션 > 시작 설정 > 다시 시작 문제 해결>을 선택합니다.
    4. Windows가 시작 설정 화면으로 다시 시작되면 옵션 4, 5 또는 6을 선택하여 안전 모드로 부팅합니다.

    Windows가 안전 모드로 로드되면 PC를 다시 시작하여 적절한 스토리지 드라이버가 로드되고 스토리지 디바이스가 인식되는지 확인합니다.

    안전 모드는 부팅 시 함수 키를 눌러 사용할 수도 있습니다(예: F8). 특정 시작 옵션은 시스템 제조업체의 정보를 참조하세요.

  • 디스크 검사 유틸리티를 사용하여 파일 시스템 오류가 없는지 확인합니다. 검색할 드라이브를 길게 누르거나 마우스 오른쪽 단추로 클릭하고 속성 > 도구 > 지금 확인을 선택합니다.

  • 바이러스 탐지 프로그램을 실행합니다. 바이러스는 Windows용으로 포맷된 모든 유형의 하드 디스크를 감염할 수 있으며 이로 인해 디스크 손상으로 인해 시스템 버그 검사 코드가 생성될 수 있습니다. 바이러스 탐지 프로그램이 마스터 부팅 레코드에서 감염을 검사하는지 확인합니다.

  • IDE 디바이스의 경우 온보딩 IDE 포트를 기본 포트로만 정의합니다. 또한 적절한 master/하위/독립 실행형 설정에 대해 각 IDE 디바이스를 검사. 하드 디스크를 제외한 모든 IDE 디바이스를 제거해 보세요. 마지막으로, 오류를 일으키는 디바이스 또는 드라이버를 식별하는 데 도움이 될 수 있는 다른 오류 메시지에 대한 시스템 로그 이벤트 뷰어 검사.

  • 하드 드라이브에 여유 공간이 충분한지 확인합니다. 운영 체제 및 일부 애플리케이션에는 스왑 파일을 만들고 다른 기능을 수행하기에 충분한 여유 공간이 필요합니다. 시스템 구성에 따라 정확한 요구 사항이 달라지지만 사용 가능한 공간의 10%에서 15%를 사용할 수 있는 것이 좋습니다.

  • 장치 관리자 확인하여 느낌표(!)로 표시된 디바이스가 있는지 확인합니다. 드라이버 속성에 표시되는 이벤트 로그에서 오류 드라이버에 대해 검토합니다. 관련 드라이버를 업데이트해 보세요.

  • 시스템 로그인 이벤트 뷰어 오류를 일으키는 디바이스 또는 드라이버를 정확히 파악하는 데 도움이 될 수 있는 다른 오류 메시지를 확인합니다. 자세한 내용은 이벤트 뷰어 열기를 참조하세요. 블루 스크린과 동일한 시간 프레임에서 발생한 시스템 로그에서 중요한 오류를 찾습니다.

  • 시스템 제조업체에서 제공한 하드웨어 진단 프로그램을 실행할 수 있습니다.

  • 시스템 파일 검사 도구를 사용하여 누락되거나 손상된 시스템 파일을 복구합니다. 시스템 파일 검사기는 사용자가 Windows 시스템 파일의 손상을 검색하고 손상된 파일을 복원할 수 있는 Windows의 유틸리티입니다. 다음 명령을 사용하여 시스템 파일 검사기 도구(SFC.exe)를 실행합니다.

    SFC /scannow
    

    자세한 내용은 시스템 파일 검사 도구를 사용하여 누락되거나 손상된 시스템 파일 복구를 참조하세요.

  • 자동 복구 후 옵션 선택 화면에서 고급 옵션 > 시스템 복원 문제 해결>을 선택합니다. 이 옵션은 PC를 시스템 복원 지점이라고 하는 이전 시점으로 되돌립니다. 복원 지점은 새 앱, 드라이버, 업데이트를 설치하거나 복원 지점을 수동으로 만들 때 생성됩니다. 오류가 발생하기 전에 복원 지점을 선택합니다.

  • 커널 디버거를 사용하여 시스템에 연결하고 설명에 설명된 대로 오류를 추가로 분석합니다.

설명

스토리지 시스템 구성을 조사합니다.
원인을 좁히려면 Windows가 설치된 부팅 디바이스에 대해 가능한 한 많이 아는 것이 좋습니다. 예를 들어 다음 항목을 조사할 수 있습니다.

  • 부팅 디바이스가 연결된 컨트롤러 유형(예: SATA 또는 IDE)을 알아보세요. 시스템을 부팅할 수 있는 경우 디바이스 관리자를 사용하여 컨트롤러 및 디스크 드라이버 속성을 검사할 수 있습니다. 연결된 드라이버 파일 및 오류 이벤트를 볼 수 있습니다.

  • 다른 디바이스가 부팅 디바이스가 있는 것과 동일한 컨트롤러(예: SSD 또는 DVD)에 연결되어 있는지 여부를 나타냅니다.

  • 드라이브에서 사용되는 파일 시스템(일반적으로 NTFS)을 확인합니다.

Windows 디버거

커널 디버거를 사용하여 이 오류를 분석하려면 디버거에서 lm(로드된 모듈 나열) 명령을 실행하여 특정 드라이버를 격리하기 위해 로드되는 모듈을 확인합니다. 다음 드라이버가 로드되었는지 확인합니다.

디스크

           
0: kd> lm m disk
Browse full module list
start             end                 module name
fffff806`bd0b0000 fffff806`bd0cd000   disk       (deferred)

partmgr

0: kd> lm m partmgr
Browse full module list
start             end                 module name
fffff806`bc5a0000 fffff806`bc5c1000   partmgr    (deferred)

NTFS

0: kd> lm m ntfs
Browse full module list
start             end                 module name
fffff806`bd3f0000 fffff806`bd607000   NTFS       (deferred)

classpnp

0: kd> lm m classpnp
Browse full module list
start             end                 module name
fffff806`bd0d0000 fffff806`bd131000   CLASSPNP   (deferred)

Pci

0: kd> lm m pci
Browse full module list
start             end                 module name
fffff806`bc440000 fffff806`bc494000   pci        (deferred) 

컨트롤러 드라이버가 로드되었는지 확인합니다. 예를 들어 SATA RAID 컨트롤러의 경우 드라이버가 iaStorA.Sys 드라이버이거나 EhStorClass 드라이버일 수 있습니다.

0: kd> lm m EhStorClass
Browse full module list
start             end                 module name
fffff806`bcbb0000 fffff806`bcbcb000   EhStorClass   (deferred) 

storahci와 같은 "stor"가 포함된 드라이버가 있을 수 있습니다.

0: kd> lm m stor*
Browse full module list
start             end                 module name
fffff806`bcb00000 fffff806`bcb23000   storahci   (deferred)             
fffff806`bcb30000 fffff806`bcbaa000   storport   (deferred)             
fffff806`c0770000 fffff806`c0788000   storqosflt   (deferred)

디버거가 연결된 부팅.

디버거가 연결된 상태에서 대상 시스템을 부팅할 수 있는 경우 버그 검사 발생할 때 !devnode 0 1을 실행합니다. 드라이버가 없거나 시작되지 않는 디바이스를 확인할 수 있으며 시작하지 않는 이유가 분명할 수 있습니다.

한 가지 원인은 플러그 앤 플레이 부팅 디바이스에 리소스를 할당할 수 없기 때문일 수 있습니다. 서비스에 대한 항목을 찾아 이 제한을 확인할 수 있습니다. 상태 플래그에 DNF_INSUFFICIENT_RESOURCES 포함되거나 DNF_STARTED 또는 DNF_ENUMERATED 포함되지 않은 경우 문제를 찾았을 수 있습니다. 전체 디바이스 트리를 덤프하는 대신 시간을 절약해 보세요 !devnode 0 1 storahci .

0: kd> !devnode 0 1 storahci
Dumping IopRootDeviceNode (= 0xffffb9053d94d850)
DevNode 0xffffb9053e8dea50 for PDO 0xffffb9053e8da060
  InstancePath is "PCI\VEN_8086&DEV_3B22&SUBSYS_304A103C&REV_05\3&21436425&0&FA"
  ServiceName is "storahci"
  State = DeviceNodeStarted (0x308)
  Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0xffffb9053e88db30 for PDO 0xffffb9053e890060
    InstancePath is "SCSI\Disk&Ven_&Prod_ST3500418AS\4&23d99fa2&0&000000"
    ServiceName is "disk"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0xffffb9053e88d850 for PDO 0xffffb9053e88e060
    InstancePath is "SCSI\CdRom&Ven_hp&Prod_DVD-RAM_GH60L\4&23d99fa2&0&010000"
    ServiceName is "cdrom"
    TargetDeviceNotify List - f 0xffffdf0ae9bbb0e0  b 0xffffdf0aea874710
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)