[출처 : http://blog.naver.com/ ]
Windows OS를 사용하다 보면 시스템 파일의 이미지 손상으로 오작동하는 경우가 있습니다.
DISM 또는 SFC 명령을 이용한 시스템 파일 복구 방법을 정리했습니다.
아래의 작업 방법은 윈도우즈8.1기준으로 설명합니다. 윈도우즈10도 같습니다. 윈도우즈7은 sfc /scannow 만 실행합니다.
작업 방법 1. Windows 구성 요소 저장소에서 시스템 파일 손상 여부 확인 및 복구
1. 윈도우즈 로고 + X 키를 누르고 명령 프롬프트(관리자)를 선택합니다. 아래 명령어 입력 후 enter를 누룹니다.(입력이 어려울 경우 복사 후 명령 프롬프트에서 마우스 우측 키를 누르고 붙여넣기 합니다.)
2. 손상을 복구할 수 있는지 여부를 확인 점검합니다.
Dism /Online /Cleanup-Image /CheckHealth
3. 선택적 실행. 이미지에서 손상된 구성 요소 저장소를 검사합니다. 이 작업은 20 %에서 잠시 멈추어 있습니다. PC에 따라 완료되는 시간이 오래 소요될 수 있습니다.(20분 이상)
Dism /Online /Cleanup-Image /ScanHealth
4. 이미지에서 손상된 구성 요소 저장소를 검사한 다음 자동으로 복구 작업을 합니다. 이 작업은 20 %에서 잠시 멈추어 있습니다. PC에 따라 완료되는 시간이 오래 소요될 수 있습니다.(20분 이상)
Dism /online /cleanup-image /restorehealth
5. 이 후 다음 명령을 이용하여 시스템 검사를 시도 합니다. PC에 따라 완료되는 시간이 오래 소요될 수 있습니다.(20분 이상) 시스템 파일에 문제가 있는지를 탐색하며, 복구가 가능한 부분은 복구가 진행이 됩니다.
sfc /scannow
6. 오류 메시지가 출력되면 Dism.exe는 작업 방법 2 번을 참고해 오류를 수정합니다. sfc.exe 는 작업 방법 3번을 참고해 복구를 시도해 봅니다.
7. 시스템을 다시 시작하신 후 이후에 문제점을 확인합니다
참고:
DISM 또는 시스템 업데이트 준비 도구를 사용하여 Windows 손상 오류 수정
https://support.microsoft.com/ko-kr/kb/947821
/////////////////////////////////////////////////////////////////////////////////////////////////////////
작업 방법 2: Dism.exe 명령으로 윈도우즈 설치 파일을 이용해 복원하기
1. 실행하고 있는 윈도우즈의 버전을 확인합니다.
윈도우즈 로고 + R 키를 누르고 실행 창에서 아래의 명령을 입력 후 확인을 누룹니다.
winver
2. OS 버전을 확인하셨다면 현재 실행하고 있는 OS와 같은 설치 파일이 필요합니다.
설치 디스크가 있을 경우 디스크를 이용하시면 돼고 없을 경우 아래의 사이트에서 현재 실행하고 있는 OS와 같은 ISO 설치 파일을 다운로드 받습니다.
Windows 7 디스크 이미지(ISO 파일) 다운로드
https://www.microsoft.com/ko-kr/software-download/windows7
Windows 8.1용 설치 미디어 만들기
http://windows.microsoft.com/ko-kr/windows-8/create-reset-refresh-media
윈도우즈10 다운로드
https://www.microsoft.com/ko-kr/software-download/windows10
3. 윈도우즈 로고 + X키를 누르고 파일 탐색기를 실행 후 다운로드 받은 *.iso 파일을 더블 클릭합니다. 가상 디스크가 설치된 드라이버 명을 확인합니다.
4. 윈도우즈 로고 + X 키를 누르고 명령 프롬프트(관리자)를 선택합니다. 아래의 명령 입력 후 설치 파일의 인덱스 번호를 확인합니다. G는 파일 탐색기에서 확인된 윈도우즈 가상 디스크의 설치 파일의 드라이버 명입니다. 입력이 어려울 경우 복사 후 마우스 우측키를 누르고 명령 프롬프트에 붙여넣기합니다.
dism /Get-WimInfo /wimFile:G:\sources\install.wim
또는
dism /Get-WimInfo /wimFile:G:\sources\install.esd
인덱스 확인 후 더 자세한 정보를 볼려면 아래의 명령을 입력합니다. 마지막 1은 확인한 인덱스 번호 2이면 2로 변경함
dism /Get-WimInfo /wimFile:G:\sources\install.wim /Index:1
또는
dism /Get-WimInfo /wimFile:G:\sources\install.esd /Index:1
5. 인덱스 번호와 install.wim 파일의 경로를 지정합니다. 아래의 명령 중 하나를 선택 후 입력합니다. 마지막의 1은 인텍스 번호입니다. 2일 경우 2로 변경합니다. 검사가 100% 완료가 되면, 결과 메시지를 확인합니다
Dism /Online /Cleanup-Image /RestoreHealth /Source:wim:G:\sources\install.wim:1
또는
Dism /Online /Cleanup-Image /RestoreHealth /Source:wim:G:\sources\install.wim:1 /limitaccess
다운로드 받은 파일이 install.esd 파일일 경우 아래의 명령 중 하나를 선택 후 입력합니다.
Dism /Online /Cleanup-Image /RestoreHealth /Source:esd:G:\sources\install.esd:1
또는
Dism /Online /Cleanup-Image /RestoreHealth /Source:esd:G:\sources\install.esd:1 /limitaccess
또는 C:$Windows.~BT 폴더 설치 파일이 있을 경우
Dism /Online /Cleanup-Image /RestoreHealth /Source:esd:C:\$Windows.~BT\Sources\Install.esd:1 /limitaccess
참고:
DISM - Repair Windows 10 Image
http://www.tenforums.com/tutorials/7808-dism-repair-windows-10-image.html
6. 시스템을 다시 시작합니다. 아래의 명령을 입력 후 최종적으로 확인해 봅니다
손상을 복구할 수 있는지 여부를 확인 점검합니다.
Dism /Online /Cleanup-Image /CheckHealth
https://youtu.be/o7eExyPMqRY
/////////////////////////////////////////////////////////////////////////////////////////////////////////
작업 방법 3: SFC.exe 명령 실행 후 C:\Windows\WinSxS 폴더를 이용해 손상된 시스템 파일을 직접 찾아 복원하기
1. 윈도우즈 로고 + X 키를 누르고 명령 프롬프트(관리자)를 선택합니다. (입력이 어려울 경우 복사 후 명령 프롬프트에서 마우스 우측 키를 누르고 붙여넣기 합니다.) sfc /scannow 명령 실행 후 오류가 있을 경우 C:\Logs\CBS\CBS.log 파일을 확인 후 파일을 복구할 것입니다. 아래의 명령을 입력하면 바탕화면에 sfcdetails.txt 파일이 생성됩니다. CBS.log 파일의 오류 정보를 추출합니다.
findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfcdetails.txt"
Sfcdetails.txt 파일에는 다음과 같은 형식을 사용합니다.
12:31:20, Info CSI 000026ba [SR] Repairing corrupted file [l:23 ml:24]"\??\C:\Windows\System32"\[l:9]"Accessibility.dll" from store
2. 파일의 손상되지 않은 복사본으로 손상된 시스템 파일을 직접 대체하는 방법을 시도할 것입니다.
윈도우즈 로고+E 키를 누르고 파일 탐색기를 실행합니다. 아래의 경로를 찾아 갑니다.
C:\Windows\WinSxS
3. 바탕화면에서 sfcdetails.txt 파일을 열어 오류 정보를 확인해 봅니다. 로그 파일의 정보로 오류 파일명을 확인 후 복구해 볼수 있습니다. 예) C:\windows\system32\Accessibility.dll 파일에 오류가 있다면 파일 탐색기에서 오른쪽 상단에 Accessibility.dll 파일명을 입력 후 키보드에서 enter 키를 누룹니다. Accessibility.dll 파일을 검색합니다.
4. Accessibility.dll 파일을 검색 후 없을 경우는 작업방법4로 넘어갑니다. Accessibility.dll 파일이 있을 경우 다음 작업을 이여합니다.
5. 오류가 있는 C:\windows\system32\Accessibility.dll 파일의 경로에 보안 접근 권한때문에 Accessibility.dll 파일을 붙여넣기할 수 없습니다. 파일 접근 권한을 변경할 것입니다.
6. 명령 프롬프트에서 아래의 명령을 입력 후 키보드에서 enter 키를 누룹니다. 손상된 시스템 파일의 소유권을 획득합니다.
예)
takeown /f C:\windows\system32\Accessibility.dll
또는
지정한 디렉터리 및 모든 하위 디렉터리에 도구가 작동하도록 지정
takeown /F C:\windows\system32\Accessibility.dll /R
7. 관리자가 손상된 시스템 파일에 대한 모든 권한 획득합니다.
예)
icacls C:\windows\system32\Accessibility.dll /grant administrators:F
또는
이름에 지정된 디렉터리 아래의 일치하는 모든 파일/디렉터리에서 이 작업을 수행하도록 지정
icacls C:\windows\system32\Accessibility.dll /grant administrators:F /T /C
8. C:\Windows\WinSxS 폴더에서 검색한 Accessibility.dll 파일을 선택 후 마우스 우측 키를 누르고 복사합니다.
9. 파일 탐색기를 이용해 C:\windows\system32\Accessibility.dll 파일이 있는 경로를 찾아갑니다.
10. 복사한 Accessibility.dll 파일을 C:\windows\system32 경로에 붙여넣기합니다. 파일을 손상되지 않은 복사본으로 손상된 시스템 파일을 대체합니다. 시스템에서 파일을 사용할 경우 복사 후 붙여넣기할 수 없을 수도 있습니다. 안전모드 명령 프롬프트로 진입하신 후 설치해 볼 수도 있습니다.
11. 이 전에 변경한 파일 보안 접근 권한을 복구해 주어야합니다. 보안을 강화하기 위해 접근 권한을 변경할 것입니다. TrustedInstaller 가 소유 권한을 가집니다.
예)
icacls C:\windows\system32\Accessibility.dll /setowner "NT SERVICE\TrustedInstaller"
또는
icacls C:\windows\system32\Accessibility.dll /setowner "NT SERVICE\TrustedInstaller" /T /C
12. administrators 는 읽기 및 실행 권한을 가집니다. 계속 sfcdetails.txt 파일에서 오류 파일을 찾아 반복합니다. 3번에서 12까지 박복합니다.
예)
icacls C:\windows\system32\Accessibility.dll /grant:r administrators:RX
또는
icacls C:\windows\system32\Accessibility.dll /grant:r administrators:RX /T /C
13. 시스템을 다시 시작합니다. sfc /VERIFYONLY 명령을 입력 후 최종적으로 확인해 봅니다.
https://youtu.be/1ckLl8WaKDQ
/////////////////////////////////////////////////////////////////////////////////////////////////////////
작업 방법 4: SFC.exe 명령 실행 후 윈도우즈 설치 파일을 이용해 손상된 시스템 파일을 직접 찾아 복원하기
1. 윈도우즈 로고 + X 키를 누르고 명령 프롬프트(관리자)를 선택합니다. (입력이 어려울 경우 복사 후 명령 프롬프트에서 마우스 우측 키를 누르고 붙여넣기 합니다.) sfc /scannow 명령 실행 후 오류가 있을 경우 C:\Logs\CBS\CBS.log 파일을 확인 후 파일을 복구할 것입니다. 아래의 명령을 입력하면 바탕화면에 sfcdetails.txt 파일이 생성됩니다. CBS.log 파일의 오류 정보를 추출합니다.
findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfcdetails.txt"
Sfcdetails.txt 파일에는 다음과 같은 형식을 사용합니다.
12:31:20, Info CSI 000026ba [SR] Repairing corrupted file [l:23 ml:24]"\??\C:\Windows\System32"\[l:9]"Accessibility.dll" from store
2. 실행하고 있는 윈도우즈의 버전을 확인합니다.
윈도우즈 로고 + R 키를 누르고 실행 창에서 아래의 명령을 입력 후 확인을 누룹니다.
winver
3. OS 버전을 확인하셨다면 현재 실행하고 있는 OS와 같은 설치 파일이 필요합니다.
설치 디스크가 있을 경우 디스크를 이용하시면 돼고 없을 경우 아래의 사이트에서 현재 실행하고 있는 OS와 같은 설치 파일을 다운로드 받습니다.
Windows 7 디스크 이미지(ISO 파일) 다운로드
https://www.microsoft.com/ko-kr/software-download/windows7
Windows 8.1용 설치 미디어 만들기
http://windows.microsoft.com/ko-kr/windows-8/create-reset-refresh-media
윈도우즈10 다운로드
https://www.microsoft.com/ko-kr/software-download/windows10
4. 파일의 손상되지 않은 복사본으로 손상된 시스템 파일을 직접 대체하는 방법을 시도할 것입니다. 먼저 윈도우즈 로고 + X 키를 누르고 디스크 관리를 선택합니다. 새로운 파티션을 하나 생성합니다. 5GB하나 생성 후 새 파티션에 윈도우즈 시스템 파일을 마운트할 것입니다. 5120을 입력하시면 5GB를 만들 수 있습니다. 작업이 끝난 후 윈도우즈 시스템 파일을 손쉽게 지울수도 있습니다. 아래의 링크 참고합니다.
윈도우즈8 파티션 나누기
http://www.nextstep.co.kr/234
5. 윈도우즈 로고 + X키를 누르고 파일 탐색기를 실행 후 다운로드 받은 *.iso 파일을 더블 클릭합니다. 가상 디스크가 설치된 드라이버 명을 확인합니다.
6. 윈도우즈 로고 + X 키를 누르고 명령 프롬프트(관리자)를 선택합니다. 아래의 명령 입력 후 인덱스 번호를 확인합니다. G는 파일 탐색기에서 확인된 윈도우즈 가상 디스크의 설치 파일의 드라이버명입니다.
예)
dism /Get-WimInfo /wimFile:G:\sources\install.wim
또는
dism /Get-WimInfo /wimFile:G:\sources\install.esd
인덱스 확인 후 더 자세한 정보를 볼려면 아래의 명령을 입력합니다. 마지막 1은 확인한 인덱스 번호 2이면 2로 변경함
dism /Get-WimInfo /wimFile:G:\sources\install.wim /Index:1
또는
dism /Get-WimInfo /wimFile:G:\sources\install.esd /Index:1
7. 디스크 관리로 만든 새 파티션에 mount 폴더를 하나 만들어 놓습니다. 파일 탐색기로 install.wim 파일의 경로을 확인 후 아래의 명령을 입력합니다. 1은 인덱스 번호, H:\mount 는 디스크 관리로 새로 만든 파티션에 윈도우즈 설치 파일의 압축을 풀 폴더 경로입니다.
예)
Dism /Mount-Image /ImageFile:G:\sources\install.wim /index:1 /MountDir:H:\mount /ReadOnly
install.esd 는 install.wim 파일로 변경 후 작업을 해야합니다. H:\mountWIM 폴더를 하나 만듭니다. 이 작업은 pc의 성능에 따라 최소 1시간 이상의 시간이 걸릴 수도 있습니다. 6번을 참고해 인텍스 번호를 확인 후 명령을 입력합니다.
dism.exe /Export-Image /SourceImageFile:G:\sources\Install.esd /SourceIndex:1 /DestinationImageFile:H:\mountWIM\Install.wim /Compress:max
Install.wim 파일을 mount 폴더에 압축을 해제합니다.
Dism /Mount-Image /ImageFile:H:\mountWIM\Install.wim /index:1 /MountDir:H:\mount /ReadOnly
참고:
DISM을 사용하여 이미지 탑재 및 수정
https://technet.microsoft.com/ko-kr/library/hh824814.aspx?f=255&MSPPError=-2147217396
install.esd 를 install.wim 변경 방법
http://deploymentresearch.com/Research/Post/445/Deploying-Windows-10-build-9860-using-MDT-2013-Lite-Touch
8. 바탕화면에서 sfcdetails.txt 파일을 열어 오류 정보를 확인해 봅니다. 로그 파일의 정보로 오류 파일명을 확인 후 복구해 볼수 있습니다. 예) C:\windows\system32\Accessibility.dll 파일에 오류가 있다면 파일의 경로를 확인 후 아래의 명령처럼 입력합니다. 손상된 시스템 파일의 소유권을 획득합니다.
예)
takeown /f C:\windows\system32\Accessibility.dll
또는
지정한 디렉터리 및 모든 하위 디렉터리에 도구가 작동하도록 지정
takeown /F C:\windows\system32\Accessibility.dll /R
9. 관리자가 손상된 시스템 파일에 대한 모든 권한 획득합니다.
예)
icacls C:\windows\system32\Accessibility.dll /grant administrators:F
또는
이름에 지정된 디렉터리 아래의 일치하는 모든 파일/디렉터리에서 이 작업을 수행하도록 지정
icacls C:\windows\system32\Accessibility.dll /grant administrators:F /T /C
10. 손상되지 않은 복사본으로 손상된 시스템 파일을 대체합니다. 이렇게 하려면 마운트한 H:\mount 드라이버에서 H:\mount\windows\system32\Accessibility.dll 파일을 찾아 C:\windows\system32\Accessibility.dll 파일을 선택 후 마우스 우측키를 눌러 복사 및 붙여넣기 하거나 아래의 명령을 입력후 enter 키를 누릅니다. 시스템에서 파일을 사용할 경우 복사 후 붙여넣기할 수 없을 수도 있습니다. 안전모드 명령 프롬프트로 진입하신 후 설치해 볼 수도 있습니다.
예)
xcopy H:\mount\windows\system32\Accessibility.dll C:\windows\system32\Accessibility.dll
또는
비어 있는 경우를 포함하여 디렉터리와 하위 디렉터리를 복사
xcopy H:\mount\windows\system32\Accessibility.dll C:\windows\system32\Accessibility.dll /E
11. 보안을 강화하기 위해 접근 권한을 변경할 것입니다. TrustedInstaller 가 소유 권한을 가집니다.
예)
icacls C:\windows\system32\Accessibility.dll /setowner "NT SERVICE\TrustedInstaller"
또는
icacls C:\windows\system32\Accessibility.dll /setowner "NT SERVICE\TrustedInstaller" /T /C
12. administrators 는 읽기 및 실행 권한을 가집니다. 계속 sfcdetails.txt 파일에서 오류 파일을 찾아 반복합니다. 8번에서 12까지 박복합니다.
예)
icacls C:\windows\system32\Accessibility.dll /grant:r administrators:RX
또는
icacls C:\windows\system32\Accessibility.dll /grant:r administrators:RX /T /C
13. 시스템을 다시 시작합니다. sfc /VERIFYONLY 명령을 입력 후 최종적으로 확인해 봅니다.
14. 디스크 관리로 새로 생성한 파티션을 합칩니다. 마운트한 윈도우즈 설치 파일이 제거 됩니다.
참고:
시스템 파일 검사기 도구를 사용하여 손실되거나 손상된 시스템 파일을 복구하려면
https://support.microsoft.com/ko-kr/kb/929833