2010년 4월 16일 금요일

리눅스서버 장애처리및 삭제파일 복구

리눅스서버 장애처리와 삭제파일 복구


- 다운된 리눅스서버 응급복구

    * 복구보다는 백업을 우선하라.

 

    * 파일시스템이 깨졌을 때 부팅안되는 상황 조치
         # fdisk -l    -> 깨진 파일시스템 확인
         # e2fsck -j ext3 /dev/sda3 -> 파일시스템 점검

 

    * 리눅스CD linux rescue 모드로 보구하기
         파일시스템이 깨졌을 때 : e2fsck로 파일시스템 복구
         비밀번호 및 로그인장애 : /etc/passwd 파일 점검
         grub정보로 부팅장애    : /boot/grub/grub.conf 파일 점검
         부팅시 마운트정보 장애 : /etc/fstab 점검

 

    * 리눅스CD linux rescue nomount 로 복구하기
         현재 상태에서는 장치파일명이 생성되어있지 않으며 마운트도 되어있지 않기 때문에 현재 시스템의 어떠한 수정작업도 할

         수 없는 상황이다.

 

         먼저 필요할 것 같은 장치명들을 임의대로 생성한다.
         # mknod /dev/sda -> /dev/sda  장치명 생성
         # mknod /dev/sda1 -> /dev/sda1 장치명 생성
         # mknod /dev/sda2 -> /dev/sda2 장치명 생성

         생성한 장치와 마운트할 마운트포인트(디렉토리)를 생성한다.
         # mkdir /temp
         # mkdir /temp1
         # mkdir /temp2

         위에서 생성한 각 장치명과 각 디렉토리들을 마운트한다.
          # mount /dev/sda1 /temp1
          # mount /dev/sda2 /temp2

 

    * 리눅스 시스템업그레이드 방법으로 복구하기

    * 시스템 서버 다운시 매직키를 이용한 응급조치
        - ALT + SysRq + S : Alt키와 SysRq키와 S키를 동시에 누른다. sync 작업
        - ALT + SysRq + E : Alt키와 SysRq키와 E키를 동시에 누른다. tem SIG 작업
        - ALT + SysRq + U : Alt키와 SysRq키와 U키를 동시에 누른다. umount 작업
        - ALT + SysRq + B : Alt키와 SysRq키와 B키를 동시에 누른다. reboot 작업

 

- 삭제된 파일 복구하기

 

  * 리눅스 휴지통(safedelete)을 이용한 삭제파일 복구하기
     safedelete라는 명령어는 파일을 삭제하는 명령어이다.
     단 rm과는 달리 safedelete라는 명령어로 파일을 삭제하면 특정한 디렉토리에 삭제된 파일을 보관하게 된다.
     그리고 삭제된 사용자의 홈디렉토리에 삭제 파일리스트를 저장하고 있는 로그파일에 그 파일정보들을 보관한다.
     그리고 safedelete명령어로 삭제된 파일은 undelete라는 명령어로 복구가 가능하다.
     따라서, 이 툴로서 삭제된 파일을 복구하려면 파일삭제시에 사용하는 명령어를 rm 대신에 safedelete 명령어를 사용해야한다.
     이 툴의 이름은 safedelete이며 삭제와 복구시에 사용되는 명령어는 다음과 같다.

    safedelete : rm 대신에 사용하게 될 파일보구가 가능한 삭제명령어
    undelete   : safedelete로 삭제한 파일을 복구하는 명령어
    safecnvt   : safedelete 로그파일(.safedelete.log)을 컨버전하는 명령어
    safedelchk : 지정한 일자 이후의 safedelete로 삭제한 파일을 완전 삭제함

- safedelete 설치
    # wget ftp://ftp.nuri.net/pub/RedHat/redhat/redhat-7.1-en/powertools/i386/RedHat/RPMS/saedelete-1.3-0.i386.rpm
    # rpm -Uvh saedelete-1.3-0.i386.rpm

 

- rm 명령어를 safedelete로 대체하기
   # grep safedelete ~/.bashrc
   alias rm='safedelete'

 

