윈도우 NT 계열의 시스템을 운영하다가 암호를 분실해서 시스템을 새롭게 설치하는 경우가 있습니다. 물론 개인용으로 운영되는 시스템의 경우 새롭게 설치한다는 것은 시간만 있다면 문제가 없지만 웹 서버 등으로 운영되는 시스템에서 문제가 발생되었을 경우에 자료이전과 최신의 DB 데이터 백업 등 복구에 소요되는 시간도 만만치 않을 뿐만 아니라 실제 복구 과정에서 문제가 발생되는 경우도 있기 때문에 우선적으로 암호를 초기화 또는 변경해 보는 방법을 시도하게 됩니다. 많은 관리자 분들이 암호를 분실하거나 시스템에 블루 스크린 등의 문제가 발생하면 복구 보다는 차라리 포맷을 하신다는 농담을 하시는데 재설치 이전에 조금만 노력(?)한다면 수고를 훨씬 줄일 수도 있습니다. 

참고로 암호를 저장하고 있는 파일은 C:\Windows\system32\config 폴더 안에 있는 
SAM 이라는 파일입니다. 이 파일은 윈도우 시스템의 로그인 암호를 저장하고 있는 일종의 
DB 파일입니다. 따라서 해당 파일을 지우거나 또는 SAM DB에 직접적인 변경을 하게 된다면 암호가 초기화 또는 패스워드를 변경 시킬 수 있기 때문에 암호 분실시에 시도하게 할 
수 있는 방법이 생기게 됩니다.하지만 시스템이 운영되는 상황에서는 자기 자신을 지울 수 
없기 때문에 역으로 이용할 수 있는 몇 가지 방법을 고려해 볼 수 있습니다. 

 멀티 부팅이 가능한 시스템이라면…… 
  
만약 멀티부팅이 가능한 시스템이라면 다른 OS로 부팅한 후 지웁니다. 
(서버로 운영되는 경우에는 이런 경우가 없겠지만, 개인용 운영체제인 경우에는 멀티부팅으로 사용하시는 경우가 있습니다.하지만 멀티 부팅으로 이용하신다고 할 때 주의 하실 점은 
두 시스템 사이에는 파일 시스템이 동일해야 합니다. 가령 FAT32 파일 시스템에서는 
NTFS 파일 시스템은 보이지 않을 수도 있습니다. 물론 반대의 경우라면 문제가 없습니다.) 

다른 시스템 중에 윈도우 2000 계열로 운영하는 시스템이 하나 더 있다면… 

문제가 발생한 시스템 외에 별도로 여분의 시스템이 있고 그 중에서 윈도우 2000 계열의 
시스템이 이미 깔려 있다면 별도의 시스템의 슬레이브 쪽에 문제가 발생된 하드 디스크를 
인식시킨 후에 위에 SAM 데이터가 있는 경로에 가서 해당 파일을 지워주면 됩니다. 
이 방법은 가장 일반적으로 시도해 보는 방법중에 한 가지 방법이고 문제를 발생할 수 있는 확률이 가장 작은 방법이기도 합니다. 또한 하드 디스크를 연결하는 시간 외에 시간적으로도 절약할 수 있는 방법 입니다. 만약 IDE 방식이 아닌 SCSI 타입의 하드 드라이브를 사용할 경우에도 별도의 드라이브 없이 SCSI 로 구성된 다른 시스템의 두 번째 슬롯에 위치하게 한 후에 SAM DB 파일만 지워 주게 되면 간단하게 해결 할 수 있는 방법입니다. 

파일 시스템이 FAT32 인 경우에…. 

부팅 디스크를 이용해서 DOS로 부팅 한 후에 지울 수 있습니다. 하지만 이 경우에서 파일 
시스템이 문제가 될 수 있습니다.(FDISK가 FAT32 까지만 현재는 지원하기 때문에 문제가 
발생된 시스템이 NTFS일 때는 않되겠죠?) 

마지막으로 이용할 방법으로는 리눅스등의 부트 로더를 이용해서 지우는 방법이 있습니다. 

