Windows NT 부팅 프로세스

Windows NT booting process

Windows NT 부팅 프로세스는 Windows NT 4.0, Windows 2000, Windows XP 및 Windows Server 2003 운영 체제를 초기화하는 프로세스입니다.Windows Vista 이후에서는, 이 프로세스가 큰폭으로 변경되었습니다.변경 내용에 대해서는, Windows NT 6 의 기동 프로세스를 참조해 주세요.

인스톨러

Windows NT 설치는 CD-ROM에서 실행된다는 점을 제외하고는 일반 Windows NT 설치와 매우 유사하게 작동합니다.이 부팅 방법이 작동하려면 BIOS가 El Torito 사양과 호환되어야 합니다.설치 CD의 ISO 9660 파일 시스템은 표준과 완전히 호환되지 않습니다."Level 1"이지만 파일 이름에는 파일 버전이 추가되지 않습니다.부트 이미지는 1 섹터 길이(2048바이트)의 "에뮬레이션 없음" 타입으로 세그먼트 0x7c0으로 [1]로드됩니다.7-Zip 또는 WinZip 등의 파일 압축 해제 프로그램을 사용하여 ISO 이미지에서 추출할 수 있습니다.또한 ISO 이미지는 대부분의 Linux 배포판의 ISO 이미지처럼 하이브리드화되지 않기 때문에 마스터 부트 레코드(MBR)가 포함되어 있지 않기 때문에 펜 드라이브 등의 블록 디바이스에서 이미지를 복사하는 것만으로 부팅할 수 없습니다.

MS-DOS 명령 프롬프트에서 설치 관리자를 실행하여 이미 설치된 이전 버전의 마이크로소프트 윈도우즈를 업그레이드할 수도 있습니다.Windows 98 나 Windows Me 등의 MS-DOS 베이스의 OS 로부터 인스톨러를 실행하려면 , 시스템을 「DOS 모드」로 기동해, I386/WINNT 를 실행할 필요가 있습니다.CD-ROM의 [2][3]EXE.

MS-DOS가 포함된 플로피 디스크를 사용하여 설치 프로그램을 시작할 수 있습니다.플로피 버전의 설치 프로그램도 [4]판매되고 있습니다.Windows Vista 이후로는, 인스톨러가 BOOT 로부터 실행됩니다.Windows PE 의 부터블 버전을 포함한 WIM 。Windows PE 2.0은 Windows Vista [5]커널을 기반으로 하며 이후 Windows PE 버전은 최신 Windows [6]버전을 기반으로 합니다.

CD-ROM 부트 이미지 단계

통상의 CD-ROM 인스톨에서는, BIOS 는 POST 를 실행해, CD-ROM 로 기동 디스크 리프터를 검색합니다.부트 기술자는 ISO 9660 파일시스템상의 부트카탈로그 파일을 가리킵니다.BIOS는 현재 아키텍처와 호환되는 부트 이미지를 검색하여 메모리에 로드한 후 실행합니다.부트 이미지는 하드 드라이브의 부트 섹터와 유사합니다.부트 이미지가 SETUPLDR.B를 로드합니다.는 NTLDR과 유사합니다.어떠한 이유로 실패했을 경우 NTLDR을 찾을 수 없다는 메시지가 표시되며, 그 자체가 오해를 일으킬 수 있습니다.또한 CD의 NTLDR은 설치 로드 단계에서는 사용되지 않습니다.또한 파일 버전을 사용할 수 없는 것으로 가정합니다.

부트 로더를 기동하기 전에, 부트 이미지는, Windows 의 인스톨(시스템)이 이미 존재하는지를 확인해, 인스톨 했을 경우는 기동합니다.BOOTFIX.BIN. 설치가 없거나 디스크에 MBR이 없는 경우 부트 로더를 직접 시작하므로 필요 없습니다.BOOTFIX.BIN.한다면BOOTFIX.BIN를 기동하면, 「Press any key to boot from CD」라고 하는 문자열이 표시되고, 유저의 입력을 기다립니다.몇 초간 아무것도 검출되지 않으면, 다음의 디바이스가 기동합니다.이 동작은 하드 디스크에서 시작하는 설치의 두 번째 단계를 부팅하는 데 필수적입니다.

부트 로더 단계

