CentOS는 실수로 삭제 된 데이터를 복구 RF RM은

첫째, 디스크 파티션은 읽기 전용으로 마운트

이 단계는 매우 중요하며 가능한 한 빨리 후 실수로 삭제 한 파일을 읽기 전용 디스크를 장착해야합니다. 빨리 복구의 성공의 가능성이 큰.

 

파티션이 파일을 삭제 1.이 있습니다

[루트 @localhost   ~] # 마운트
/ 타입에서 ext4 (RW)는 / dev / 매퍼 / VolGroup-lv_root
는 / dev / 매퍼 / VolGroup-lv_home에 / 홈 타입에서 ext4 (RW)

해당 디렉토리가 읽기 전용으로 다시 마운트하려고합니다

[루트 @localhost   ~] #는 -r은 -n -o 다시 마운트 집 / 마운트
마운트 / 가정 중입니다

 

3. XXX 바쁜 디스플레이 인 경우

[루트 @localhost는   ~] # 퓨저 -v -m / 데이터

킬 (kill)을 관련 프로세스를 식별합니다.

 

4. 성공적으로 디렉토리는 읽기 전용으로 장착

[루트 @localhost   ~] # 마운트 -r -n -o 다시 마운트 / 집

때 파일을 터치 / 홈 디렉토리에있는이 시점에서 오류가 발생합니다 :

