내가 아는 그대
2007. 9. 24. 12:39
출처: http://offree.net/entry/Editing-Registry-Hive
레지스트리 하이브는 레지스트 정보를 모아놓은 바이너리 파일 이다. 레지스트 하이브는 레지스트리를 편집할 때 사용하는 레지스트리 편집기로 쉽게 편집할 수 있지만 많은 사람들이 레지스트리 하이브를 편집하는 방법을 모르고 또 그 중요성 또한 모르는 것 같다.
필자의 팁, 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를 사용할 수 있다면 다음 링크를 클릭해서 다운받아 사용하기 바란다.
다운로드 1.SuperRCD v2.0a 2.http://www.ilovepc.co.kr/utility/2007_2/SUPERRCD.ISO
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
레지스트리 편집기 의 파일/하이브 언로드 메뉴를 클릭한다.
언로드 하이브 확인 창에서 예 버튼을 클릭한다.
주의 주1 : 레지스트리 하이브를 편집하려면 일단 레지스트리 하이브를 레지스트리 편집기로 읽어와야 한다. 레지스트리 편집기에서 레지스트리 하이브를 읽어 들이기위해서는 임의의 루트 키를 클릭해야 한다. 임의의 루트 키를 클릭하지 않으면 파일/하이브 로드 메뉴가 활성화되지 않는다.
주2 : 일반적으로 레지스트리 편집기에서 내리지 않는한 레지스트리 편집기를 실행할 때마다 자동으로 로드된다.
알림 이 글은 QAOS.com 에 2005년 6월 5일 에 올린 레지스트리 하이브 편집하기 를 블로그에 올리는 것이다.