리눅스 기반의 3.5 인치용 부팅 디스켓을 이용해서 윈도우 NT 기반의 시스템에서 잃어버린 패스워드를 변경하는 방법에 있습니다. 패스워드를 복원하는 방법 중에는 상기에 설명 드렸던 방법과는 조금 다른 방법이고 가장 상위의 방법이라고도 할 수 있습니다. 해당 방법을 시도하기 위해서 우선적으로 준비해야 할 것은 리눅스 기반의 도스용 부팅 디스켓을 만들어야 합니다. 여기서는 3.5 인치용 디스켓을 만들겠습니다. (조금만 응용을 하신다면 시디등의 미디어를 이용해서 부팅 이미지를 만들어서 편리하게 사용할 수도 있습니다.) 

 리로(LILO) 기반의 부팅 디스켓 만드는 방법 

1. [시작]-[실행]- [CMD 또는 COMMAND] 로 명령프롬프트 창을 엽니다. 

2. 리로(LILO) 기반의 부팅 디스켓을 만들기 위해서는 rawrite2.exe 파일과 pass0401.bin 
파일이 필요합니다. 

[rawrite2.exe 과 pass0401.bin 다운 받기] 

3. 다운 받은 파일의 압축을 풀고 해당 명령어를 입력합니다. 

(여기서는 TEMP에 압축을 풀었다는 가정에서 설명해 드립니다.) 
  
C:\TEMP\rawrite2 -f pass0401.bin -d A: 

4. 리눅스 기반의 부팅 디스켓이 완료 되었으면 메인보드의 CMOS 설정에서 A: 드라이브를 부팅시에 가장 우선적으로 읽을 수 있도록 변경합니다. 

 이제 부팅 디스켓이 만들어 졌으니 해당 디스켓을 이용하는 방법을 알려드립니다. 

해당 부팅 디크켓을 이용해서 부팅을 하면 아래와 같은 초기화면에서 Windows NT Change Passwd Utiliy / Registry Editor / Boot disk 라는 화면이 출력되고,몇 가지 화면이 출력된 후에 리로의 부트 로더를 이용해서 부팅이 완료됩니다. 

부팅이 되고 첫번째 항목으로 아래와 같은 화면을 보게 됩니다. 

화면이 출력되는 순서대로 적었으니, 순서대로 진행하시면 됩니다. 

Press return/enter to contiune 

(시작하겠냐는 메시지로써 엔터로 넘어가시면 됩니다.) 

Do you have your NT disks on a SCSI controller? 

y - this will autoprobe for the dirver 
n - no. skip SCSI. I have IDE drives 
or give the scsi-dirver modules name (without the .o or .o.gz) 

+ optional parameters to go directly for a known driver 
Probe for SCSI-dirvers: [y] 

두 번째로 묻는 항목은 controller 을 선택하는 항목으로써 일반적인 환경에서는 대부분 
IDE 방식의 하드 디스크를 사용하기 때문에 [n] 를 누르고 넘어가면 됩니다.하지만 SCSI 
방식의 controller 를 사용하신다면 여기서 [y]를 누르시고 기본적인 플로피 디스켕의 
/SCSI 폴더에 있는 드라이버를 검색하게 합니다. 여기서는 수동으로 드라이브의 이름을 직접 입력할 수도 있습니다. 

기본적으로 SCSI 에서 [y]로 검색을 하게 되면 해당 디스켓의 /SCSI 폴더의 있는 
aic7xxx.o.gz 를 읽습니다. 몇 가지 환경에서 테스트 해 본 결과 SCSI 방식의 하드 드라이브의 경우 내장된 aic7xxx.o.gz 로 검색되지 않는 경우가 많이 발생했고 경험상 해당 방법은 IDE 방식의 하드 디스크를 사용하시는 분들이 하시는 것이 좋습니다. 이 방법으로 자동으로 SCSI 드라이버가 인식되지 않는다면 수동으로 잡아줘야 하는데 이 시간이면 차라리 
다른 시스템에 문제가 발생된 하드 드라이브를 Second 로 붙여놓고 SAM 파일만 지우는 
것이 시간적으로도 빠르고 시스템에 위험 부담도 적지 않을까 생각됩니다. 

