Vista service pack 1 설치 시 800b0100 오류

기본적으로 알아야 할 개념



Vista 에서의 서비싱 모델의 업데이트 프로세스는 이전 운영체제에 사용되는 update.exe 모델에 비해 많은 성능 개선이 있다.


Update.exe 모델의 단점은 각 패키지와 함께 update.exe 엔진을 배포해야 한다는 단점이 있었고 Vista 에서는 업데이트 엔진이 서비싱 스택 의 형태로 운영체제의 일부가 되었다.    


Vista 에서 사용되는 CBS 는 다음과 같다    


CBS(Component based servicing) 는 Trustedinstaller 서비스로 구성되어 있으며 패키지와 업데이트의 적응성 및 선택성 규칙을 평가하고 CSI 에 적절한 배포를 전달한다.


CSI(Component servicing infrastructure) 는 시스템에 배포 및 구성 요소를 실제로 설치하는 시스템


DMI(device management and install) 는 고급 드라이버 설치 프로세스


   


 사용자 삽입 이미지


   


Manifest 는 구성요소 설치의 기본 단위를 정의하는 XML 형식의 문서  



진행 방법    




  1. 아래 CheckSUR 이라는 tool 을 설치 합니다.
    CheckSUR이라는 tool이 SP1 설치 전 아래와 같은 오류들을 자동 치료해 줍니다.

    http://support.microsoft.com/kb/947821/en-us    


    사용자 삽입 이미지 


       


    이 tool을 설치한 후 sp1 을 다시 설치 해 봅니다.
    증상이 동일하다면 2번 과정을 진행합니다.


       



  2. CheckSUR tool 을 설치하면 아래의 경로에 로그가 생성됩니다.
    Windows\logs\cbs
    폴더 아래에
    CheckSUR.log
    CheckSUR.persist.log    

    로그 확인 시 아래와 같은 로그 들이 확인됩니다.    


    Checking System Update Readiness.
    Version 6.0.6000.2
    2008-06-24 오후 19:00:54    
    Checking Deployment Packages    


    Checking Package Manifests and catalogs.


    (f)        Corrupt Catalog        CBS        0x800B0100        \servicing\packages\Package_for_KB948590_client~31bf3856ad364e35~x86~~6.0.1.0.cat                


    (f)        Missing File        CBS        0x00000002        \servicing\packages\Package_for_KB948590_client~31bf3856ad364e35~x86~~6.0.1.0.cat
    이 Catalog 파일이 corrupt 되고 missing 된 것을 확인 할 수 있습니다.


    그렇다면 이제 손상된 파일을 복구를 해봐야 합니다.    


    먼저 정상적인 pc 에서 손상된 패키지 파일을 복사하여 가져옵니다.    


    그 다음 손상된 파일을 교체하여 넣어야 하는데 vista 의 servicing 폴더는 Trustedinstaller 소유이기 때문에 수정이 되지 않습니다.


    아래 프로그램을 설치하여 엑세스 권한을 부여하여야 합니다.


    http://www.microsoft.com/downloads/details.aspx?FamilyID=E8BA3E56-D8FE-4A91-93CF-ED6985E3927B&displaylang=en


    시작 – 모든 프로그램 – 보조 프로그램에 마우스를 올리고 마우스 오른쪽 클릭하여 ‘관리자 권한으로 실행’ 를 선택하여 실행


    Command Prompt에서 SubInACL이 설치된 directory로 이동 합니다.(cd C:\Program Files\Windows Resource Kits\tools)    


    먼저 손상된 파일 backup 폴더에 백업한 후 제거 합니다.    


    명령프롬프트 창에서 아래 작업을 진행합니다.


    mkdir c:\backup
    //백업폴더 생성

    subinacl /file C:\Windows\servicing\packages\
    Package_for_KB948590_client~31bf3856ad364e35~x86~~6.0.1.0.cat /grant=faculty=F

    //ACL 에 full 권한 부여


    copy C:\Windows\servicing\packages\Package_for_KB948590_client~31bf3856ad364e35~x86~~6.0.1.0.cat C:\backup
    //손상된 파일 백업 진행


    del C:\Windows\servicing\packages\Package_for_KB948590_client~31bf3856ad364e35~x86~~6.0.1.0.cat
    // 해당 파일 제거


    위 예처럼 이미 missing 되었다면 제거 하실 필요는 없습니다.
    작업 후 정상 pc 에서 가져오기 한 파일을 붙어 넣기 합니다.
    붙여 넣기 시 권한이 없기 때문에 먼저 권한을 부여합니다.


    Subinacl /subdirectories c:\windows\servicing\packages /grant=everyone=F
    위 작업으로 packages 폴더에 everyone 추가 후 full 권한을 부여 합니다.


    이 후 파일을 붙여 넣기 하면 됩니다.
    이 후 sp1 을 다시 설치해 봅니다.



    [추가정보]


    손상된 패키지 파일 언인스톨 방법
    start /w pkgmgr /up:Package_for_KB948590_client~31bf3856ad364e35~x86~~6.0.1.0.cat