레지스트리 하이브

레지스트리 하이브는 레지스트 정보를 모아놓은 바이너리 파일이다. 레지스트 하이브는 레지스트리 편집기로 쉽게 편집할 수 있지만 많은 사람들이 레지스트리 하이브를 편집하는 방법을 모르고 또 그 중요성 또한 모르는 것 같다. "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 PESuperRCD와 같은 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

하이브 읽기

일단 읽어 들일 하이브가 결정되면 레지스트리 편집기를 이용해서 문제가 되는 하이브를 읽어 편집하면 된다. 절차는 다음과 같다.

  1. '시작/실행/regedit'를 입력하고 '확인'을 클릭한다.
  2. '레지스트리 편집기'의 '좌측 패널'에서 임의의 루트 키(예: HKEY_LOCAL_MACHINE)를 클릭한다[1].
  3. '파일/하이브 로드' 메뉴를 클릭한다.
  4. '하이브 로드'창의 '파일 이름'을 다음처럼 지정하고 '열기' 버튼을 클릭해서 레지스트리 하이브를 읽어 들인다. 'Config' 폴더의 하이브의 종류와 역할은 위의 추가정보를 참조하기 바란다.

    %SystemRoot\System32\Config\Software
    예:
    C:\Windows\System32\Config\Software
    
  5. '하이브 로드' 창의 '키 이름'에 적당한 이름('예: SysSW)을 지정한다.
하이브 편집
  1. 문제가 되는 시스템 레지스트리 키로 이동해서 레지스트리를 편집하면 된다. 위의 예에서 처럼 userinit.exe에 문제가 있는 경우 다음 레지스트리로 이동하면 된다.

    <루트키>\<읽은 키 이름>\<문제 키>
    예:
    HKLM\SysSW\Microsoft\Windows NT\CurrentVersion\Winlogon
    
  2. '우측 패널'에서 문제가 되는 값(예: Userinit.exe)을 변경한다.

하이브 내리기[2]
  1. 다음 키를 클릭한다.

    <선택한 루트 키>\<입력한 키 이름>
    예: 루트키가 HKLM이고, 키 이름이 SysSW인 경우
    HKLM\SysSW
    
  2. '레지스트리 편집기'의 '파일/하이브 언로드' 메뉴를 클릭한다.
  3. '언로드 하이브 확인' 창에서 '예' 버튼을 클릭한다.

이 글은 QAOS.com에 2005년 6월 5일에 올린 레지스트리 하이브 편집하기를 블로그에 올리는 것이다. QAOS.com에서 가져온 글은 QAOS.com저작권(펌 금지, 링크 허용)을 따른다.

관련 글타래


  1. 레지스트리 하이브를 편집하려면 일단 레지스트리 하이브를 레지스트리 편집기로 읽어와야 한다. 레지스트리 편집기에서 레지스트리 하이브를 읽어 들이기위해서는 임의의 루트 키를 클릭해야 한다. 임의의 루트 키를 클릭하지 않으면 '파일/하이브 로드' 메뉴가 활성화되지 않는다. 
  2. 일반적으로 레지스트리 편집기에서 내리지 않는한 레지스트리 편집기를 실행할 때마다 자동으로 로드된다.