* tct의 unrm으로 삭제파일 복구하기
    - 설치
    http://www.fish.com/tct 에서 다운로드한다.
    # tar xvfpz tct-.09.tar.gz
    # cd tct-1.09
    # make
    # cd bin
    # cp rnrm /usr/local/bin
    # cp lazarus /usr/local/bin

 

- 삭제파일 복구
    # /usr/local/bin/unrm /dev/sda1 > /tmp_dir/dump_temp
    # /usr/local/bin/lazarus -h /tmp_dir/dump_temp

* e2fsck 파일시스템 점검복구유틸리티

   - e2fsck 종료코드
      0 - 에러없이 정상적인 종료를 의미함
      1 - 파일시스템을 복구하였음을 의미함
      2 - 파일시스템이 복구되어 시스템이 재부팅되어야함을 의미함.
      4 - 작업대상 파일시스템에 문제가 있으나 복구하지 않고 그대로 두었음을 의미함.
      8 - 실행에러를 의미함
      16 - 사용법 또는 문법에러를 의미함
      32 - e2fsck작업이 사용자에 의해서 취소되었음을 의미함.
      128 - 공유 라이브러리에러를 의미함

   - e2fsck작업에서 기본적으로 점검하는 항목
      inode 점검
      blocks 점검
      sizes 점검
      디렉토리구조 점검
      디렉토리 연결성점검
      파일링크 정보
      전체파일갯수 점검
      전체블록수중 사용중인 블록 정검
 

  - 사용형식
      e2fsck [-pacnyrdfvtFV] [-b 수퍼블록] [-B 블록크기] [-l|-L 배드블록목록화일] 장치명
      마운트되어 있는 상태에서 e2fsck실행을 자제한다.

  - e2fsck 명령어로 특정 파일시스템의 점검 및 복구하기
     # e2fsck /dev/hda1

  - e2fsck로 특정 파일시스템 강제 점검 및 복구하기
     # e2fsck -f /dev/hda1

  - ext3(저널링)파일시스템 점검 및 복구하기
    # e2fsck -j ext3 /dev/hda1
 

  - e2fsck로 특정 파일시스템 강제 점검 및 상세 작업내역보기
    # e2fsck -fv /dev/hda1
 

  - 파일시스템의 수퍼블록을 이용한 파일시스템 복구

       -b superblock
       Instead  of  using  the  normal  superblock,  use an alternative
       superblock specified by superblock.   This  option  is  normally
       used  when the primary superblock has been corrupted.  The loca-
       tion of the backup superblock is dependent on  the  filesystem's
       blocksize.    For  filesystems  with  1k  blocksizes,  a  backup
       superblock can be found at block 8193; for filesystems  with  2k
       blocksizes,  at  block  16384;  and  for 4k blocksizes, at block
       32768.

       Additional backup superblocks can be  determined  by  using  the
       mke2fs  program  using  the  -n  option  to  print out where the
       superblocks were created.   The -b option to mke2fs, which spec-
       ifies blocksize of the filesystem must be specified in order for
       the superblock locations that are printed out to be accurate.

       If an alternative superblock is specified and the filesystem  is
       not  opened  read-only,  e2fsck  will make sure that the primary
       superblock is  updated  appropriately  upon  completion  of  the
       filesystem check.

     # e2fsck -b 8193 /dev/hda1
     # e2fsck -b 16385 /dev/sda1
 

- e2fsck로 파일시스템 점검시 버퍼캐쉬의 내용을 디스크에 저장하기

    -F옵션을 사용하면 e2fsck를 수행하기 이전에 sync작업을 수행한다.
    # e2fsck -F /dev/sda1
 

  - e2fsck로 특정 파일시스템 점검시 오류 자동수정하기
    # e2fsck -p /dev/sda1
 

  - e2fsck로 파일시스템 점검시 모든 질문항목에 yes라고 자동입력하기
    # e2fsck -y /dev/sda1
 

  - e2fsck로 파일시스템 점검시 모든 질문항목에 no라고 자동입력하기
    # e2fsck -n /dev/sda1

댓글 없음:

댓글 쓰기