Windows Booting 문제

Go down

Windows Booting 문제 Empty Windows Booting 문제

올리기  Admin 2011-12-12, 1:29 pm

BOOTMGR is missing Press Ctrl+Alt+Del to restart라고 뜰때..

XP 시절에는 fixmbr, fixboot 정도면 다 되던것이 BCD등이 들어가면서 상당히 복잡한 느낌이네요.
누구나 따라하실 수 있도록 스텝바이스텝으로 설명을 해보려 합니다.

*부팅 자동복구를 통해 복구하는 것이 제일 간단하겠지만, 지 마음대로 시스템 파일을 갈아엎는 것이 마음에 들지 않으시는 분이나 자동복구를 했는데 '문제를 해결할 수 없습니다' (= 이건 뭐 수동으로 하라는 말이죠..) 가 떴는데, 윈도우 다시 깔기는 싫으신 분들..

*윈도우 PE를 이용할 경우 cmd 를 열면 동일하게 진행할 수 있습니다. GUI가 되니 더 쉽죠.
그런데 PE를 또 만들어야 하니 여기서는 설치 디스크를 이용하는 방법을 설명합니다.

1. 하드디스크 여러개를 사용하는 경우,
일단 윈도우가 설치된 하드디스크를 SATA 1번 포트 (메인보드에 보면 번호가 써있습니다.)에 꼽아주세요!
*이 단계를 생략할 경우 부트섹터를 복구해놔도 부팅이 안되거나, 드라이브 문자가 뒤섞이거나 하는 문제가 생깁니다.
* 그냥 윈도우7 설치할때도, 애먼 하드에다가 윈도우가 깔리는 현상을 방지하려면 꼭 이렇게 해줘야 합니다.
2. 윈도우 7 / Windows Vista 설치 USB나, 설치 DVD를 이용해 부팅합니다. (PE로 부팅하신 뒤 명령 프롬포트 이용하셔도 동일합니다.)
3. 초기 화면에서 Shift+F10 명령 프롬포트에 진입.
4. diskpart
5. list disk
*당연히 윈도우가 설치된 파티션이 disk 0.
6. select disk 0
7. list partition
*Windows가 설치된 파티션 번호 (*디스크 번호랑 다릅니다.)
*설치 디스크로 부팅 시 드라이브 문자가 뒤섞이기 때문에 (주로 C이긴 하지만) 용량 등으로 윈도우가 설치되어있는 파티션을 구분해야합니다! 구분 하실때 detail disk 를 하시면 디스크 내의 파티션에 대한 자세한 정보가 나와서 큰 도움을 줄겁니다.
* 정 구분이 안가시면 8번~9번 단계를 디스크 내에 존재하는 모든 파티션 (partition 1 ~partition n)에 해주면 됩니다.
8. select partition 1
9. active
*이 단계는 파티션을 부팅디스크로 사용될 수 있도록 활성파티션 표시하는 것입니다.
10. exit - diskpart를 빠져나옵니다.
11. 다음을 입력합니다 : bootsect c:\ /nt60 /mbr
*c:\는 windows가 설치된 파티션으로 바꿔주세요. 대개 c:\
12.. 다음을 입력합니다 : bootrec /fixmbr
13 . 다음을 입력합니다 : bootrec /fixboot
*이 단계에서 element not found / 요소를 찾을 수 없습니다. 라는 오류가 뜨는 경우,
4번~9번 단계에서 진행이 잘못된 것입니다. 다시 한번 찬찬히 진행해 주세요.
14. 다음을 입력합니다 : bootrec /rebuildbcd
15. 확인하는 단계가 뜨는데 (Yes/No) 전부다 Y 를 입력하고 엔터를 누릅니다.

왠만한 경우 이 단계까지 마치면 부팅이 됩니다.
Windows가 설치되어있음에도 컴퓨터 복구 메뉴에서 윈도우 감지가 안된다거나 하는 문제도 이 절차를 거치면 해결이 됩니다.
윈도우 설치가 감지가 된다면 바로 부팅 복구 (자동복구) 기능을 이용할 수 있지요.