둘다요.SETUPLDR.BIN그리고.NTLDR연결된 두 개의 이진 파일로 구성됩니다.압축된 CAB 파일로 설치 CD에 수록되어 있습니다.첫 번째 파일은STPBOOT.BIN두 번째 파일만 로드하는 플랫 바이너리 파일입니다.두 번째 파일은 Portable Executable 형식일반 EXE 파일입니다.SETUPLDR.BIN두 번째 파일은SETUPLDR.EXE및 인NTLDR두 번째 파일은OSLOADER.EXE.둘다요.SETUPLDR.EXE그리고.OSLOADER.EXE에는 FAT, NTFS 및 ISO 9660에서 기본 액세스를 위한 내장 파일 시스템 드라이버가 있습니다.일반 *와 다릅니다.부트 로더는 BIOS 인터럽트를 사용하여 부트 디스크에 액세스합니다.내장 INI 파서와 CAB 압축 해제기도 포함되어 있습니다.

인스톨러의 실행이 개시되면, 「Setup is inspecting your computer's hardware configuration..".NTDETECT.COM가 호출되어 시스템 정보가 메모리에 저장됩니다.그런 다음 VGA 텍스트 모드에서 "Windows Setup" 또는 "Windows *version name here* Setup"이라는 제목으로 블루스크린을 표시하고 하단에 상태 표시줄 역할을 하는 흰색 줄을 표시합니다.NTDETECT.COM그 후 를 찾습니다.TXTSETUP.SIF그걸 파싱하는 거죠이 파일은 레지스트리 또는 *와 마찬가지로 키 값 데이터베이스로 기능합니다.INI 또는 *.INF 파일키에는 설치 위치와 관련된 파일 목록 또는 스크립트 행이 포함될 수 있습니다.따라서 데이터베이스에는 데이터와 코드가 저장됩니다.해석 중에는 공백 행은 무시되고 같은 이름의 섹션이 병합됩니다.

파일BIOSINFO.INF또한 하드웨어 문제를 해결하기 위해 로딩됩니다.

의 key-value 구문SourceDisksFiles섹션은 다음과 같습니다.[7][8][9]

filename_on_source = disk_id, subdir, upgrade_code, new_install_code, subdir, new_code 

인스톨러에 의해서, 추가의 드라이버를 로드할 필요가 있는지를 문의해, 텍스트 모드 드라이버를 로드합니다.

  • 서드파티제의 SCSI 또는 RAID 드라이버를 인스톨 하려면 , F6 키를 누릅니다.."
  • 「자동 시스템 리커버리(ASR)를 실행하려면 , F2 키를 누릅니다."

이 경우 플로피 디스크에서만 로드할 수 있습니다.첫 번째 [10]메시지에서 F5를 누르면 컴퓨터 유형을 선택하라는 화면이 나타납니다.

텍스트 모드 드라이버는 하드웨어의 유무에 관계없이 로드되기 때문에 PnP 드라이버와는 다릅니다.설치 프로그램의 로드 단계에서는 로드 중인 현재 파일에 대한 몇 가지 메시지가 화면에 표시됩니다."Setup is loading files ([file description])"라는 메시지가 나타납니다.이 단계에서 로드되는 파일은 로 끝나는 섹션에 있는 파일입니다..Load이러한 섹션에서는 키가 드라이버 이름을 지정하고 값이 파일을 지정합니다.그 후, 드라이버명은, 같은 섹션으로 검색됩니다..Load접미사를 눌러 운전자에게 친숙한 이름을 찾습니다.또한 커널은 레지스트리를 로드하기 위해 마운트된 레지스트리 하이브가 필요합니다.SETUPREG.HIV또한 로딩됩니다.부트 로더가 로드하는 파일의 모든 파일명은 드라이버를 제외하고 하드 코드화되어 있습니다.

PnP 디바이스는 버스 드라이버에 의해 식별된 후 섹션으로 체크인된 주소입니다.HardwareIdsDatabase대응하는 드라이버명이 지정됩니다.그러나 이 단계에서는 사용하지 않습니다.

커널 단계

부트 로더에 의해 모든 부트 파일이 로드되면 "Setup is starting Windows"라는 메시지가 표시되고 커널이 시작됩니다.통상적인 인스톨과 같이, 드라이버를 기동해, 다음의 서비스를 로드합니다.setupdd.sys커널 모드로 실행되며 텍스트모드로 GUI가 기동됩니다.앞으로는 모든 드라이버가 NT 기반이며 BIOS 인터럽트는 사용되지 않습니다.

