강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

리눅스 파일시스템 디버거 debugfs의 실무사용과 삭제파일 복구하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스 파일시스템 디버거 debugfs의 실무사용과 삭제파일 복구하기






 

debugfs  리눅스의 ext2/ext3파일시스템을 디버깅하는 일종의 대화형 디버거(debugger)입니다.

 

 

 

 debugfs의 정식 이름은 ext2/ext3 파일시스템 디버거입니다.

 

 

 

 , debugfs ext2또는 ext3로 생성된 파일시스템만을  대상으로 디버깅하거나 삭제파일을 복구하는 용도로 사용됩니다.

 

 

 

 

 

흔히 debugfs를 삭제파일복구 유틸리티쯤으로 알고 계신 분들이 많이 있습니다.

 

 

 

물론 debugfs로 삭제된 파일을 복구하는 방법이 있는 것이 사실입니다.

 

 

 

하지만 debugfs의 기능에 있어서 삭제파일복구가 전부가 아니라는 점은 분명히 기억하시고 이번 장의 내용을 실무관점에서 익혀두시기 바랍니다.

 

 

 

 

 

쉽게 말씀 드려서 debugfs ext2/ext3파일시스템에서 사용되는 파일시스템을 검사하고 변경할 수 있는 유틸리티라는 것입니다.

 

 

 

debugfs로 삭제된 파일을 복구할 수도 있으며(100%는 아님) 수퍼블럭(superblock)의 상태를 확인할 수도 있고 inode를 대상으로 물리적인 측면에서의 파일조작작업도 할 수가 있습니다.

 

 

 

한마디로 말씀 드린다면 debugfs는 특정 파일시스템 내부의 inode를 대상으로 파일작업을 하는 것이라고 할 수 있습니다.

 

 

 

 흔히 debugfs가 파일을 복구하는 유틸리티라고 생각하시지만 파일복구는 debugfs로 할 수 있는 여러 가지 작업중의 하나일 뿐입니다.

 

 

 

, 50여 개에 가까운 debugfs전용명령어 가운데 dump 또는 dump_inode라는 명령어에 의하여 삭제된 파일의 inode와 파일명을 연결함으로써 복구하는 것입니다.

 

 

 

 

 

따라서 debugfs 전용명령어가 매우 많으므로 그 용도와 역할을 정확하게 이해하고 실무에서의 활용법을 익혀두시기 바랍니다.

 

 

 

이번 장에서는 debugfs에 대한 전반적인 활용법을 실무에서 사용되는 예를 중심으로 설명하도록 하겠습니다.

 

 

 

 



[주의사항]

1. debugfs root전용명령어입니다.

 

 

 

따라서 일반사용자는 사용할 수 없습니다.

 

 

 


2. debugfs
는 파일시스템의 수퍼블럭과 inode를 조작할 수 있으므로 파일시스템에 대한 전문적인 지식 없이 함부로 작업하면 파일시스템 손상을 가져올 수 있습니다.

 

 

 

결론적으로 debugfs의 잘못된 사용으로 인하여 데이터유실 및 복구불능상태가 될 수도 있습니다.

 

 

 

 

3. 따라서 debugfs로 파일시스템 작업을 할 때에는 사전에 파일시스템에 대한 지식을 먼저 습득한 후에 사용하셔야 합니다.

 

 

 

 

 

 

명령어위치 : /sbin/debugfs

 

사용형식   : debugfs [-Vwci][-b blocksize][-s superblock][-f cmd_file][-R request]

[-d data_source_device][device]

 

debugfs의 맨페이지를 보면 실행방법이 위와 같이 표시되어 있습니다.

 

 

 

실행방법이 좀 복잡한 것처럼 보이지만 뒤에서 설명하는 예를 본다면 실제사용은 아주 간단하다는 것을 알 수 있습니다.

 

 

 

 

 

여기서 장치명(device)은 반드시 /dev/hda3 /dev/sda5등과 같이 실제 디바이스 장치명을 지정하셔야 합니다.

 

 

 

 

 

그리고 debugfs 사용시 파일시스템은 기본적으로 읽기전용모드로 열리게 됩니다.

 

 

 

하지만 w옵션을 사용하면 읽기와 쓰기모드로 파일시스템을 오픈할 수 있습니다.

 

 

 

또한 debugfs는 대화형 디버거이며 명령어 하나씩을 처리합니다.

 

그리고 debugfs를 공부할 때에 반드시 구분해야 할 것이 한가지 있습니다.

 

 

 

“native filesystem 모드라는 것과 “debugfs모드라는 것이 그것입니다.

 

 

 

 

 

“native filesystem 모드란 흔히 일반적으로 말하는 쉘프롬프트가 존재하는 쉘상태를 의미합니다.

 

 

 

, debugfs를 실행하기 전이나 debugfs를 종료하고 난 이후의 리눅스 쉘상태를 의미합니다.

 

 

 

참고로 debugfs가 실행된 상태에서 “native filesystem”위치를 변경할 때에는 “lcd”라는 debugfs 전용명령어를 사용합니다.

 

 

 

 

 

“debugfs 모드 debugfs를 실행시킨 상태 즉, debugfs를 실행시키면 “debugfs :”프롬프트에서 파일시스템에 관련된 debugfs작업을 수행하게 되는데 이때 이 debugfs 전용모드를 의미합니다.

 

 

 

참고로 debugfs가 실행된 상태에서 “debugfs모드위치를 변경할 때에는 “cd”라는 debugfs 전용명령어를 사용합니다.

 

 

 

이에 대해서 이번 장에서 실제 예를 들어서 잘 설명하고 있습니다.

 

 

 

 

 

가장 기초적인 의미이지만, 이 두가지 모드상태를 잘 구분할 수 있어야 debugfs를 이용하여 파일시스템작업을 수행할 수 있습니다.

 

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  85 명