bcdboot c:\windows /l ko-kr 하면 BCD 생깁니다.

------------------------------------------------------------

지금 발생하는 문제의 원인은, 예약파티션(윈도우7을 설치시 생기는 100MB짜리 파티션)이 제거되어서 부팅파티션과 부팅에 관련된 파일(bcd,bootmgr,..등)을 PC가 찾을수 없어서 다음과 같은 문제가 발생했습니다.

다음의 과정을 시도해보면 정상 부팅을 할 수 있을것입니다.

1. windows 7 DVD로 부팅한다.
2. 부팅 선택메뉴에서 '복구모드'를 선택한다.
3. 자동복구를 시도해본다.
4. 자동복구가 안될경우 다음과 같이 해본다.
5-1. 명령프롬프트(cmd)를 실행한다.
5-2. 'diskpart'명령 실행
5-3. 'list disk'명령 실행
5-4. "select disk '번호'" 명령어로 윈도우가 설치된 하드 선택
'번호':윈도우가 설치된 하드의 디스크 번호
5-5. 'list partition'명령 실행
5-6. "select partition '번호'" 명령어로 윈도우가 설치된 파티션 선택
'번호':윈도우가 설치된 하드의 파티션 번호
5-7. 'active'명령 실행 - 활성 파티션 설정 완료!
5-8. 'exit'명령어로 빠져나옴.
6-1. 윈도우가 설치된 하드 드라이브로 이동
예)c: / 참고)이하내용 c드라이브를 기준으로 설명함.
6-2. 'bcdboot c:\windows /s c:' 명령 실행
6-3. 'bcdboot c:\windows /l ko-KR'명령 실행
7. 재부팅해본다.


===================================================================

Bootsect 명령에 의한 MBR 복구..

윈도우7 설치cd 또는 복구 디스크 부팅해서 복구 모드로 들어갑니다. 콘솔창 띄우시구
Bootsect /nt60 c: /mbr

Bootsect.exe는 하드 디스크 파티션의 마스터 부팅 코드를 업데이트하여 Bootmgr과 NTLDR(NT 로더) 사이를 전환합니다. 이 도구를 사용하면 컴퓨터의 부팅 섹터를 복원할 수 있습니다. 이 도구는 FixFAT 및 FixNTFS를 대체합니다.

Bootsect 명령

Bootsect에서는 다음 명령줄 옵션을 사용합니다.
bootsect.exe {/help | /nt52 | /nt60} {SYS | ALL | } [/force] /mbr
예를 들어 NTLDR과 호환되는 마스터 부팅 코드를 볼륨 레이블 E에 적용하려면 다음 명령을 사용합니다.

bootsect.exe /nt52 E:
명령줄 옵션 설명

/help
사용 지침을 표시합니다.

/nt52
NTLDR과 호환되는 마스터 부팅 코드를 SYS, ALL 또는 에 적용합니다. SYS, ALL 또는 에 설치된 운영 체제는 Windows® XP여야 합니다.

/nt60
Bootmgr과 호환되는 마스터 부팅 코드를 SYS, ALL 또는 에 적용합니다. SYS, ALL 또는 에 설치된 운영 체제는 Windows Vista®여야 합니다.

SYS
Windows를 부팅하는 데 사용된 시스템 파티션의 마스터 부팅 코드를 업데이트합니다.

ALL
모든 파티션의 마스터 부팅 코드를 업데이트합니다. ALL은 각 볼륨에 대한 부팅 코드를 반드시 업데이트하지는 않습니다. 대신 이 옵션은 Windows 부팅 볼륨으로 사용할 수 있는 볼륨의 부팅 코드를 업데이트하며, 이때 기존 디스크 파티션과 연결되지 않은 동적 볼륨은 제외됩니다. 이러한 제한은 부팅 코드가 디스크 파티션의 시작 부분에 있어야 하기 때문입니다.


/force
부팅 코드를 업데이트하는 동안 볼륨을 강제로 분리합니다. 이 옵션을 사용할 때는 주의해야 합니다.

