6. 2단계 복구(Second Stage Restoration)

컴퓨터가 다시 부팅하면, BIOS로 들어가서 시간이 어느 정도 정확한지 확인한다.

시간이 정확한지 확인하면, BIOS를 나가서 하드 드라이브로 부팅을 진행시킨다. 보통의 부팅 순서대로 하면 그렇게 된다. 이러면 여러분은 엄청나게 많은 오류 메시지를 만나게 될 것이다. 내용은 "~~~와 같은 것을 찾을 수 없습니다." 같을 것이다. 만약 여러분이 지금까지의 작업을 정확히 했다면, 오류 메시지는 중요하지 않다. 여러분은 할일을 하기 위해서 linuxconf나 apache가 필요하지 않다.

주의: 대안으로, 단독 사용자 모드로 부팅할 수 있다.(lilo의 프롬프트에서 linux single이라고 입력하라.) 그러나 여러분은 네트워크를 수동으로 설정해야 하고 sshd와 시스템 복구를 위해 필요한 daemon을 수동으로 가동시켜야 할 것이다. 이런 것을 어떻게 하는가 하는 것은 시스템에 따라서 매우 다르다.

여러분은 루트 콘솔로 로그인할 수 있어야 하며(X window 없이도, 다른 사용자 없이도), 네트워크, 예를 들어 여러분 시스템의 백업을 nfs로 마운트 할 수 있어야 한다.

만약 여러분이 내가 제안한 대로 Arkeia를 이용해서 두단계 백업을 했다면, 여러분은 Arkeia의 데이터베이스와 실행가능한 파일들(executables) 을 이용해서 복구를 할 수 있을 것이다. 또한

/etc/rc.d/init.d/arkeia start

를 실행시키고 서버를 시작할 수 있어야 한다. X를 이용해서 GUI가 설치된 다른 컴퓨터로 접속할 수 있다면, 여러분은 테이프 서버에 있는 Arkeia에 로그인 할 수 있고 복구를 준비할 수 있을 것이다.

주의: 여러분이 복구할 때, 복구 프로그램의 문서를 주의깊게 읽어야 한다. 예를 들어, tar는 어떤 특성(suid bit를 가지는 등의)의 파일은 보통 복구하지 않는다. 파일 허가권은 사용자의 umask에 의해서 설정된다. 여러분이 저장한 그대로 복구하길 원한다면, tar의 p 옵션을 사용하라. 복구 소프트웨어가 여러분이 저장한 대로 모든 것을 정확히 복구했는지 확인하라.

시험 컴퓨터를 복구하기 위해서는 아래와 같이 입력하라.

bash# restore.all

만약 여러분이 백업과 복구에 tar를 사용했다면, -k 옵션(오래된 파일을 보존하고 덮어쓰지 말 것)을 사용하라. 그러면, 아래와 같은 것들을 많이 보게 될 것이다.

tar: usr/sbin/rpcinfo: Could not create file: File exists
tar: usr/sbin/zdump: Could not create file: File exists
tar: usr/sbin/zic: Could not create file: File exists
tar: usr/sbin/ab: Could not create file: File exists

tar가 일단계의 복구 동안에 복구한 파일을 덮어 쓸 것을 거부하고 있으므로, 이런 것들은 정상적인 현상이다.

이후, 다시 부팅하라. 종료하는 동안, "그런 pid가 없습니다."와 같은 많은 오류 메시지를 보게 될 것이다. 이것도 정상적인 과정의 하나이다. 종료 코드는 지난번 부팅 때는 사용하지 않았던, 백업이 만들어 졌을 때 사용된 daemon으로부터 pid를 사용한다. 당연히 그런 pid는 없다.

이제 여러분의 시스템은 이전보다는 작지만 여전히 많은 오류 메시지를 가진 채로 부팅되고 실행되어야 한다. RPM에 기반한 시스템에서 여러분의 복구 작업이 얼마나 잘 되었는지 엄격히 시험하려면 모든 패키지를 확인해야 한다.

bash# rpm -Va

설정파일이나 로그파일 같은 것들은 정상적인 과정을 거쳐서 바뀌게 될 것이니, 여러분이 그런 것은 적당히 걸러서 이해할 수 있어야 한다. 출력을 파일로 돌려서 만들 수도 있고, 백업 때 만들어진 것과 현재 것을 diff로 비교할 수도 있다 (/etc/rpm.Va.txt). 그래서 이 과정을 상당히 빨리 처리할 수 있다. Emacs 사용자는 emacs에 포함된 diff 기능을 이용하라.

이제 응용 프로그램, 특히 daemon으로서 실행되는 것들을 시험해 볼 때다. 응용프로그램이 복잡하면 할 수록, 더 많은 시험이 필요할 것이다. 만약 원격 사용자가 있다면, 시험하고 있는 중에는 그들이 시스템을 못 사용하게 막거나 "읽기 전용"으로만 사용하게 하라. 이것은 데이터베이스의 경우에는 아주 중요한데, 자료의 상실이나 망가짐을 막기 위해서이다.

만약 보통 X로 부팅하고 위에 한 대로 X를 사용하지 못하게 했다면, 다시 사용 가능한 상태로 하기 전에 X를 먼저 시험해 보라. X를 다시 사용하는 것은 /etc/inittab에 있는 다음과 같은 줄을 찾아서 아래와 같이 하면 된다.

id:5:initdefault:

이제 신나게 즐길 준비가 되었을 것이다.----아니면 아스피린과 소파가 필요할 지도.(성공하거나 실패하거나에 대한 비유인 것 같네요...^^)