What partition contains your NT installation? 
[/dev/hda1] 
파티션을 설정하는 질문입니다. 리눅스 기반의 시스템에서 hda1이라는 것은 첫번째 파티션을 기본으로 잡겠다는 말입니다. 따라서 일반적인 환경에서는 첫번째 드라이브에 NT 시스템이 설치되기 때문에 엔터를 치시면 됩니다. 

 Select what you want to do: 
1 - Set passwords [default] 

 2 - Edit registry Select [1] 

어떤 작업을 할 것인지를 선택하는 화면입니다. 1번은 패스워드를 변경할 것이고, 2번은 레지스터리에 직접적인 수정을 하는 것으로 1번을 선택하시면 됩니다. 

What is the full path to the registry directory? [winnt/system32/config] : 

SAM 파일의 위치를 묻는 화면으로 윈도우의 SAM 파일은 사용자의 계정과 패스워드를 가지고 있는 DB로 생각하시면 됩니다. 기본적으로 엔터를 치시고 넘어가시면 됩니다. 

Which hives (files) do you want to edit (leave default for 
password setting. separate multiple names with spaces) [sam system secutiry] : 
편집할 파일을 선택하는 옵션으로 기본적으로 엔터를 치시면 됩니다. 
Do you really wish to disable SYSKEY? (y/n) [n] 
SYSKEY 라는 것은 Encrypted File System (EFS) 로 만들어진 키를 말합니다. 즉, 보안 
강화를 위한 것으로써 여기서는 기본값인 [n]를 선택하고 넘어갑니다. 

Username to change (! to quit. to list users): [Administrator] 

기본적으로 생성되어 있는 administator 의 계정의 패스워드를 변경할 것인지를 묻는 화면이다. 기본적으로 엔터를 치고 넘어간다. 또한 더 이상 비밀번호를 변경할 계정이 없다면 
“!”를 입력하면 됩니다. 
  
Please enter new password or nothing to leave unchanged: 

변경할 비밀 번호를 입력하면 됩니다. 여기서는 간단하게 외우기 쉬운 1234 등으로 변경을 
하는 것이 좋습니다. 

Do you really wish to change it? (y/n) [n] 

상기 내용에서 변경된 내용을 적용하겠느냐는 물음으로 [y]를 입력합니다. 

Write hive files? (y/n) [n] : 
hive 파일을 덮어 씌우겠냐는 물음으로써 hive 라는 것은 벌통집을 어원으로 하는 단어로써 윈도우 시스템에서는 레지스터리 같은 일종의 규칙을 가진 집합 정도로 이해하시면 됩니다. [y]를 선택하고 넘어 갑니다. 

Calling write.rc to select write back sam file 
About to write file(s) back! Do it? [n] 

Write.rc 에 저장되어 있는 내용을 SAM 파일에 적용하겠냐는 것으로 [y]를 선택하고 엔터를 치시면 됩니다. 

Run ntfsfix to avoid problems with NTFS? (Recommended) [y] : 

해당 질문은 NTFS 파일 시스템으로 변환을 한 시스템에서만 볼 수 있는 옵션으로 리로(LILO) 기반의 부팅 디스켓은 윈도우의 FDISK 디스켓과 달리 NTFS 파일 시스템에 접근이 
가능하다는 것을 알 수 있습니다. 파일 시스템이 NTFS 인 경우 [y]를 선택하면 SAM 파일 
수정으로 인해서 문제가 발생 될 수 있는 경우에 ntfsfix 라는 프로그램을 실행한다는 질문으로써 [y]를 선택하시면 됩니다.

여기까지 진행을 하셨으면 ctrl+alt+delete 로 리부팅 조치를 하시고 정상적으로 윈도우 시스템의 부팅이 되었다면 변경된 암호를 넣으시면 됩니다.

'Infrastructure' 카테고리의 다른 글

포트 리스트  (0) 2010.01.12
Network-용어  (0) 2010.01.12
windows 2003 복원 지점 생성 및 복구  (0) 2010.01.12
windows 2003 ASR 백업  (0) 2010.01.12
windows 2003 ASR 복구  (0) 2010.01.12

+ Recent posts