Bootsect.exe에서 단독으로 볼륨에 액세스할 수 없는 경우 다시 부팅하기 전에 파일 시스템에서 부팅 코드를 덮어쓸 수 있습니다. Bootsect.exe는 항상 업데이트하기 전에 볼륨 잠그기와 분리를 시도합니다. /force를 지정하면 초기 잠금이 실패할 경우 강제 분리를 시도합니다. 예를 들어 대상 볼륨의 파일을 현재 다른 프로그램에서 열어 놓은 경우 잠금이 실패할 수 있습니다.

성공하면 초기 잠금이 실패해도 강제 분리를 통해 단독 볼륨 액세스 및 안정적인 부팅 코드 업데이트가 가능합니다. 동시에 강제 분리는 대상 볼륨의 파일에 대해 열려 있는 핸들을 모두 무효화합니다. 그 결과 이러한 파일을 연 프로그램에서 예기치 않은 동작이 수행될 수 있으므로 이 옵션을 사용할 때는 주의해야 합니다.

/mbr
SYS, ALL 또는 에서 지정한 파티션을 포함하는 섹터가 0인 디스크에서 파티션 테이블을 변경하지 않고 마스터 부트 레코드를 업데이트합니다. 이를 /nt52 옵션과 함께 사용하면 마스터 부트 레코드가 Windows Vista 이전 운영 체제와 호환됩니다. 이를 /nt60 옵션과 함께 사용하면 마스터 부트 레코드가 Windows® 7, Windows Vista, Windows Server® 2008 또는 Windows Server® 2008 R2와 호환됩니다.

================================================

windows xp mbr vbr 복구

1 windowsxp cd 부팅 복구모드
2 fixboot,fixmbr 실행


-mbr 복구
fixmbr c:

-vbr 복구
fixboot c:

-ntldr 복구
copy d:\i386\ntldr c:\
copy d:\i386\nydetect.com c:\
bootcfg/rebuild


==============================================
windows RE(Windows 복구 환경)에서 Bootrec.exe 도구를 사용하여 Windows Vista의 다음 항목에서 발생하는 문제를 해결하고 복구할 수 있습니다.

MBR(마스터 부트 레코드)
부팅 섹터
BCD(부팅 구성 데이터) 저장소

참고 Windows RE를 사용하여 시작 문제를 해결할 때 먼저 시스템 복구 옵션 대화 상자에서 시동 복구 옵션을 시도해야 합니다. 시동 복구 옵션으로 문제가 해결되지 않거나 더 많은 단계를 수동으로 해결해야 하는 경우 Bootrec.exe 도구를 사용하십시오.

Bootrec.exe 도구를 실행하려면 Windows RE를 시작해야 합니다. 이렇게 하려면 다음과 같이 하십시오.

디스크 드라이브에 Windows Vista 설치 디스크를 넣은 다음 컴퓨터를 시작합니다.
메시지가 나타나면 키를 누릅니다.
언어, 시간, 통화, 키보드 또는 입력 방법을 선택하고 다음을 누릅니다.
컴퓨터 복구를 누릅니다.
복구할 운영 체제를 누르고 다음을 누릅니다.
시스템 복구 옵션 대화 상자에서 명령 프롬프트를 누릅니다.
Bootrec.exe를 입력한 다음 Enter 키를 누릅니다.

참고 Windows Vista DVD에서 컴퓨터를 시작하려면 컴퓨터가 DVD 드라이브에서 시작하도록 구성되어 있어야 합니다. DVD 드라이브에서 시작되도록 컴퓨터를 구성하는 방법에 대한 자세한 내용은 컴퓨터에 포함되어 있는 설명서를 참조하거나 컴퓨터 제조업체에 문의하십시오.
위로 가기
Bootrec.exe 옵션
Bootrec.exe 도구는 다음 옵션을 지원합니다. 해당 상황에 적합한 옵션을 사용하십시오.

