사실 이 포스팅을 하게 된 계기는 오늘 새벽 내 하드디스크 한 장이 보드가 나가버리는 일이 발생했습니다.
그런데 예전에
하드디스크에서 윈도우 설치, 2012/11/07 - [Windows/VHD] - VHD를 사용하는데 복구시 마다 명령어 입력이 귀찮을때
등 실험하느라 부트로더를 HDD로 옮기고 SSD는 여러번 포멧을 거치며 기존 부트로더는 삭제되었는데, 하필 보드가 나간 하드가 부트로더가 들어있는 하드였...네요..
운명하신.... 시게이트 바라쿠다 2테라..
내 포트폴리오가 들은 하드인데.. 그건 업체 맡기면 된다지만 당장 부팅을 해야 과제도 외주도 작업할 거 아닌가...??
문제는 USB가 없었습니다.
평소에 시놀로지 만만세를 외치고 HDD에 윈도우 이미지 올려놓아서 usb의 필요성을 느끼지 못했던 것에 대해 후회가 밀려오지만 뭐... 이제와서 땅 파면 안나오잖아요..?
이 때 예전에 Windows Server 2012 R2 운용 당시 윈도우 배포 서버를 만졌던 기억이 나서 일반 데스크톱도 PXE 서버 구성이 되지 않을까 하고 찾아봤습니다.
마침 저는 같은 네트워크 안에 다른 pc가 무려 두 대! 나 있기 때문에 네트워크로 윈도우 복구를 해봤습니다.
TFTPd32 / 64(바이러스 사이트라 나오나 문제 없습니다.)
Tiny PXE Server ( 추천)
사실 저는 둘 다 실험해봤고 아랫것이 더 좋다고 판단하여 추천 드렸습니다.
TFTPd32는 부트 이미지들을 커널레벨부터 손수 찾아서 넣어주고 설정해야하는 반면에 Tiny PXE Server(이하 tps)는 커널 파일들이 패키지로 종류별로 전부 들어있습니다.
또 부팅시에 사용한 이미지가 있는데 윈도우 10 은 어째서인지 WinPe로 100% 복구가 불가능하거나, WinRe iso 파일이 없습니다.
대부분의 포스팅을 보면 WinRe를 직접 USB에 굽는 방법만 나와있을 뿐 그 iso 파일은 없었습니다.
그런데 Kyhi 라는 유저가 Windows 10 용 Recovery Tool Image 파일을 제공해주셨습니다. 박수 짝
Windows 10 Recovery Tools - Bootable Rescue Disk
자세한 파일 구성은 위 링크를 통해서 확인하시고 저는 바로 설명하겠습니다.
먼저 주의 사항은 두 프로그램 모두 iso 파일이 3기가 정도를 넘어가면 안됩니다.
TFTPd의 경우는 아예 파일을 보내주지 않고, tps는 일정 용량(3기가 추정)이 넘어가면 메모리 에러가 발생합니다.
제 생각엔 둘 다 iso를 위해서는 memtest를 커널로 사용하는데, 이 커널이 읽을 수 있는 최대 메모리가 3.x 기가로 제한되는 것같습니다.
바로 32비트 윈도우의 메모리 제한량과 같죠..
그래서 윈도우를 새로 설치하거나 복구할 때 윈도우 이미지를 직접 불러올 수가 없었습니다.
방법은 두 가지 있는데,
1. PXE 서버에서 네트워크 공유(SMB)를 통해 파일을 당겨오는 방법.
2. 우선 부팅 후 브라우저를 통해 새로 내려받아 설치하는 법.
애초에 1번의 경우 PXE 자체가 같은 서브넷 안에서 동작하기 때문에 (ip 할당 및 PXE 요청을 브로드캐스트로 요청함) 언제나 가능한 기능이고, 2번의 경우는 pxe 서버로 쓰는 컴퓨터에 비밀번호가 없거나 걸기 싫은 경우, SMB가 차단된 경우 사용할 수 있는 방법입니다.
1번은 그저 아무 iso 마운트 프로그램이나 (윈10은 기본 내장) 가져다가 iso를 시디롬으로 마운트하고, 그 시디롬을 통째로 공유하면 됩니다.
2번은 뭐 알아서.. 내려받으시면...
TFTPd 설정
압축을 풀면 아래와 같이 파일이 있습니다.
여기서 각 값을 아래와 같이 수정합니다.
IP Pool start address : 본인 dhcp 대역 내에서 알아서.. 대게 iptime은 192.168.0.2 zio나 신형 kt허브는 172.30.1.1, 구형 kt허브나 기타 브랜드는 10.0.0.2로 입력하면 됩니다.
Size of pool : 10보다만 크게 해주세요.
Boot File : pxelinux.0 (추후 설명)
Def. router : 공유기
Mask : 본인 아이피 시작 192.168 -> 255.255.255.0, 172.30 -> 255.255.255.0 또는 255.255.0.0, 10.0 -> 255.255.255.0 인데 가끔 진짜 이상하게 이것을 255.0.0.0 하는 공유기가 있음.. 공유기가...
그리고 TFTP 탭에서 PXE Compatibility 체크하시면 됩니다.
체크하는 이유는 일부 iso 부팅이 이 옵션 없이는 부팅이 안됩니다.
pxelinux.0은 Kernel.org 의 syslinux에 있습니다.
4.04 버전이나 3.86버전을 내려받아 압축을 풀고(제가 테스트해본건 저 두버전)
3.86기준
core -> pxelinux.0
com32 -> menu -> menu.c32
그리고 pxelinux.cfg 폴더를 만들고 그 아래에 Default 파일을 만들고 아래 내용과 같이 본인 파일에 맞춰 적습니다.
DEFAULT menu.c32
PROMPT 0
ALLOWOPTIONS 0
TIMEOUT 100
MENU TITLE PXE Boot Menu
LABEL local
MENU LABEL Local Boot
MENU DEFAULT
localboot -1
LABEL winpe_iso1
MENU LABEL WinPE (Memdisk)
KERNEL memdisk
append iso raw initrd=iso/winpe10.iso
TPS 설정
tps는.. 애초에 다 준비가 되어 있습니다.
여러분들이 해야 할 것은 뭐다..? iso 구해넣고 메뉴 추가하고 설정하고 끝..
좀전에 tftpd에서 본 모양이죠? 척척 넣습니다.
Boot File의 Filename은 설치 폴더 아래에 files 안에 있으니 찾아보시면 됩니다.
다른 커널을 쓰더라도 이 폴더를 잘 보시면 이미 다 들어 있습니다.. 네..
이제 files/iso에 파일을 넣습니다.
iso는 WinPe, Re, 뭐 기타 3기가 정도만 안넘으면 다 가능합니다.
다 넣으셨으면 files/pxelinux.cfg/default 열고 아래와 같이 수정합니다. 위에거와 방법이 같죠? 같은 커널이니까요..
LABEL winpe_iso1
MENU LABEL WinPE (Memdisk)
KERNEL memdisk
append iso raw initrd=iso/winpe10.iso
다 하셨으면 위에 online을 한번 offline으로 껐다 다시 켜주시구요.
이제 메인보드에서 PXE 설정만 하면 됩니다.
PXE 설정은 다음 글에서 다루겠습니다.
별다른 내용은 없고 메인보드에서 PXE 를 찾아 on 시키고 부팅 순서에 넣어주시면 서버에서 찾아서 알아서 부팅합니다.
'Windows > Windows' 카테고리의 다른 글
삭제되지 않는 프로그램 강제 삭제 방법 (0) | 2018.08.21 |
---|---|
Visual C++ 재배포패키지 설치 시 command line option syntax error (0) | 2016.08.03 |
윈도우10) 환경 변수 편집 창이 바뀌었습니다. (0) | 2016.04.10 |
프로그램이나 경로 작성 시 참고하면 좋은 윈도우 환경 변수 (0) | 2014.05.09 |
메인보드 모델명을 알고 싶을 때 (0) | 2014.02.21 |