태그 보관물: windows

32비트 윈도(Vista/7/8/8.1) 에서 4G 이상 메모리 사용하기

아래 글은 최근 윈도우 업데이트로 인해서 에러가 발생합니다.
아래에서 사용하는 툴의 업데이트를 확인해서 반영되는 대로 이 메세지는 삭제하겠습니다.

—————-

32bit 윈도를 사용하는 기기에 4G 이상의 메모리를 사용하고 있다면 보통은 3G 정도를 사용할 수 있다고 나올 것이다. 많은 기기에 32bit CPU가 장착되어 있지만, 4G 이상의 메모리가 장착된 기기를 쉽게 볼 수 있다. 그래서 PAE 패치는 32bit 기반의 기기에서 메모리를 최대한 활용하기 위해서 꼭 필요한 것이다.

wj32.org 라는 블로그를 운영하시는 분이 윈도 Vista/7/8/8.1에서 PAE를 적용할 수 있도록 툴을 제공하고 있다. 윈도 8.1까지 적용할 수 있는 툴은 http://wj32.org/wp/2013/10/25/pae-patch-updated-for-windows-8-1/ 에서 다운받을 수 있다.

위에서 다운받은 툴의 readme.txt 파일의 순서대로 패치를 하면 다음과 같다.
아래 순서는 C 드라이브에 윈도 8.1이 설치된 필자의 랩톱에서 사용한 예제이다.

# 패치하기
1. 다운받은 툴의 PatchPae2.exe를 Windows/System32 폴더에 복사를 한다.
2. cmd를 관리자 권한으로 실행한다.
3. 128 GB 까지 메모리를 인식할 수 있도록 커널을 패치한다.
3.1 윈도 8/8.1 : c:\Windows\System32>PatchPae2.exe -type kernel -o ntoskrnx.exe ntoskrnl.exe
3.2 윈도 Vista/7 : c:\Windows\System32>PatchPae2.exe -type kernel -o ntkrnlpx.exe ntkrnlpa.exe
4. c:\Windows\System32>PatchPae2.exe -type loader -o winloadp.exe winload.exe
– 로더의 사인 검증 로직을 제거한다.
5. bcdedit /copy {current} /d “Windows (PAE Patched)”
– 부트 항목을 추가한다.
– 이 명령을 실행하면, {8bfc9ccb-7075-11e4-8f2b-9980ef68eed0}와 같은 UUID를 확인할 수 있다.
6. 패치된 커널의 추가한 부트 항목으로 로딩하기 위해서 아래의 명령을 실행한다.
6.1 윈도 8/8.1 : c:\Windows\System32>bcdedit /set {8bfc9ccb-7075-11e4-8f2b-9980ef68eed0} kernel ntoskrnx.exe
6.2 윈도 Vista/7 : c:\Windows\System32>bcdedit /set {8bfc9ccb-7075-11e4-8f2b-9980ef68eed0} kernel ntkrnlpx.exe
7. c:\Windows\System32>bcdedit /set {8bfc9ccb-7075-11e4-8f2b-9980ef68eed0} path \Windows\system32\winloadp.exe
– 패치된 로더로 변경한다.
8. c:\Windows\System32>bcdedit /set {8bfc9ccb-7075-11e4-8f2b-9980ef68eed0} nointegritychecks 1
– 로더 검증 로직을 제거한다.
9. c:\Windows\System32>bcdedit /set {bootmgr} default {8bfc9ccb-7075-11e4-8f2b-9980ef68eed0}
– 추가한 부트 항목을 디폴트로 잡아준다.
10. c:\Windows\System32>bcdedit /set {bootmgr} timeout 2
– 부트 로더가 항목을 보여주는 시간을 설정한다. 범위는 0-999 까지고 위에서는 2초로 설정하고 있다.
11. 컴퓨터를 재시작한다.
– 아래의 화면으로 32bit 윈도 8.1이 4G의 메모리를 인식하는 것을 알 수 있다.

# 삭제하기
1. PAE 패치하지 않은 윈도로 부팅을 한다.
2. msconfig 툴을 실행해서 boot 메뉴에서 “Windows (PAE Patched)” 항목을 삭제한다.
3. Windows/System32 폴더에서 커널(ntoskrnx.exe 또는 ntkrnlpx.exe) 하고 winloadp.exe를 삭제한다.

# 업데이트시
– 윈도 커널의 업데이트시에는 위의 3.번 이후의 과정을 통해서 PAE 패치를 한다.

이 과정으로 32bit 버전의 기기에서 4G가 넘는 메모리를 윈도에서 인식해서 사용할 수 있겠다.

Restart IIS from remote computer

Windows의 IIS에 배포를 위해서 xcopy 같은 명령어를 많이 사용하는데, 그런경우 copy가 되는 도중에 IIS가 읽어버리면 계속 cache miss 어쩌구 저쩌구 에러로그가 계속 쌓입니다. 그런 경우 해결책이 웹서버 리스타트 인데요..  iisreset 으로 리스타트를 합니다.  여러대의 서버에 배포를 하고 iis reset을 하기 위해서는 아래는 참고하시면 좋은 팁이 될듯 합니다.^^

파일 카피

restart iis from remote computer

iisreset.exe
\\computer_name

or
sc.exe \\computer_name stop w3svc
sc.exe
\\computer_name start w3svc

탐색기에서 CMD를 실행시키기…

대충 아래의 코드가 필요하다..

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\Cmd.Open]
@=”Command Prompt Here”<– 마우스 오른쪽 클릭시 나타나는 메뉴이름// 편한데로 바꿔사용하시면 됨

[HKEY_CLASSES_ROOT\Directory\shell\Cmd.Open\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25, 00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6d,00, 64,00,2e,00,65,00,78,00,65,00,20,00,2f,00,6b,00,20,00,74,00,69,00,74,00,6c, 00,65,00,20,00,85,ba,39,b8,20,00,04,d5,6c,b8,04,d5,b8,d2,20,00,26,00,26,00, 20,00,76,00,65,00,72,00,20,0command here.reg 0,26,00,26,00,20,00,63,00,64,00,20,00,22,00,25, 00,31,00,22,00,00,00

귀찮으시면 파일 받아서 실행만 시켜주셈..
ek200000000000.reg