참고 BCD를 다시 빌드해도 시작 문제가 해결되지 않으면 BCD를 내보내고 삭제한 다음 이 옵션을 다시 실행할 수 있습니다. 이렇게 하면 BCD가 완전히 다시 빌드됩니다. 이렇게 하려면 Windows RE 명령 프롬프트에서 다음 명령을 입력하십시오.

bcdedit /export C:\BCD_Backup
c:
cd boot
attrib bcd -s -h -r
ren c:\boot\bcd bcd.old
bootrec /RebuildBcd

/FixMbr
/FixMbr 옵션은 Windows Vista와 호환되는 MBR을 시스템 파티션에 기록합니다. 이 옵션은 기존 파티션 테이블을 덮어쓰지 않습니다. MBR 손상 문제를 해결해야 하거나 MBR에서 비표준 코드를 제거해야 하는 경우 이 옵션을 사용하십시오.
/FixBoot
/FixBoot 옵션은 Windows Vista와 호환되는 부팅 섹터를 사용하여 새 부팅 섹터를 시스템 파티션에 기록합니다. 다음 조건 중 하나에 해당하면 이 옵션을 사용하십시오.

부팅 섹터가 비표준 Windows Vista 부팅 섹터로 대체되었습니다.
부팅 섹터가 손상되었습니다.
Windows Vista가 설치된 후 이전 Windows 운영 체제가 설치되었습니다. 이 경우에 Windows 부팅 관리자(Bootmgr.exe) 대신 Windows NTLDR(NT 로더)을 사용하여 컴퓨터가 시작됩니다.

/ScanOs
/ScanOs 옵션은 Windows Vista와 호환되는 설치 디스크를 모두 검색합니다. 또한 이 옵션은 BCD 저장소에 현재 없는 항목을 표시합니다. 부팅 관리자 메뉴에 표시되지 않는 Windows Vista 설치가 있으면 이 옵션을 사용합니다.
/RebuildBcd
/RebuildBcd 옵션은 Windows Vista와 호환되는 설치의 디스크를 모두 검색합니다. 또한 이 옵션은 BCD 저장소에 추가할 설치를 선택할 수 있도록 합니다. BCD를 완전히 다시 빌드해야 하는 경우 이 옵션을 사용하십시오.



---------------------------------------------------------------------------------
DVD부팅시 EMS사용가능이란 무엇을 말하나?
EMS = Emergency Management Services = 응급 관리 서비스
가끔 System Repair Disc (약 145Mb) 또는 ERD 6.0 (6.5) or ERD Commander 2006 (2007)이란 말을 들어보셨을 것입니다.
아시다시피 이것은 어떤 이유에 의하여 system Malfunction으로 복구가 필요하면 Install Boot DVD 를 넣고 복구를 합니다
그리고 System Recovery Options에서 해당 복구를 선택하여 시행합니다.
따라서 복구기능이 함축된 Win nstall DVD에 메뉴선택으로 각각 x86(x32)용 x64용.
--------------------------------------------------------------------------------

NTLDR is missing
NTLDR NT 계열에서 사용되는 부트 로더 입니다.

NTLDR는 NT 로더(NT Loader)의 준말로, 마이크로소프트 윈도 NT 계열 운영 체제를 위한 시동 로더이다. 이를테면 윈도 XP와 윈도 서버 2003을 들 수 있다. NTLDR은 보통 원본의 하드 디스크 드라이브에서 실행되지만 CD-ROM, USB 플래시 드라이브, 플로피 디스크와 같은 휴대용 기억 장치에서도 실행할 수 있다. NTLDR은 또한 어떠한 파일의 적절한 시동 섹터가 주어진다면 NT 기반이 아닌 운영 체제를 불러들일 수도 있다.

NTLDR은 적어도, 시스템 볼륨 위에 다음의 두 개의 파일들이 필요하다:

NTLDR: 기본 시동 로더 자체이다.
boot.ini: 시동 메뉴를 위한 구성 옵션을 포함하고 있다. (윈도 비스타 이후의 운영 체제부터는 이를 포함하지 않는다.)