파일 시스템 레이아웃을 선택하라는 메시지가 표시됩니다.필요에 따라 선택한 파티션이 포맷되고 TXTSETUP의 파일이 포맷됩니다.SIF가 시스템에 복사됩니다.그런 다음 레지스트리 하이브를 생성하고 시스템을 자동으로 재시작하여 NT 시스템이 자체적으로 부팅 및 부트스트랩할 수 있도록 합니다.HiveInfs 섹션은 하이브를 기본값으로 채우는 데 사용되는 파일을 가리킵니다.새로 설치하는 경우 이 섹션은HiveInfs.Fresh. 파일은 reg 파일이 아니라 ini interpreter로 인식할 수 있는 ini 파일입니다.디스크 포메터 프로그램은 다음과 같이 정적으로 연결되어 있습니다.setupdd.sys.

리마스터링

인터넷에는 TXTSETUP을 커스터마이즈하는 프리웨어 툴이 많이 있습니다.무인 인스톨의 작성이나 드라이버와 핫 픽스의 통합에 사용하는 SIF.이 프로세스를 슬립스트림이라고 부르기도 합니다.

다음 명령은 Linux에서 최소 옵션 집합으로 재마스터 CD를 생성하는 방법을 보여 줍니다.현재 디렉토리가 CD 마운트포인트라고 가정합니다.홈 디렉토리에 이미지가 생성됩니다.

mkisofs - b Bootable_NoEmulation.img - no-emul - boot - N . > ~/ntsetup.iso

파일winnt.sif를 사용하여 설치를 무인화할 수 있지만 반드시 존재할 필요는 없습니다.CD에 모델 파일이 있습니다.UNATTEND.TXT. 셋업에서 winnt.sif를 검출하려고 합니다.I386디렉토리 또는 플로피 [11]디스크의 루트 디렉토리에 있습니다.

부트 로더 단계

Windows NT 의 기동 프로세스는, 컴퓨터가 Microsoft Windows 를 검색해 기동하는 Windows operating system 의 일부인 Windows 부트 로더를 검출했을 때에 개시됩니다.다만, Windows Vista 이전의 부트 로더는 NTLDR이었습니다.Microsoft는 IA-64 아키텍처를 사용하는 인텔 Itanium 프로세서용 운영체제도 출시했습니다.이러한 Windows 에디션의 부트로더는 IA64ldr.efi(나중에 간단하게 IA64ldr로 불림)입니다.확장 가능한 펌웨어 인터페이스(EFI)[12] 프로그램입니다.mware Interface) 프로그램입니다.

운영 체제 선택

NTLDR 부트로더의 상세 옵션 메뉴

부트 로더가 실행되면 Windows 운영 체제가 검색됩니다.Windows Boot Manager는 부트 시 구성 데이터의 펌웨어에 의존하지 않는 복잡한 데이터베이스인 부트 구성 데이터(BCD)를 읽어냄으로써 이를 실현합니다.그 전신은,NTLDR는, 보다 심플한 것을 읽어냄으로써 실현합니다.boot.iniboot.ini 파일이 없는 경우 부트 로더는 표준 설치 디렉토리에서 정보를 검색합니다.Windows NT 및 2000 머신의 경우는, 에서 기동하려고 합니다.C:\WINNTWindows XP 및 2003 머신의 경우는, 에서 기동합니다.C:\WINDOWS.

두 데이터베이스 모두 로컬 하드 Disk 드라이브 또는 로컬 네트워크의 원격 시스템에서 로드될 수 있는 설치된 마이크로소프트 운영 체제 목록을 포함할 수 있습니다.NTLDR은 파일 시스템이 NTFS 또는 FAT 파일 시스템, CDFS(ISO 9660) 또는 [13]UDFS인 디스크에 설치된 운영 체제를 지원합니다.윈도우즈 부트 관리자는 NTFS Disk [14]드라이브에 저장된 VHD 파일 에 설치된 운영 체제도 지원합니다.

최대 절전 모드가 지원되는 윈도우즈 2000 이상 버전에서 윈도우즈 부트 로더는 hiberfil.sys를 검색하여 운영 체제 검색을 시작합니다.NTLDR은 boot.ini에서 지정된 기본 볼륨의 루트 폴더를 조사합니다.Windows Boot Manager가 hiberfil 위치를 검색합니다.BCD의 sys.이 파일이 검출되어 액티브메모리 세트가 검출되면, 부트 로더는 파일의 내용(머신의 물리 메모리 덤프의 압축 버전)을 메모리에 로드해, 컴퓨터를 휴지전의 상태로 복원합니다.

