기본적으로 알아야 할 개념
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 형식의 문서
진행 방법
아래 CheckSUR 이라는 tool 을 설치 합니다.
CheckSUR이라는 tool이 SP1 설치 전 아래와 같은 오류들을 자동 치료해 줍니다.
http://support.microsoft.com/kb/947821/en-us
이 tool을 설치한 후 sp1 을 다시 설치 해 봅니다.
증상이 동일하다면 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 소유이기 때문에 수정이 되지 않습니다.
아래 프로그램을 설치하여 엑세스 권한을 부여하여야 합니다.
시작 – 모든 프로그램 – 보조 프로그램에 마우스를 올리고 마우스 오른쪽 클릭하여 ‘관리자 권한으로 실행’ 를 선택하여 실행
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