NT 기반의 운영 체제에서 로드할 경우 ntdetect.com이 반드시 존재해야 한다. (정확히 말하면 NTLDR만이 실제로 필요하지만 boot.ini가 존재하지 않으면 NTLDR은 기본적으로 첫 하드 드라이브의 첫 파티션에 있는 c:\windows 디렉터리를 잡게 된다. 가정의 많은 데스크톱 컴퓨터들은 이러한 구성을 따르며 boot.ini 파일이 없어지면 이러한 파일이 존재하지 않는다는 오류가 뜨면서 윈도로 성공적으로 시동된다.)

윈도 NT 포맷 명령에 의해 디스크에 기록된 볼륨 시동 레코드는 NTLDR 프로그램을 불러들이고 실행한다.

윈도 비스타와 윈도 서버 2008의 경우, NTLDR이 아닌 다른 시동 로더를 사용한다. 시동 로더 기능은 다음의 두 가지 새로운 구성요소로 대체되어 있다.
winload.exe
윈도 시동 관리자

----------------------------------------------------------
시작 프로세스

시동할 때, 로드 프로그램의 NTLDR은 다음의 순서를 따른다:

시동 드라이브의 파일 시스템에 접근한다. (현재로써는 FAT 또는 NT 파일 시스템 NTFS)
hiberfil.sys를 발견하여 최대 절전 모드의 이미지를 찾는다면, 이에 대한 내용은 메모리로 불러들이고 시스템이 꺼질 때 재개된다.
hiberfil.sys를 발견하지 않은 경우, boot.ini를 읽어내고 (역자 주: 여러 개의 운영 체제가 설치되어 있는 등의 경우) 시동 메뉴를 사용자에게 보여준다.
NT 기반이 아닌 운영 체제가 선택되면, NTLDR은 boot.ini 안에 나열된 연결 파일을 불러들이고 제어권을 제공한다. 도스 기반의 도스로 시동하거나 연결 파일을 따로 지정하지 않으면 연결 파일로 bootsect.dos를 찾는다.
NT 기반의 운영 체제가 선택되면, NTLDR은 ntdetect.com을 실행하여 사용자 컴퓨터의 하드웨어에 대한 정보를 얻는다. (ntdetect가 하드웨어 감지 도중에 멈추는 것을 대비하여, 마이크로소프트 지원[1]에서 찾을 수 있는 ntdetect.chk라고 불리는 디버그 버전이 있다.)
Ntoskrnl.exe를 실행하여 ntdetect.com가 반환한 정보를 내보낸다.[1]
----------------------------------------------------------
(윈도 XP 이전 운영 체제에서) 사용자의 실수 혹은 바이러스 이외의 환경요인으로 인해서 NTLDR 파일이 삭제되거나 변형되면 외관상으로는 아무런 문제도 없어 보이지만, 운영 체제를 다시 시작하면 부팅에 실패하게 되고, 'ntldr is missing, Press Ctrl+Alt+Del' 이라는 메시지가 출력된다.

그러나 저 메시지가 뜬다고 반드시 NTLDR 파일이 삭제되었다고 보기엔 어렵다(파일을 불러오는 중에 알 수 없는 이유로 일시적인 오류를 일으켜 나타나는 메시지일 가능성도 있기 때문이다.) 하지만 출력된 메시지의 방법으로도(재부팅을 해도) 부팅에 실패하고 같은 메시지가 나온다면, 삭제 혹은 변형을 의심할 수 있다. 그러나 일반적인 해결 방법은 없으며, 새로 윈도 운영 체제를 설치해야 한다.

(같은 운영 체제의 정상 PC가 있을 경우에는 부팅에 실패하는 하드디스크를 연결한 다음, 같은 O/S의 정상 PC에 있는 NTLDR 파일을 부팅에 실패하는 하드 디스크에 복사하여 되돌리는 방법도 있다. 하지만 단순히 NTLDR 파일 이상으로 나타나는 문제가 아닐 수 있으므로, 재설치를 권장한다.)

이런 문제로 인해 윈도 비스타 이상 운영 체제 부터는 새로운 부트 로더를 사용한다.
----------------------------------------------------------
boot.ini

