레지스트리 하이브
레지스트리 하이브는 레지스트 정보를 모아놓은 바이너리 파일이다. 레지스트 하이브는 레지스트리 편집기로 쉽게 편집할 수 있지만 많은 사람들이 레지스트리 하이브를 편집하는 방법을 모르고 또 그 중요성 또한 모르는 것 같다. "XP Home을 XP Pro로 설치하기"를 보면 XP Home 설치 CD의 레지스트리 하이브를 편집하는 방법이 나온다. 그러나 레지스트리 하이브를 편집하는 것은 단순히 설치 CD의 정보를 바꿀 때 뿐만 아니라 레지스트리에 문제가 생겨 시스템을 복구할 때 아주 중요하다.
레지스트리 하이브
레지스트리 하이브는 레지스트 정보를 모아놓은 바이너리 파일이다. 레지스트 하이브는 레지스트리 편집기로 쉽게 편집할 수 있지만 많은 사람들이 레지스트리 하이브를 편집하는 방법을 모르고 또 그 중요성 또한 모르는 것 같다. XP Home을 XP Pro로 설치하기를 보면 XP Home 설치 CD의 레지스트리 하이브를 편집하는 방법이 나온다. 그러나 레지스트리 하이브를 편집하는 것은 단순히 설치 CD의 정보를 바꿀 때 뿐만 아니라 레지스트리에 문제가 생겨 시스템을 복구할 때 아주 중요하다.
윈도 게시판에 올라온 글, windows xp 복구처럼 레지스트리의 문제로 시스템이 부팅되지 않거나 로그온 할 수 없는 경우 레지스트리만 변경하면 시스템을 복구할 수 있다. 그러나 문제는 복구 콘솔에서는 레지스트리를 편집할 수 없고, Windows PE를 이용하면 레지스트리를 편집할 수 있지만 이때 편집되는 레지스트리는 시스템 레지스트리가 아니라 Windows PE의 레지스트리라는 점이다.
결국 시스템 레지스트리를 변경하기위해서는 Windows PE로 부팅한 후 레지스트리 하이브를 편집해야 시스템 레지스트리를 변경할 수 있다. 시스템을 복구하기위해 레지스트리 하이브를 편집하려면 Windows PE가 필요하다. 현재 인터넷에 돌고 있는 Windows PE중 한글을 지원하며 기능적으로 무난한 것은 지니님의 SuperRCD v2.0a이다. eMule과 같은 P2P를 사용할 수 있다면 다음 링크를 클릭해서 다운받아 사용하기 바란다.
Windows PE로 부팅
앞서 설명한 것처럼 시스템 레지스트리를 변경하기위해서는 Windows PE나 SuperRCD와 같은 Bart PE로 부팅해야 한다. 여기서는 설명의 편의를 위해 Bart PE의 일종인 SuperRCD로 부팅하는 것으로 하겠다.
레지스트리 하이브 결정
문제가 되는 레지스트리에따라 읽어 들일 하이브를 결정한다. 예를들어 windows xp 복구에서 처럼 userinit.exe
에 문제가 있어 로그인하지 못하는 경우 userinit.exe
는 다음처럼 Winlogon 키에 존재하므로 Software를 읽어 들이면 된다.
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
레지스트리 하이브의 종류와 역할
일반적으로 시스템이 설치됐을 당시의 레지스트리 정보는 %SystemRoot%\Repair
폴더에 저장되며, 현재 레지스트리 정보는 %SystemRoot\System32\Config
폴더에 저장된다. 아울러 사용자에 관한 정보는 %UserProfile%
폴더에 저장된다.
%SystemRoot%\Repair
폴더와 %SystemRoot\System32\Config
폴더, %UserProfile%
폴더에 존재하는 하이브와 그 역할은 다음과 같다.
%SystemRoot%\Repair
,%SystemRoot\System32\Config
폴더하이브 레지스트리 부속 파일 default HKEY_USERS.DEFAULT Default.log, Default.sav Sam HKEY_LOCAL_MACHINE\SAM Sam.log, Sam.sav Security HKEY_LOCAL_MACHINE\Security Security.log, Security.sav software HKEY_LOCAL_MACHINE \Software Software.log, Software.sav system HKEY_LOCAL_MACHINE \System System.alt, System.log, System.sav userdiff 없음 Userdiff.log %UserProfile%
폴더하이브 레지스트리 부속 파일 Ntuser.dat HKEY_CURRENT_USER Ntuser.dat.log
하이브 읽기
일단 읽어 들일 하이브가 결정되면 레지스트리 편집기를 이용해서 문제가 되는 하이브를 읽어 편집하면 된다. 절차는 다음과 같다.
- '시작/실행/regedit'를 입력하고 '확인'을 클릭한다.
- '레지스트리 편집기'의 '좌측 패널'에서 임의의 루트 키(예:
HKEY_LOCAL_MACHINE
)를 클릭한다[1]. - '파일/하이브 로드' 메뉴를 클릭한다.
'하이브 로드'창의 '파일 이름'을 다음처럼 지정하고 '열기' 버튼을 클릭해서 레지스트리 하이브를 읽어 들인다. 'Config' 폴더의 하이브의 종류와 역할은 위의 추가정보를 참조하기 바란다.
%SystemRoot\System32\Config\Software 예: C:\Windows\System32\Config\Software
- '하이브 로드' 창의 '키 이름'에 적당한 이름('예:
SysSW
)을 지정한다.
하이브 편집
문제가 되는 시스템 레지스트리 키로 이동해서 레지스트리를 편집하면 된다. 위의 예에서 처럼
userinit.exe
에 문제가 있는 경우 다음 레지스트리로 이동하면 된다.<루트키>\<읽은 키 이름>\<문제 키> 예: HKLM\SysSW\Microsoft\Windows NT\CurrentVersion\Winlogon
'우측 패널'에서 문제가 되는 값(예:
Userinit.exe
)을 변경한다.
하이브 내리기[2]
다음 키를 클릭한다.
<선택한 루트 키>\<입력한 키 이름> 예: 루트키가 HKLM이고, 키 이름이 SysSW인 경우 HKLM\SysSW
- '레지스트리 편집기'의 '파일/하이브 언로드' 메뉴를 클릭한다.
- '언로드 하이브 확인' 창에서 '예' 버튼을 클릭한다.
저작권
이 글은 QAOS.com에 2005년 6월 5일에 올린 레지스트리 하이브 편집하기를 블로그에 올리는 것이다. QAOS.com에서 가져온 글은 QAOS.com의 저작권(펌 금지, 링크 허용)을 따른다.