그런 다음 부트 로더는 설치된 운영 체제 항목 목록을 찾습니다.복수의 operating system이 인스톨 되어 있는 경우는, 부트 로더에 부트 메뉴가 표시되고, 유저가 operating system을 선택할 수 있게 됩니다.Windows 98 등의 NT 기반 이외의 operating system이 선택되어 있는 경우(예를 들어 C:\ 등 MS-DOS 스타일의 패스에 의해 지정됨), 부트 로더는 부트 시에 리스트 되어 있는 관련 「부트 섹터」파일을 로드합니다.ini 또는 BCD(기본적으로 파일 이름이 지정되지 않은 경우 bootsect.dos)로 실행 제어를 전달합니다.그렇지 않으면 부팅 프로세스가 계속됩니다.

Windows NT 커널 로드

OS 는, 「Boot」라고 하는 플래그가 붙은 특정의 기본 드라이버가 메모리에 로드되면 기동합니다.Windows 설치가 상주하는 파티션 유형(NTFS, FAT 또는 FAT32)에 적합한 파일 시스템 드라이버가 있습니다.부트 프로세스의 이 시점에서, 부트 로더는 화면을 클리어 해 텍스트의 프로그레스 바를 표시합니다(초기화 속도 때문에 자주 표시되지 않습니다).Windows 2000 에는, 「Windows 의 기동중...」이라고 하는 텍스트도 표시됩니다."아래에.이 단계에서 사용자가 F8 키를 누르면 고급 부트 메뉴가 표시됩니다.이 메뉴에는 세이프 모드, Last Known Good Configuration, 디버깅 활성화, 디렉토리 서비스 복원 모드(Server Edition의 경우) 등 다양한 특수 부트 모드가 포함됩니다.부트 모드를 선택하면(또는 F8을 누르지 않은 경우) 부팅이 계속됩니다.

다음 파일이 [dubious ]순차적으로 로드됩니다.

  1. ntoskrnl.exe(커널)
  2. hal.backet(하드웨어 추상화 레이어 유형)
  3. kdcom.dll (커널 디버거 HW 확장 DLL)
  4. bootvid.dll(Windows 로고 및 사이드 스크롤바용)
  5. config\system(레지스트리 하이브 중 하나)

그다음에 NTDETECT.COM 및 Windows NT 커널(Ntoskrnl.exe) 및 하드웨어 추상화 레이어(hal.dll)가 메모리에 로드됩니다.Windows 레지스트리에 복수의 하드웨어 구성이 정의되어 있는 경우는, 이 시점에서 어느쪽인가를 선택하도록 요구됩니다.

커널이 메모리에 있는 경우 부팅 시 디바이스 드라이버가 로드됩니다(아직 초기화되지 않았습니다).필요한 정보(검출된 모든 하드웨어 및 윈도우즈 서비스에 대한 정보와 함께)는HKEY_LOCAL_MACHINE\System레지스트리의 일부로서, 레지스트리 키 세트를 통칭해 컨트롤 세트라고 부릅니다.현재 사용되고 있는 설정에 의해 시스템이 기동할 수 없는 경우에 대비하여 복수의 컨트롤 세트(일반적으로 2개)가 보관 유지됩니다. HKEY_LOCAL_MACHINE\System라벨이 붙은 컨트롤 세트 포함ControlSet001,ControlSet002, 등CurrentControlSetWindows 는, 통상의 조작중에,CurrentControlSet정보를 읽고 쓸 수 있습니다. CurrentControlSet는 레지스트리에 저장되어 있는 컨트롤 세트의 1개를 참조합니다.Windows 에서는, 「실제」컨트롤 세트를, 에서 설정한 값에 근거해 선택합니다.HKLM\SYSTEM\Select레지스트리 키:

  • Default다른 어떤 것도 이것을 덮어쓰지 않으면 부트 로더가 선택할 수 있습니다.
  • 의 값이Failed키 매치Default부트 로더는 마지막 부팅이 실패했음을 나타내는 오류 메시지를 표시하고 부팅을 시도하거나 "최종 정상 구성"을 사용할 수 있는 옵션을 사용자에게 제공합니다.
  • 사용자가 [Last Knowled Good Configuration](또는 [Last Knowled Good Configuration])을 선택했을 경우 에 의해 표시되는 컨트롤 세트LastKnownGood대신 키가 사용됩니다.Default.

제어 세트가 선택되면Current키가 적절히 설정됩니다.Failed키도 다음과 같이 설정됩니다.Current부트 프로세스가 종료될 때까지 계속합니다. LastKnownGood로도 설정되어 있습니다.Current부트 프로세스가 정상적으로 완료되었을 경우.

기동하는 서비스와 각 그룹이 기동하는 순서는, 다음의 키에 의해서 제공됩니다.

  • HKLM\SYSTEM\CurrentControlSet\Services
  • HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder

