-
CentOS 6.10에서 MBR 복구하기보안 위협 관리 통제 2019. 5. 11. 19:10
위와 같은 주제를 이야기 하기 전 먼저 MBR이 무엇인지에 대하여 이야기 해보자.
1. MBR이 무엇인가 ?
MBR은 마스터 부트 레코드(영어: master boot record)로 파티션된 기억 장치의 첫 섹터 (섹터 0)인 512 바이트 시동 섹터라고 한다.
조금 더 자세히 이야기 해보자면 MBR은 총 512 바이트를 3가지 영역으로 나누어서 보면 처음 446 바이트는 부트 코드(boot code) 영역, 64 바이트는 파티션 테이블(partition table), 마지막 2 바이트는 시그니처(signature)로 나뉘며 운영체제가 부팅될 때 Power On Self-Test 과정을 가진 후 저장매체의 첫 번째 섹터를 호출하는데 이때 해당 부트 코드가 수행된다. 부트 코드의 주 역할은 파티션 테이블에서 부팅 가능한 파티션을 찾아 해당 파티션의 부트 섹터(boot sector)를 호출해주는 역할을 한다. 만약, 부팅 가능한 파티션이 없을 경우에는 미리 정의된 에러 메시지를 출력한다.
쉽게 말해서 MBR 안에는 부팅을 할 수 있게 도와주는 작은 프로그램이 들어있기 때문에 윈도우 or 리눅스에서 MBR을 삭제하면 부팅이 안된다는 것이다.
2. 실습 준비 MBR 삭제하기
MBR을 복구해 보기 위해서는 먼저 MBR 부분을 삭제 해봐야 한다.
그래서 혹시나 잘 못 될 수 있으니 vmware에 centOS 6.10을 설치해서 해보도록 하자~
먼저 두가지의 명령어를 사용할꺼다 dd와 hexdump이다.
dd는 파일을 변환하고 복사하는 것이 주 목적인 유닉스 및 유닉스 계열 운영 체제용 명령 줄 유틸리티이다.
hexdump를 이용하면 텍스트 또는 이진(binary) 파일의 내용을 16진수로 출력할 수 있다.
즉 dd로는 MBR을 날리고 hexdump는 dd를 실행시 어떻게 입력되는지를 확인할 것이다.
그래서 MBR을 날리려면 아래와 같이 명령어를 입력하면 된다.
dd if=/dev/sda of=mbr1.dd bs=446 count=1
dd if=/dev/zero of=/dev/sda bs=446 count=1
dd if=/dev/sda of=mbr2.dd bs=446 count=1
(dd if=대상파티션 밒 디스크 of=저장위치 파일명 즉, if에 있는 것을 of 쪽으로 bs 크기에 count 만큼 카피하는 것이다.)
또한 확인 용으로 추가적 명령어들도 실행시켰다.
hexdump mbr1.dd <--- 확인용
hexdump mbr2.dd <--- 확인용
위에 설명한 명령어를 실행한 화면이다. 이렇게 실행시킨 뒤에 reboot을 실행시키면 부팅이 되지않는 것을 아래와 같이 확인할 수 있다.
MBR 삭제 후 reboot 실행된 모습 3. MBR 복구하기
MBR을 복구하기 위해서는 rescue 모드를 사용 할 것이다. rescue 모드가 무엇인지 모를 수도 있으므로 설명하자면 리눅스-복구-모드로써 리눅스가 부팅이 안되거나 리눅스의 필수 구성요소를 삭제했을 때 복구 모드로 부팅해서 문제를 해결하는 모드이다.
그래서 rescue 모드의 실행을 위해서 설치 DVD를 넣은 뒤 메뉴에서 Rescue installed system을 선택한다.
가끔 vmware 사용시 vmware 설치 tool이 잡혀있으면 안나올수 있으므로 cancel 한뒤 재시작을 하면 된다.
cd를 넣고 재시작하면 이 화면이 나온다. 그 후 언어와 keyborad는 자신의 취향대로 선택한다. 화자는 언어는 korean을 Keyboard Type 은 us를 선택하고 Setup Networking yes를 선택 후 기존의 interface인 eth0을 선택했다. 이러면 네트워크를 설정하는데 좀 걸린다.
그 다음으로는 아래와 같이 rescue창이 나오면 일단 skip을 눌러준다.
rescue 창 그러면 다름과 같은 창이 나오고 이때 shell start shell을 선택 후 OK를 누르면 shell로 넘어간다.
그 후 아래와 같이 shell 이 나오면 다음과 같이 명령 어를 입력한다. (띄어쓰기도 똑같이 하세요)
# grub
grub> root (hd0,0)
grub> set (hd0)
grub> quit
#reboot
명령어 실행 그러면 아래와 같이 복구가 된 것을 확인할 수 있다.
복구 완료 *참고*
꼭 위에 방법이 아니어도 가능하다 그래서 아래에 다른 방법도 적어둔다.
설치 DVD를 넣는다.
메뉴에서 Rescue installed system 을 선택한다.
언어는 English 를 선택한다.
Keyboard Type 은 us를 선택한다.
Setup Networking No를 선택한다.
Rescue 에서 Continue를 선택한다.
Shell Start shell 을 선택한다.
쉘이 뜨면 아래 명령어를 실행한다.
# chroot /mnt/sysimages
# grub-install /dev/sda
'보안 위협 관리 통제' 카테고리의 다른 글
Domain 정보 수집 중 zone transfer를 통한 정보수집 (0) 2019.05.14 Domain 정보 수집 중 whois(site, nc, telnet 등)을 통한 정보수집 (0) 2019.05.14 정보 수집 (0) 2019.05.12 디렉터리 리스팅 막기 (0) 2019.05.12 CentOS에서 MBR 삭제하는 프로그래밍 하기 (0) 2019.05.12