첫째, 디스크 파티션은 읽기 전용으로 마운트
이 단계는 매우 중요하며 가능한 한 빨리 후 실수로 삭제 한 파일을 읽기 전용 디스크를 장착해야합니다. 빨리 복구의 성공의 가능성이 큰.
파티션이 파일을 삭제 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을 성공하지 직접에, 그것은 로컬 링크에서 벽을 통해 다운로드 할 수 있습니다 :
(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