기동시에는, 다음의 몇개의 드라이버를 사용할 수 있습니다.

  1. 커널을 시작하기 전에 부트 로더에 의해 로드되는 "Boot" 드라이버입니다.「부팅」드라이버는, 하드 디스크 컨트롤러와 파일 시스템(ATA, SCSI, 파일 시스템 필터 매니저 등)의 거의 배타적인 드라이버입니다.즉, 커널이 다른 드라이버와 그 외의 operating system의 로드를 개시하기 위해서 필요한 최소한의 드라이버입니다.
  2. 기동 드라이버 후에 커널에 의해서 로드되어 기동되는 「시스템」드라이버.「시스템」드라이버는, 디스플레이 드라이버, CD-ROM 서포트, TCP/IP 스택 등, 폭넓은 코어 기능을 커버합니다.
  3. GUI가 이미 시작되었을 때 훨씬 나중에 로드되는 "자동" 드라이버입니다.

이 작업이 완료되면 제어가 부트 로더에서 커널로 전달됩니다.

커널 단계

커널 서브시스템과 Windows Executive 서브시스템의 초기화는 2단계로 이루어집니다.

첫 번째 단계에서는 기본 내부 메모리 구조가 생성되고 각 CPU의 인터럽트 컨트롤러가 초기화됩니다.메모리 매니저가 초기화되어 파일 시스템 캐시 영역, 페이징된 메모리 풀 및 페이징되지 않은 메모리 풀이 생성됩니다.개체 관리자,[15] 시스템의 첫 번째 프로세스에 할당하기 위한 초기 보안 토큰 및 프로세스 관리자 자체입니다. 시점에서 시스템 유휴 프로세스와 시스템 프로세스가 생성됩니다.

두 번째 단계에서는 NTLDR에 의해 시스템 드라이버로 식별된 디바이스 드라이버를 초기화합니다.

디바이스 드라이버를 로드하는 프로세스에서는, Windows 2000 시스템의 디스플레이의 하단에 「프로그레스 바」가 표시됩니다.Windows XP 및 Windows Server 2003 에서는, 실제의 진척 상황을 나타내지 않는 애니메이션 바로서 대체되었습니다.Windows XP 이전에는, 기동 프로세스의 이 부분이 큰폭으로 길어졌습니다.이것은 드라이버가 한 번에 하나씩 초기화되기 때문입니다.Windows XP 및 Server 2003 에서는, 드라이버는 모두 비동기적으로 초기화됩니다.

세션 매니저

부트 드라이버와 시스템 드라이버가 모두 로드되면 커널(시스템 스레드)이 세션 매니저 서브시스템( )을 기동합니다.smss.exe).

파일을 열기 전에 smss.[16]exe에 의해 Autochk가 시작됩니다.Autochk는 모든 드라이브를 마운트하고 드라이브를 한 번에 하나씩 검사하여 완전히 마운트 해제되었는지 여부를 확인합니다.autochk에서 1개 이상의 볼륨이 더러웠다고 판단되면 chkdsk가 자동으로 실행되며 10초 이내에 키를 눌러 복구 프로세스를 중단하는 짧은 창이 나타납니다(Windows NT 4.0 Service Pack 4 이전 버전에서는 chkdsk를 중단할 수 없습니다).Windows 2000, XP, 2003 에서는 텍스트 화면이 표시되지 않기 때문에(파란 텍스트 화면을 표시했던 NT 3.1~4.0과는 달리), 화면 중앙에 미니 텍스트 화면을 들고 있는 다른 배경화면이 표시되고 chkdsk의 진행 상황이 표시됩니다.

