Skip to main content

손상된 라즈베리파이 sd카드에서 파일 복구하기


1. 갑작스런 sd카드 이탈로 인한 시스템 손상

라즈베리파이를 오랜만에 사용하려고 전원을 켜다가 실수로 sd카드가 빠지게 되었다. 다시 부팅을 해보니 잘 되는듯 싶다가 갑자기 부팅이 중단되면서 커맨드에 아래와 같은 글이 보였다.

Kernel panic-not syncing: VFS: unable to mount root fs on unknown-block(179,2)

그래서 해결법을 찾아보니 e2fsck 명령어를 쓰면 된다는데, 우선 부팅이 되다 말아서 에러난 라즈베리파이라 키보드 입력이 불가했다.



2. 정상 라즈베리파이 구동 및 sd카드 복구

따라서 여분의 라즈베리파이 하나를 새로 작동시키고 고장난 sd카드를 리더기에 꽂아서 정상 작동하는 라즈베리파이의 usb단자에 꽂았다.


그리고 데이터 보호를 위해 먼저 아래의 명령어로 마운트를 해제했다. (/dev/sda2는 첫번째 꽂힌 디스크의 두번째 파티션이라는 뜻)

sudo umount /dev/sda2

그후 e2fsck를 진행해야되서 아래와 같은 명령어를 입력하였다. (-p는 자동으로 복구해주는 옵션)

sudo e2fsck -p /dev/sda2

하지만 아래와 같은 문구가 떠서

UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY

아래와 같이 명령어를 수정했다. (-y옵션은 모든 항목에 yes를 자동으로 선택해줌)

sudo fsck -y /dev/sda2


3. 복구한 sd카드 부팅

이제 복구한 sd카드를 다시 라즈베리파이에 넣어주었고, 부팅을 해보니 생각보다 부팅이 오래걸렸는데, 결국 GUI 화면이 뜨고 로그인을 하라는 창이 떴다.

하지만 비밀번호를 입력할때마다 다시 검은 화면뜨고 다시 로그인창 뜨는 문제가 무한 반복되어서 ctrl + alt + F1을 눌러서 커맨드 화면으로 전환하고 startx 를 입력해주니 정상적으로 GUI 바탕화면이 뜨게되었다.



4. lost+found 들어가서 파일 가져가기

fsck 복구는 곱게 위치까지 그대로 복구된게 아니라 루트 디렉토리의 lost+found 폴더에 들어가보면 아래와 같이 이상한 이름으로 복구가 되어있다.

image

그래도 다행히 폴더의 하위 디렉토리로 가게되면 전부 이름이 정상적으로 되어있다.

이제 복구하고 싶었던 파일들을 알아서 잘 꺼내가면 된다.