한순간 실수로 홈디렉토리를 모두 지워버렸습니다.
이것저것 복구를 시도해서 그럭저럭 일부의 파일은 복구했네요.
저도 잊어버리기 전에 정리해둘겸 팁으로 남겨봅니다.
라이브 시디와 extundelete (http://extundelete.sourceforge.net/)라는 툴을 이용해서
지워진 파일을 복구하는 방법을 정리해 보겠습니다.
검색해서 나오는 것들은 예전 ext3에서의 복구라서
최신 우분투의 ext4의 복구에는 사용못하고,
제작자의 말에 의하면 이 툴이 최초이고 유일하다네요.
(제가 찾아봐도 그런것 같네요…)
준비물:
- 라이브시디 - 부팅후 네트워크 접속까지
- 복구한 파일을 보관할 장소
- usb 하드디스크
- 내장된 두번째 하드디스크
- 다른 컴퓨터 <- 우분투를 가정하고 이 경우만 적어보겠습니다.
- 시간 (용량에 따라 몇시간에서 몇십시간)
[b:2s29jabc]A. extundelete 설치[/b:2s29jabc]
(1) 실수로 지워진 중요한 자료(rm -rf 등등)가 있다고 판단하면
미련없이 전원을 강제종료하세요.
아니면 최소 하드디스크 언마운트라도 하시길 (sudo umount /dev/sda1)
(2) 라이브 시디(10.04 혹은 10.10)로 부팅합니다.
(3) synaptic package manager를 열고, setting - repository에서 모든 저장소의 체크박스를 체크합니다.
reload를 눌러서 업데이트해 주세요.
(4) sudo apt-get build-dep ext3grep
#extundelete를 컴파일하기 위한 패키지들을 설치합니다.
#저는 귀찮…아서 그냥 이렇게 했습니다. 꽁수이니 잘 아시는 분들은 의존패키지를 직접 설치하시길…
(5) extundelete를 받으세요.
https://sourceforge.net/project/platfor ... _id=260221압축풀고 컴파일합니다.
[quote:2s29jabc]
tar xvjf extundelete-0.2.0.tar.bz2
cd extundelete-0.2.0
./configure; make
[/quote:2s29jabc]
이상 없으면 sudo make install까지…
[b:2s29jabc]B. 백업할 장소 확보[/b:2s29jabc]
적은 파일을 복구하신다면 usb memory로 충분하실듯…
연결하면 /media/에 마운트되니 cd /media/xxx/ 하신 후
sudo touch asdf; sudo rm asdf로 확인 후 되면 바로 C로 점프!!
저는 다른 우분투가 한대 있어서 네트워크로 백업했습니다.
- samba로 연결 : 간편할지 모르나 퍼포먼스가 너무 떨어집니다. 작업시간이 너무 길어짐…
- sshfs로 연결 : 일반유저로 연결하면 root로 파일을 쓸 수가 없더군요.
[quote:2s29jabc]백업용 서버쪽 :
sudo apt-get install openssh-server
sudo -i
passwd 후 패스워드 지정
라이브시디쪽 :
sudo apt-get install sshfs
sudo adduser root fuse
sshfs root@remote.server /mnt/
sudo -i
cd /mnt/[/quote:2s29jabc]
이렇게 하면 되나, root의 ssh를 여는게 좀 그렇네요.
- nfs로 연결 : 간단하고 퍼포먼스가 제일 좋습니다.
[quote:2s29jabc]백업용 서버쪽 :
sudo apt-get install nfs-kernel-server
sudo mkdir -p /exports/username
sudo mount --bind /home/username /exports/username
ls /exports/username로 확인
sudo vi /etc/exports
에 다음을 추가
/exports 192.168.1.0/24(rw,fsid=0,insecure,no_subtree_check,async)
/exports/username 192.168.1.0/24(rw,nohide,insecure,no_subtree_check,async)
주소는 적당히 바꿔주세요.
sudo service nfs-kernel-server restart
라이브시디쪽 :
sudo apt-get install nfs-client
sudo modprobe nfs
sudo mount -t nfs4 -o proto=tcp,port=2049 192.168.1.10:/ /mnt/
서버쪽 아이피로 수정하세요.
cd /mnt/username/
mkdir backup
chmod -R a+w backup
cd backup후
sudo touch asdf; sudo rm asdf로 확인…
[/quote:2s29jabc]
이상 없으면 준비 완료…
[b:2s29jabc]C. 복구 시작[/b:2s29jabc]
준비된 장소에서 다음 명령을 실행하면
RECOVERED_FILES라는 디렉토리가 생성되고 살릴 수 있는 파일을 살립니다.
[quote:2s29jabc]sudo extundelete /dev/sda1 --restore-all[/quote:2s29jabc]
/dev/sda1도 환경에 따라 수정하세요.
하드의 크기에 따라 몇십시간 걸릴 수 있습니다.
특정 파일이나 디렉토리만 살릴 수도 있습니다.
[quote:2s29jabc]sudo extundelete /dev/sda1 --restore-directory=/home/user/[/quote:2s29jabc]
자세한 사용법은 http://extundelete.sourceforge.net/
이상입니다.
무사히 복구하시길…