부트 시 Session Manager 서브시스템:

  • 환경변수를 만듭니다(HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment)
  • Win32 서브시스템(win32k.sys)의 커널 모드측을 기동합니다.이것에 의해, 충분한 인프라스트럭처가 갖추어져 있기 때문에, Windows 는 그래픽 모드로 전환할 수 있습니다.
  • Win32 서브시스템의 사용자 모드 측, 클라이언트/서버 런타임 서버 서브시스템(csrss.exe이것에 의해, Win32 를 유저 모드애플리케이션에서 사용할 수 있게 됩니다.
  • 가상 메모리 페이징 파일 생성(HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management)
  • 임의의 이름 변경 조작을 실행합니다).HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations큐잉되어 있습니다.이것에 의해, 재기동시의 일부로서 이전에 사용중이던 파일(드라이버등)을 교환할 수 있습니다.
  • 에 나열된 프로그램을 실행합니다.HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute예를 들어 자동 검사 및 변환.
  • Windows Logon Manager 를 기동합니다(winlogon.exeWinlogon은 Windows 시스템(로컬 또는 리모트)에 대한 대화형 로그인을 처리합니다.Graphical Identification aNd Authentication(GINA) 라이브러리는 Winlogon 프로세스 내에 로드되어 로컬 또는 Windows 도메인 사용자로 로그인을 지원합니다.

Session Manager는 다음 위치에 설정을 저장합니다.HKLM\SYSTEM\CurrentControlSet\Control\Session Manager이러한 항목의 대부분은, 레지스트리의 설정에 근거하고 있습니다.

인증

Windows XP의 GINA 대화 상자

Winlogon은 Local Security Authority Subsystem Service(LSASS)와 Service Control Manager(SCM)를 기동합니다.이것에 의해, 자동 [17]개시로서 설정되어 있는 모든 Windows 서비스가 기동합니다.또한 Secure Attention Sequence(SAS; 보안 주의 시퀀스)에 응답하고 로그온 시 사용자 프로파일을 로드하며 스크린세이버가 실행 중일 때 선택적으로 컴퓨터를 잠급니다.

로그인 프로세스는 다음과 같습니다.[18][19]

  • Session Manager 서브시스템이 Winlogon을 시작합니다.
  • Winlogon이 Service Control Manager를 기동합니다(services.exe).
    • 자동 시작 서비스를 시작합니다.
    • 컨트롤 세트를 업데이트합니다.LastKnownGood 컨트롤 세트는 현재 컨트롤 세트를 반영하도록 업데이트됩니다.
  • (Windows XP) Winlogon이 UIHost를 시작합니다(logonui.exe전체 화면 그래픽 UI).
  • Winlogon이 GinaDll을 로드합니다(msgina.dll)
    • (임의) 로그인 프롬프트가 GINA에 의해 표시되며 사용자가 Secure Attention Sequence(SAS; 시큐어 어텐션 시퀀스)(Control-Alt-Delete)를 누릅니다.Winlogon은 시스템이 특정 계정(AutoAdminLogon)에 자동으로 로그인하도록 구성되어 있는지 확인합니다.
    • GINA에 의해 로그인 대화상자가 표시됨
    • 사용자가 자격 정보(사용자 이름, 비밀번호 및 도메인)를 입력합니다.
    • GINA가 Winlogon에 자격 정보를 반환하다
  • Winlogon이 자격 정보를 LSASS에 전달합니다.
  • LSASS는 LSA 데이터베이스(SYSTEM 하이브)에 캐시된 데이터를 사용하려고 합니다.
  • 존재하지 않는 경우 LSASS는 키에 나열된 보안 패키지를 사용하여 사용할 계정 프로토콜을 결정합니다.HKLM/SYSTEM/CurrentControlSet/Control/Lsa:
    • msv1_0.dll는 NT LAN Manager 프로토콜을 구현합니다.이 패키지는 하위 호환성을 위해 독립 실행형 시스템 및 도메인 구성원 시스템에서 사용됩니다.
    • Kerberos.dllActive Directory 를 사용한 리모트로그인을 제공합니다.
  • LSASS는 로컬보안 정책(사용자 권한 확인, 감사 추적 작성, 보안 토큰 배포 등)을 적용합니다.
  • 제어는 Winlogon으로 반환되어 사용자에게 제어를 전달할 준비를 합니다.
    • Windows Stations 작성(WinSta0[20]
    • 데스크톱 생성(Winlogon,Default그리고.ScreenSaver[21]
    • 그런 다음 Userinit 값으로 지정된 프로그램을 시작합니다.기본값은 다음과 같습니다.userinit.exe이 값은 여러 실행 파일을 지원합니다.

사용자가 로컬 호스트에 로그인하려고 하면HKLM/SAM키는 데이터베이스로 사용됩니다.사용자가 다른 호스트에 로그인하려고 하면 NetLogon 서비스를 사용하여 데이터를 전송합니다.

msv1_0.dll <-> netlogon <-> 리모트넷로그온 <-> 리모트 msv1_0.dll <-> 리모트 SAM

Windows XP 에서는, 유저가 시큐어 어텐션 시퀀스를 눌렀을 경우에만 GINA 가 표시됩니다.

Winlogon에서는 특정 이벤트를 로드하여 통지하는 플러그인이 지원되며 LSASS에서는 플러그인(보안 패키지)도 지원됩니다.일부 루트킷은 사용자가 로그인하기 전에 로드되기 때문에 Winlogon 플러그인을 번들합니다.일부 키에서는 합법적인 시스템 파일과 동시에 악의적인 프로그램을 실행할 수 있도록 여러 개의 쉼표로 구분된 값을 지정할 수 있습니다.SAM 데이터베이스에 credential을 저장하기 위해 사용되는 해싱 알고리즘은 취약하며 개인 사용자 하드웨어에서 신속하게 브루트 적용될 수 있습니다.

Windows [22]Vista 에서는, Winlogon 의 책임과 로그인 프로세스가 상기와 큰폭으로 변경되었습니다.

껍데기

Userinit은 사용자 credential을 사용하여 실행되는 첫 번째 프로그램입니다.사용자 셸 환경을 구성하는 다른 모든 프로그램을 시작해야 합니다.

셸 프로그램(일반적으로Explorer.exe)는 레지스트리 엔트리에서 시작됩니다.Shell=키의 같은 레지스트리 엔트리로 가리키다HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\system.ini\Boot; 기본값은 다음과 같습니다.SYS:Microsoft\Windows NT\CurrentVersion\Winlogon이 값은 다음과 같습니다.HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon를 클릭합니다.[23]

  • userinit은 사용자 프로파일을 로드합니다.사용자 프로파일에는 몇 가지 유형이 있으며 로컬 또는 원격일 수 있습니다.사용자 프로파일이 "로밍" 유형인 경우 이 프로세스가 매우 느려질 수 있습니다.
  • 사용자 및 컴퓨터 그룹 정책 설정이 적용됩니다.
    • 사용자 스크립트 실행
    • 머신 스크립트 실행
    • 달려.proquota.exe
  • 셸이 시작되기 전에 시작 프로그램을 실행합니다.
  • 레지스트리에 설정되어 있는 셸을 기동합니다.기본값은 입니다.explorer.exe.
  • userinit이 종료되고 셸 프로그램은 부모 프로세스 없이 계속 실행됩니다.

Userinit은 다음 [17]위치에서 스타트업 프로그램을 실행합니다.

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Load
  • HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run
  • HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • %ALLUSERSPROFILE%\Start Menu\Programs\Startup\(이 경로는 Vista 이전 버전의 Windows에서 현지화되어 있습니다.)
  • %USERPROFILE%\Start Menu\Programs\Startup\(이 경로는 Vista 이전 버전의 Windows에서 현지화되어 있습니다.)

리모트 기동 및 설치

정상적으로 기동하려면 , 클라이언트가 PXE 기동을 서포트해, 서버에 Windows Deployment Services(WDS) 컴포넌트가 인스톨 되어 있을 필요가 있습니다.기본적으로는 설치되지 않습니다.WDS는 Remote Installation Services(RIS; 리모트설치 서비스)의 후속입니다.

PXE 프로그램은 BIOS 또는 네트워크 카드의 ROM 칩에 있다.

PXE 부팅은 Windows 고유의 기술이 아니며 Linux 시스템을 시작하는 데도 사용할 수 있습니다.실제로 Linux 시스템은 DHCP 또는 TFTP를 처리하는 서버 역할을 할 수 있습니다.

PXE를 사용하여 윈도우즈 Setup을 시작하여 클라이언트 시스템에 시스템을 설치하거나 RAM에서 운영 체제를 실행할 수 있습니다.리모트 부트라고 불리는 후자는 Windows XP Embedded[24] SP1에 의해 도입되었으며 [25]이 버전의 Windows에서만 사용할 수 있습니다.

두 방법의 일반적인 프로세스는 다음과 같습니다.

  • PXE 부트
  • NBP 프로그램은 BINL 프로토콜을 통해 필요한 파일을 다운로드합니다.

Boot Information Negotiation Layer(BINL; 부트 정보 네고시에이션 레이어)는, PXE에 의해서 NBP가 이미 로드된 후에 클라이언트와 통신하는 서버상에서 실행되는 Windows 2000 서비스입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Bootable disc". CDBurnerXP. Retrieved March 2, 2014.
  2. ^ "How to start the Setup program from MS-DOS in Windows XP". Microsoft Support. Microsoft Corporation. Retrieved March 2, 2014.
  3. ^ "How to install Windows from the I386 folder". Microsoft Corporation. Archived from the original on March 2, 2014. Retrieved March 2, 2014.
  4. ^ "How to obtain Windows XP Setup disks for a floppy boot installation". Microsoft Corporation. Retrieved March 16, 2014.
  5. ^ "What is Windows PE?". Previous Versions Documentation. Microsoft Corporation. Retrieved July 22, 2018. Windows Preinstallation Environment (Windows PE) 2.0 is a minimal Win32 operating system with limited services, built on the Windows Vista kernel.
  6. ^ "What is Windows PE?". Previous Versions Documentation. Microsoft Corporation. Retrieved July 22, 2018. Windows® Preinstallation Environment (Windows PE) 3.0 is a minimal Win32® operating system with limited services, built on the Windows® 7 kernel.
  7. ^ Siyan, Karanjit (2000). Windows 2000 professional reference (3rd ed.). Indianapolis, Ind.: New Riders. pp. 1848. ISBN 0-7357-0952-1.
  8. ^ "Txtsetup.sif". Archived from the original on January 19, 2014. Retrieved March 16, 2014.
  9. ^ "Switches in TXTSETUP.SIF". Archived from the original on March 31, 2014. Retrieved March 16, 2014.
  10. ^ "How to force a Hardware Abstraction Layer during an upgrade or an installation of Windows XP". Microsoft Support. Microsoft Corporation. Retrieved March 31, 2014.
  11. ^ "Automating and Customizing Installations". TechNet. Microsoft Corporation. Retrieved March 31, 2014.
  12. ^ "In Windows Server 2003, you may not be able to start a computer from a GPT disk when the computer has an Itanium processor (Revision: 2.2)". Microsoft Support. Microsoft Corporation. Retrieved October 29, 2011.
  13. ^ "Unified Extended Firmware Interface support in Windows Vista (Revision: 1.5)". Microsoft Support. Microsoft Corporation. October 26, 2007. Retrieved October 30, 2011.
  14. ^ "Boot from VHD in Win7". TechNet Edge. Microsoft Corporation. February 20, 2009. Retrieved October 30, 2011.
  15. ^ "Windows, NT Object Manager". Channel 9. Microsoft Corporation. June 3, 2005. Retrieved October 24, 2011.
  16. ^ "Resource Kit". Microsoft Corporation. Archived from the original on March 11, 2007.
  17. ^ a b "Troubleshooting the Startup Process". Windows XP Resource Kit. Microsoft Technet. November 3, 2005. Retrieved October 24, 2011.
  18. ^ Ionescu, Mark Russinovich, David A. Solomon, Alex (2012). Windows internals (6th ed.). Redmond, Wash.: Microsoft Press. pp. 555, 77. ISBN 978-0735648739.
  19. ^ Ionescu, Mark Russinovich, David A. Solomon, Alex (2012). Windows internals (6th ed.). Redmond, Wash.: Microsoft. pp. 522–527. ISBN 978-0735665873.
  20. ^ "Window Stations". MSDN. Microsoft Corporation. Retrieved April 19, 2014.
  21. ^ "Desktops". MSDN. Microsoft Corporation. Retrieved April 19, 2014.
  22. ^ "Create Custom Login Experiences With Credential Providers For Windows Vista". MSDN Magazine. Microsoft Corporation. Retrieved April 13, 2014.
  23. ^ "Different Shells for Different Users". Microsoft Corporation. Retrieved March 16, 2014.
  24. ^ "Deploying Windows XP Embedded Remote Boot". MSDN. Microsoft Corporation. Retrieved April 18, 2014.
  25. ^ "Remote Boot Overview". MSDN. Microsoft Corporation. Retrieved April 19, 2014.
  26. ^ "Managing Network Boot Programs". TechNet. Microsoft Corporation. Retrieved April 18, 2014.

추가 정보

  1. Russinovich, Mark; Solomon, David A. (2005). "Startup and Shutdown". Microsoft Windows Internals (4th ed.). Microsoft Press. pp. 251–273. ISBN 0-7356-1917-4.
  2. Minasi, Mark; Enck, John (June 1998). "Troubleshooting NT Boot Failures". Administrator's Survival Guide: System Management and Security. Windows IT Library. ISBN 1-882419-88-X. Retrieved February 15, 2006.
  3. "Description of PXE Interaction Among PXE Client, DHCP, and RIS Server (Revision 2.4)". Microsoft Support. Microsoft Corporation. February 28, 2007. Retrieved October 24, 2011.
  4. "Definition of the RunOnce Keys in the Registry (revision 2.3)". Microsoft Support. Microsoft Corporation. January 19, 2007. Retrieved October 24, 2011.
  5. "Available switch options for the Windows XP and the Windows Server 2003 Boot.ini files (revision 6.3)". Microsoft Support. Microsoft Corporation. November 28, 2007. Retrieved October 24, 2011.

외부 링크