슈퍼블록 이상으로 디스크 마운트 실패할 때

category 아기 펭수 걸음마 | Posted by 오씨 부부 | 2019/05/12 14:20


 

SSD 파티션을 셋으로 나눠 첫 파티션은 그때그때 여러 배포판들을, 그 다음 파티션에는 주사용 배포판인 deepin을 설치해서 사용하고 있고, 세 번째 파티션(sda2)은 자료 저장용으로 사용 중입니다. 석 달 전에 실수로 본체의 버튼을 잘못 눌러 강제로 재부팅되는 상황을 맞은 적이 있었습니다. 문제는 부팅시 자동 마운트가 되게 설정해 둔 세 번째 파티션이 ... cant read superblock on /dev/sda2 ...라는 메시지와 함께 마운트가 안 되는 겁니다.

 

처음엔 가볍게 생각했지만, 이리저리 해봐도 안 되고 검색을 해봐도 답변이 잘 보이지 않았습니다. 슈퍼블록이 깨졌다는 것 정도는 알겠는데, 마운트가 안 되니 중요 자료에 접근 자체가 안 되고 자칫 섣불리 복구하다가 자료가 다 날아갈 수 있어 당황했죠. 한참을 검색한 뒤에 다행스럽게도 HP 기업 지원 사이트에서 해답을 찾았기에 여기에 공유합니다.

 

$ sudo su (루트 권한 획득, 비밀번호 필요)
$ dumpe2fs /dev/sda2 | grep -i superblock (슈퍼블록의 정보 확인)
$ fsck -b 32768 /dev/sda2 (망가진 슈퍼블록 복구)

 

위 두 번째 명령을 주면 Backup superblock at 32768, Group descriptors at 32769-XXXXX와 같은 정보를 여러 줄 보여줍니다. 봐도 뭔 소리인지는 모르겠으니 넘어가서 세 번째 명령을 입력하면 역시 간단한 정보를 보여주는데, 화면 저장할 생각을 못했으니 메시지 내용도 모르겠고, 그 의미는 더더욱 모르겠습니다. 게다가 찝찝한 것은 복구 여부를 유저에게 묻더라는 것이죠.

 

... Fix〈Y〉? _ (아, 비표준 blink 태그의 추억이여~)

 

파일 시스템이나 뭔가 중요한 걸 건드리는 것 같은데, 혹시나 잘못 될 경우 책임 안 지려고 유저에게 동의를 묻는 거 같아서 불안했습니다. 하지만, 어차피 방법 없는 상황인지라 Y를 눌러버렸는데, 이후로 작업이 진행되는 동안 거의 수십 번은 계속 묻습니다. Y도 그만큼 눌러대야 죠. 애초에 -y 옵션을 넣고 명령을 내리면 되는 거였는데, 처음 하는 거라 그저 조심스러울 수밖에 없다보니 그렇게 된 겁니다. 암튼 마침내 복구가 완료되었다는 메시지와 함께 드디어 마운트가... 됐...습니다...!

 

리부팅해 보니 자동 마운트는 물론이고 자료도 그대로 잘 보존되어 있었습니다. 100일이 지난 지금까지 아무 문제 없으니 무사히 해결된 것이죠. 혹시나 슈퍼블록 이 깨져서 비슷한 상황을 만나신 분들에게 도움이 되길 바랍니다. 참고로 슈퍼 블록은 파일 시스템의 정보를 담아두는 블록이라는데, 이게 깨졌으니 파티션과 파일들에 접근을 할 수 없게 되는 것은 당연합니다. 고수들이야 다 아는 거겠지만, 이제라도 알았으니 잘 기억해야 할 것 같군요.

 

위의 fsck 명령은 file System consistency check, 즉 파일 시스템 영속성 검사의 약자입니다. -b 옵션은 block의 약자인 듯한데, 찾아봐도 무슨 뜻인지 나오지는 않는군요. 아마도 망가진 블록을 고치거나 새로 만드는 옵션으로 보입니다. 다음의 관련 기술 문서와 블로그 포스트를 소개합니다.

 

 

덧붙임

 

참고로 위 상황에서, 세 번째 파티션이 sda2라면 당연히 첫 파티션은 sda5, deepin이 설치된 파티션은 sda6가 됩니다. 이게 무슨 말인지 모른다면 아직 리눅스의 파티션 개념을 확실히 알지 못한다는 뜻이니 파티션 관리에 신중해야 하겠습니다.

 

사용자 삽입 이미지

 

 

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기

Trackback

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다

Comments