[질문] FreeBSD: 포맷한 디스크에서 이전 데이터 복구하기
정말 죽을 맛이군요.
FreeBSD를 업그레이드하면서, DB를 백업하고 복원했는데
희한하게도 그중 하나의 DB가 빠져버렸습니다. :shock:
이거 어떻게 복구가 가능한지 모르겠군요.
자세한 내용은 다음과 같습니다.
프비4.7에서 쓰던 SCSI 하드를 포맷하고 새로 5.2R을 깔았습니다.
파티션도 이전과 다르게 새로 했습니다.
잘 기억은 안나지만, 이전 파티션은 대략
- / (100M)
swap (512M)
/var (4G)
/home (6G)
/usr (4G)
/backup (4G)
- / (256M)
swap (1G)
/tmp (512M)
/var (6G)
/usr (9.4G)
찾고자 하는 문제의 파일은 이전의 /var 파티션, /backup 파티션 중에 들어있었습니다.
/backup 파티션에 존재할 경우,
지금 새 파티션의 /usr 사용량은 2G 미만이므로,
(물리적으로 디스크 안쪽에 배치된) 기존의 /backup 디렉토리에는
다른 데이터가 덧씌워지지 않았을 것이라고 추측하고 있습니다.
윈도우의 FinalData 같은 프로그램처럼
inode로 접근해서 파일을 복구하는 방법이 있을 것도 같은데요.
써보진 않았습니다만, ffrecover 같은 프로그램은 프비4.x버전에서만 작동하는 것 같구요.
현재 파티션이 UFS2로 바뀌어서 가능할지 모르겠습니다.
이전 파티션과 같이 새로 포맷하면 가능할 것도 같은데... 한번도 해본적이 없어서 겁부터 납니다.
관련업체에 문의하니 가능할 것 같다고 하는데,
비용이 너무 비싸고, 가동중인 서버를 하루이틀씩 중단시키는게 쉽지 않아서...
이런 일은 처음이군요. :cry:
정말 시스템 관리는 함부로 하는게 아니라며 뼈저리게 반성하고 있습니다.
고수님의 손길을 기다립니다.
혹시 이런 경우, 손해배상은 어떻게 하는지 경험있으신 분의 조언도 부탁합니다.
[/][/]
헉,,,
헉,,,
힘없는자의 슬픔
제가 예전에 써놓은 글인데 참고가 많이 될 겁니다.저도 하도 오래되어
제가 예전에 써놓은 글인데 참고가 많이 될 겁니다.
저도 하도 오래되어서 방법을 까먹었습니다. :<
http://www.kr.freebsd.org/ml/hackers/2000/08/msg00009.shtml
저랑 비슷하게 레이블만 까먹은 거니까 gpart를 쓰실 필요는 없을테고, 위 메일에 있는 프로그램 빌드하셔서 레이블이 시작되는 위치를 알아낸 다음 그 정보를 바탕으로 disklabel을 재구성하시면 됩니다. 물론 disklabel이 복구되었다면 fsck -y를 꼭 해 주셔야 할 테고요, 그 때 파일 날라가면 어쩔 수 없습니다.
되든 안되는 일단 도전해 보는게 좋겠습니다.
--
익스펙토 페트로눔
답변은 감사합니다만, 제가 무지하여....
답변 감사합니다.
그런데... 지금 저는 파티션을 바꾸었을 뿐 아니라 포맷하고 5.2R을 깔아둔 상태입니다.
이전의 /backup (4G) 위치가 지금의 /usr (9G) 위치에 해당하고
지금의 /usr 는 2G만 사용하고 있으므로
아마도 /backup 쪽에 있던 데이터가 무사하지 않을까 추측하는 겁니다.
만약 UFS2 시스템이 남은 공간까지 사용해버렸다면 데이터복구는 불가능할테죠.
그러니 파티션 정보가 날아간 상태와는 조금 다르지 않을까 싶은데요.
가르쳐주신 링크의 내용을 읽었지만 잘 모르겠습니다. :oops:
그리고 ffsrecover는 5.x 버전에서 broken으로 나오던데요.
다른 컴퓨터의 FreeBSD에 4.x를 깔고, 문제의 디스크(UFS2)를 붙여도
제대로 작동할런지...
우수하지 않아요. '우수한'은 옛날 만화 CityHunter에서 따와서 쓰던 별명. ;-)
용어에 혼동이 있는것 같은데 저는 PC파티션을 파티션이라 부르고 Free
용어에 혼동이 있는것 같은데 저는 PC파티션을 파티션이라 부르고 FreeBSD파티션을 레이블이라 불렀습니다. gpart는 PC파티션을 복구하는 프로그램이고, FreeBSD파티션=레이블을 복구하는건 메일에 있는 프로그램을 사용해야 경계 위치를 추적할 수 있습니다.
포맷을 겹쳐서 해도 사용하지 않았다면 해당 레이블은 약간 손상된 채로(왜냐하면 포맷 과정에서 슈퍼블럭 카피가 놓이니까요) 남아 있을 겁니다. 레이블 위치만 블럭 단위로 정확히 알 수 있다면 복구가 되죠.
ffsrecover가 안되어도 위 경우라면 거기 있는 프로그램 빌드해서 한번 돌려봐서 뭐가 나오는지 보셔야 겠습니다. 아마 새로 포맷한 거랑 이전 레이블이랑 위치가 둘 다 나올 테니 정말 잘 보고 나누셔야 겠네요.
그리고 4.x에서 만든 레이블을 복구하는 거니까 덮어쓴 포맷이 UFS2이든 아니든 간에(심지어 FAT로 포맷했다고 해도) 4.x에서 ffsrecover+레이블 탐지(메일에 들어있는) 시도하시면 됩니다. 복구할 레이블은 UFS1이니까요.
--
익스펙토 페트로눔
아, 그렇군요.
파티션(레이블)을 헷갈려한건 아니구요. 레이블 정보만 날아갔을 뿐 아니라
거기에다 +"포맷", +"다른 데이터 쓰기"가 되었다는 얘길 하려고 한겁니다. :?
아, 그리고 "메일에 있는 프로그램"이란게... 메일 아래쪽에 씌어진 소스를 말씀하시는거였군요. 저는 ffrecover를 말씀하시는 건줄 알고.... :oops:
설명 감사합니다. 한번 삽질을 해봐야겠네요.
우수하지 않아요. '우수한'은 옛날 만화 CityHunter에서 따와서 쓰던 별명. ;-)
댓글 달기