NTLDR은 사용자가 어느 운영 체제로 시동할 것인지 메뉴를 띄워 준다. 윈도 NT 및 NT 기반 운영 체제에서는, 커널에 대해 사용자가 미리 구성한 옵션들을 무시할 수도 있다. 이러한 메뉴 옵션들은 boot.ini에 저장되는데, NTLDR과 같은 곳(같은 디스크의 루트)에 위치해 있다.

NT 기반의 운영 체제에서, 운영 체제의 위치는 고급 RISC 컴퓨팅 (ARC) 경로로 쓰여져 있다.

boot.ini는 다음의 파일 특성을 가지면서 사용자 구성을 보호한다.: 시스템, 숨김, 읽기 전용. 이 파일의 내용을 편집하기 위해서는 다음의 과정을 따르면 된다.

콘솔에서 다음의 명령어를 입력한다: attrib -s -h -r boot.ini. (-s는 시스템 특성을, -h는 숨김 특성을, -r은 읽기 전용 특성을 없앤다)
폴더 옵션에서 "숨김 파일 및 폴더 보기"에 체크하고 "보호된 운영 체제 파일 숨김"의 체크를 없앤 다음, 루트 디렉터리에 표시되는 boot.ini 파일의 특성을 속성에서 변경한다.
더 보안적인 기능의 편집을 위해서는 콘솔에서 bootcfg 명령어를 사용하는 것이다.
시작→실행→msconfig를 사용하여 시스템 구성 유틸리티의 시동 환경을 수정할 수 있다. 이것은 boot.ini가 없는 윈도 비스타에서도 마찬가지이다.

bootsect.dos는 도스를 불러들이기 위해 NTLDR이 불러들이는 시동 섹터이다. 특정한 파일이 지정되지 않으면, NTLDR은 bootsect.dos를 불러들인다.


=================================================
bootmgr
bcdboot
==================================================
mbr pbr vbr

PBR은 여러 이름으로 불리는데 다른 이름으로는 BPB라고도 한다. 옛날 도스 시절에 BIOS 콜을 통해 파티션에 대한 정보를 얻어오고 처리하고 했는데, 그 기본 정보가 되는 블럭이라서 저런 이름이 붙은 것 같다. 일단 여기서는 PBR이라고 하겠다.
PBR과 MBR의 차이는 무엇일까? MBR은 하나만 존재하며 섹터 0에만 있고, PBR은 각 파티션의 시작에 존재하며 FAT에 대한 정보를 포함하고 있다는 것이 다르다
vbr volume boot record

--------------------------------

MBR(Master Boot Record)은 PC에서 사용되는 포맷된 하드디스크 드라이브의 첫 번째 섹터의 내용을 말합니다.

// MBR 섹터에 있는 파티션 테이블 구조
struct PartTable
{ // OFFSET: 446~461
BYTE Bootable; // 446 0x1BE
BYTE StartHead; // 447 0x1EF
WORD StartCylSec; // 448 0x1C0
BYTE Type; // 450 0x1C2
BYTE EndHead; // 451 0x1C3
WORD EndCylSec; // 452 0x1C4
long LBA_Begin; // 454 0x1C6
long Size; // 458 0x1CA
};

[Bootable] BYTE
맨 처음 바이트인 bootable은 해당 파티션이 부팅 가능한 것인지를 나타내는 것입다. 이 값은 부팅 가능한 경우 80h, 불가능한 경우 00h가 설정됩니다.

[StartHead-StartCylSec] BYTE-WORD
다음 항목인 start_drv_head와 start_sec_cyl은 파티션 정보 확인 후 부트 레코드를 읽어오기 위해 필요한 부트 섹터의 어드레스를 나타냅니다. 그 내용은 Int11 인터럽트의 파라미터로 바로 사용될 수 있는 형식으로 되어 있습니다.

Admin
Admin

게시물 갯수 : 184
Join date : 2011-12-11

https://hyora.forumkorean.com

위로 Go down

위로


 
Permissions in this forum:
답글을 올릴 수 없습니다