[루트 @localhost   ~] # 터치 TXT의
터치 : 건드릴 수 없어  ` TXT를 ': 읽기 전용 파일 시스템

 

둘째, 데이터 복구 도구 extundelete의 사용

시도 debugfs의 전에 + DD는 실패했습니다.

나중에 설치 extundelete-0.2.4, :

1. 다운로드

소스 포지 벽이기 때문에 다음과 같이 (1), 서버 wget을 성공하지 직접에, 그것은 로컬 링크에서 벽을 통해 다운로드 할 수 있습니다 :

      http://superb-dca2.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2 

(2) 서버에서 다운로드 한 파일

      로컬 Nginx에 시작, 다음 (5 월 물론,만큼 서버에 다른 방법으로) 서버에서 wget 용 :

wget과에 http : // 本 机 IP / extundelete-0.2.4.tar.bz2  

(3) 감압

타르 jxf extundelete - 0. 2. 4 .tar.bz2

 

2. 컴파일

(1) 구성

[루트 @localhost   extundelete-0.2.4] # ./configure를

오류가 발생하면 구성은 config.log에서보고, 기본 빌드 환경을 결정하지 않았다.

냠 GCC는 + GCC-C 설치 -y ++

느린 조금 기다립니다.

설치가 완료되면, 다시 설정, 여전히 오류

extundelete 0.2.4 구성
오류 : 구성은의 ext2fs 라이브러리를 찾을 수 없습니다

이 extundelete 의존하는 e2fsprogs 때문이다.

설치 후하는 e2fsprogs를 성공적으로 다시 구성합니다.

[루트 @localhost   extundelete-0.2.4은] # yum을하는 e2fsprogs-(STABLE) 설치
[루트 @localhost를   extundelete-0.2.4] # ./configure를
구성 extundelete 0.2.4
디스크에 생성 된 파일을 작성

 

(2) 화장 및 메이크업 설치

[루트 @localhost는   extundelete-0.2.4] #make 및 수 있도록 설치

 예외 정보가 없으면, 기본 설치는 성공적입니다.

 

(3)  받는 갈 수 의 src 디렉토리 인증 .

[루트 @localhost의   extundelete-0.2.4] #에서 cd SRC
[루트 @localhost   SRC] #은 ./extundelete 없습니다
지정된 조치를; --superblock을 암시.
./extundelete : 장치 이름이 없습니다.
사용법 : ./extundelete [옵션] [-] 장치 파일
.............

 

[루트 @localhost의   SRC] # ./extundelete -v

extundelete 버전 0.2.4

버전 1.41.12 libext2fs

프로세서는 리틀 엔디안이다.

정보와 설치가 성공적으로 증명한다.

다음과 같은 데이터 복구는 정말 시작했다.

 

셋째, 새 하드 디스크를 마운트

(원래 서버의 디스크 공간이 충분히 큰 경우,이 단계를 건너 뛸 수 있습니다.)

큰 실수로 삭제 된 데이터의 (200G에 대한)는, 서버 원래 컴퓨터에 물리적 디스크 공간이 없기 때문입니다. 다른 서버 B에서 원격 디스크를 마운트 할 몇 가지 필요가, B는 젠 가상 머신이기 때문에, 공간이 충분하지 않습니다뿐만 아니라 실제 컴퓨터의 디스크 공간, 시간은 공간 B로 호스트 파티션에서 필요한

도 1은 젠 B의 디스크 마운트

그래픽 작업 때문에, 정교하지 않습니다. 그냥 충분한 공간을 할당, 내가 선택되었다 300G입니다.

2 로그온 새 디스크를 장착 할 준비가 서버 B,.

(1)  새로운 디스크가 장착되어 있는지

[nmen DEV  우분투 serverSelecting A]  은 ls  / 디바이스 / SD *
/ 디바이스 / SDA /은 / dev / sda1 DEV / sda2와 / 디바이스 / sda5입니다 / 디바이스 / sda6 / 디바이스 / sda7 / 디바이스 / sda8 / 디바이스 / SDB

는 / dev / SDB 정말 장착.

이 때, 새로운 디스크가 포맷되지 않은, 분할, 따라서 두 가지를 할 필요가 없습니다.

 

(2)   칸막이

그림은 하드 디스크 HDB, SDB 같은 디스크 작업입니다.

 

(3)   형식

[nmen @dev  -ubuntu 서버] : ~ $ sudo를에서 mkfs -t ext3로는 / dev / sdb1로
mke2fs를 1.41.11 (14 월 - 2010)
파일 시스템 레이블 =
OS 유형 : 리눅스
블록 크기 = 4096 (로그 = 2)
조각의 크기 = 4096 (로그 = 2)
스트라이드가 0 블록 스트라이프 폭 = 0 블록
22,937,600 inode를 91,749,215 블록
예약 4,587,460 블록 (5.00 %)  에 대한  수퍼 사용자
우선 데이터 블록 = 0
최대 파일 시스템 블럭 = 4294967296 개
2,800 블록 그룹
그룹당 32768 개 블록 그룹 당 32,768 단편
그룹 당 8192 개의 inode
블록에 저장된 백업 수퍼 :
    32,768, 98,304, 163,840, 229,376, 294,912, 819,200, 884,736, 1,605,632, 2,654,208,
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968
 
쓰기 아이 노드 테이블 :  수행                           
만들기 저널 (32768 개 블록) :  완료
쓰기 수퍼 블록 및 파일 시스템 회계 정보 :  수행
 
자동으로 될 것입니다이 파일 시스템은 모든 33 마운트 또는 확인
중 먼저, 180 일 . 사용은 무시하려면 -c 또는 -i tune2fs.

성공적으로 포맷 된 것을 나타내는 위의 정보를 제공합니다.

 

(4)   볼륨 레이블

sudo는 e2label는 / dev / sdb1로 / 복원

 

(5)  

[nmen @dev  -ubuntu 서버] : ~ $에서 mkdir / 복원
[nmen @dev   - 우분투 - 서버] : ~ $는 -t ext3로 -vl는 / dev / sdb1로 / 복원 마운트

이 시점에서 지금, 서버 측의 B에 새 하드 디스크를 않는 마운트 복원 할 데이터를 저장하기에 충분한 공간이있다.

 

넷째, 원격 NFS를 통해 마운트

네트워크, 원격 호스트 B의 공유 파일 시스템을 통해, 데이터 복구 시스템 A. 할 필요 마운트

1. 설치 NFS 서버 B

(1)  설치

B 우분투 시스템이 아닌 기본 설치 NFS이다.

# sudo는 apt-get을 설치 NFS를 커널 서버

 

(2)  구성

수정이의 / etc / 수출은 다음 문을 추가합니다.


#은 / etc / 수출 : 수출 할 가능성이있는 파일 시스템에 대한 액세스 제어 목록
NFS 클라이언트에 #을. 참조 수출 (5).
#
# 예과 NFSv2 및 NFSv3에 대한 :
# / SRV / 주택 hostname1 (RW, 동기화 no_subtree_check 명령) hostname2 (RO, 동기화 no_subtree_check 명령)
#에
NFSv4에 대한 # 예 :
# / SRV / NFS4 GSS / krb5i (RW, 동기화 FSID = 0 crossmnt, no_subtree_check 명령)
# / SRV / NFS4 / 가정 GSS / krb5i (RW, 동기화 no_subtree_check 명령)
#
/ * 복원 (RW, 동기화, 만일 no_root_squash, no_subtree_check 명령)

장소 :

  / 복원                                                                   - 클라이언트 디렉토리와 공유 할 필요가;

    *                                                                             - 모든 호스트가, 당신은 또한 지정할 수 있습니다 IP 카탈로그에 액세스 할 수 있습니다 나타냅니다

  (w, 동기화, no_root_squash 옵션, no_subtree_check 명령)       - 클라이언트 권한을 구성;

임시 사용 등 비교적 자유롭게 배치, 네트워크 서버 안에 위치한다.

 

(3)  구성을 검증 할

# exportfs 명령 -rv

# /etc/init.d/nfs-kernel-server 다시 시작

 

(4)  구성이 성공적인지 확인

목록 NFS 서버 출력 디렉토리를 표시합니다 :

nmen @dev  -ubuntu 서버 : -e showmount
수출 목록  에 대한  chinahrd - 우분투-DEV :
/ 복원 *

 

(5)  방화벽

때문에, 만일의 시간과, 네트워크 내에 B에 방화벽을 임시 폐쇄 너무 :

sudo는 UFW 비활성화

다음 명령을 사용하여 방화벽을 사용하려면 :

UFW 활성화 SUDO

2. 마운트 서버 A의 원격 디렉토리

은 / 복원 디렉토리는 / MNT로 서버 B에서 마운트됩니다.

-t NFS [B 的 IP]을 마운트 / 복원 / MNT

다음과 같이 명령을 상세 :

-t NFS # 마운트 [-o 마운트 옵션] 서버 : / 디렉토리 / 마운트 포인트
 
-o 마운트 옵션이
     옵션은 NFS 파일 시스템을 마운트하는 데 사용할 수있는 마운트 지정합니다.
서버 : / 디렉토리는
     공유 리소스를 포함하는 서버 및 마운트 할 파일이나 디렉토리에 대한 경로의 호스트 이름을 지정합니다.
/ 포인트 마운트
     파일 시스템의 디렉토리 마운트를 지정합니다.

 

다섯째, 데이터 복구

1. 대략적인 시간이 삭제하세요

이 단계가 필요하지 않다, 그러나이 기여 빠르게 원하는 데이터를 반환한다.

날짜는  "금 4월 15시 40분 0초 2014"+ %의 -d
1397202000을

1397202000이 시간 값, 우리는 후자를 사용합니다.

2. 검토 삭제 된 파일

# extundelete는 / dev / sdb1로 --inode 2

파일 이름 | inode 번호 | 삭제 된 상태

. 9

.. (11)

손실 + 24 삭제 발견

데이터 삭제 (82)

파티션이 디렉토리에 설치 될 때, inode는 "루트"디렉토리는 일반적으로 2입니다.

삭제 된 상태 파일이 삭제됩니다.

3. 데이터 복구

그냥 원격 디렉토리에 마운트 / 복원;

"1397202000"--after 지정, 나타냅니다이 시점 이후의 파일 복구;

기본 파일은 현재 디렉토리 아래 RECOVERED_FILES 디렉토리로 복원됩니다.

CD는 / 복원
[루트 @localhost   복원] # ./ extundelete --restore-모든 --after "[extundelete의 설치 경로] 1397202000"는 / dev / 매퍼 / VolGroup-lv_home을

만 표시하고 그들이 또는 1,397,202,000 후 9223372036854775807 전에 삭제하는 경우 프로세스가 항목을 삭제.

주의 사항 : 확장 된 속성은 복원되지 않습니다.

로드 파일 시스템 메타 데이터 ... 6924 개 그룹은로드.

로드 저널 기술자 ...로드 27,149 설명.

디렉토리에 복구 아이 노드 검색 / ...

696 복구 아이 노드가 발견했다.

삭제 된 파일의 디렉토리 구조를 통해 찾고 ...

27394319 (VM웨어 / 9.50_ps / 9.55locate.vmx.lck) 아이 노드 복원 할 수 없습니다 : 공간 재 할당되었습니다.

27402241 (VM웨어 / 9.35win7 / 9.35win7.vmx.lck) 아이 노드 복원 할 수 없습니다 : 공간 재 할당되었습니다.

아이 노드 27396032 복원 할 수 없습니다 (VM웨어 / 9.35win7 / 9.35win7-Snapshot1.vmsn) : 아니오 사본이 저널에서 발견 삭제되지.

공간 재 할당되었습니다 27394051 (VM웨어 / 9.36win2008 / 9.36win2008R2.vmx.lck / E00633.lck) 아이 노드 복원 할 수 없습니다.

27394603 아이 노드 복원 할 수 없습니다 (손실 +는 E09292.lck / 발견) : 공간 재 할당되었습니다.

8 복구 아이 노드는 여전히 잃었다.

 

일반적으로, 나는 오랜 시간을 기다려야합니다. . .

CD / 복원 RECOVERED_FILES $
LS
110_open_dns 111_open_dns_node1 112_DNS_node2 116_svn

삭제 된 파일은 구제를 가져 오는 백업합니다.

여섯, 작업 마무리

(1)  다시 마운트 디스크 쓸 :

[루트 @localhost   SRC] # -o 다시 마운트, RW / 홈 마운트 /

서버 B의 제거 디렉토리

 

(2)  오픈 B의 방화벽.

UFW 활성화 SUDO

 

(3)  에서 RM은 별칭을 활성화하고, 자동 유형은 삭제하지 마십시오.

VI의 / etc / bashrc에

소스의 / etc / bashrc에

 

# 삭제하지 마십시오 / 또는 프롬프트 한 번에 3 개 이상의 파일을 삭제하는 경우 #
별칭  RM은 = 'RM -I --preserve-루트'  
 
# 확인 #
별칭  MV = 'MV -i'
별명  은 cp = 'CP -i'별명 LN = '에선 -i'  
 
# 육아에 파마를 변경 / #
별명 대한 Chown = '대한 Chown --preserve-루트'
별명 chmod를 = 'chmod를 --preserve-루트'
별명을 chgrp = '을 chgrp --preserve 루트'

(4)  에서 B 은 USING Rsync를 , 정기적으로 백업 데이터.

 

참고 블로그 : https://www.cnblogs.com/zhangyin6985/p/6008741.html

추천

출처www.cnblogs.com/ashjo009/p/12199087.html