unix/linux 파일의 디렉토리 구조 정보를 보는 방법은 무엇입니까?

unix/linux 파일의 디렉토리 구조 정보를 보는 방법은 무엇입니까?

Unix 파일 시스템에서 디렉토리는 하위 파일 이름, 파일 이름 크기 및 inode 참조 번호를 포함하는 특수 디렉토리 구조를 가진 특수 파일입니다.

이 외에도 실제 파일 메타데이터는 일반적으로 inode 자체에 저장됩니다.

내 질문은. 해석된 형식 대신 원시 형식으로 실제 특수 디렉토리 구조를 읽는 방법.

예, ls를 사용하여 거기에 있는 파일을 볼 수 있다는 것을 알고 있습니다. 그것은 내가 찾고 있는 것이 아닙니다.

답변1

간단히 대답하자면, 또는 같은 명령을 사용하여 cat .디렉터리 cat /etc파일을 읽는 것입니다 cat mydir. hexdump물론 이것은 "원시" 데이터이므로 비ASCII 데이터를 인간적인 방식으로 표시하는 데 더 적합한 프로그램을 사용해야 합니다 od.

불행하게도 논의된 바와 같이디렉토리는 언제 파일로 읽히지 않습니까?, 지난 20년 동안 출시된 대부분의 Unix 버전에서는 이를 허용하지 않습니다. 따라서 귀하의 질문에 대한 대답은 아마도 "디렉토리 읽기를 허용하는 Unix 버전을 찾으십시오"일 것입니다. AIX, 대부분의 BSD 버전 및 최신 버전의 Solaris를 제외한 모든 버전이 적합할 수 있습니다. 이를 허용하는 Linux를 찾으려면 Time Machine을 사용해야 할 수도 있습니다.

답변2

이 구조는 사용된 특정 파일 시스템에 전적으로 의존하며, 이를 읽는 유일한 방법은 디스크(예: /dev/sda1)에서 직접 읽고 파일 시스템을 직접 해석하는 것입니다.

답변3

오래된 질문인 건 알지만 디렉토리 구조에 대한 정보를 찾다가 이걸 발견했습니다.

카탈로그 파일에서 원시 데이터를 얻으려면 다음 debugfs을 사용할 수 있습니다.

sudo debugfs /dev/sda1

ls평소와 같이 , cd등 또는 디렉터리를 사용할 수 있습니다 cat. 읽기가 쉽지 않으므로 다음을 사용할 수 있습니다.

dump / dumproot

dumproot그러면 이라는 파일이 생성됩니다 debugfs. 원본 내용을 얻으려면 다음을 사용할 수 있습니다 xxd.

xxd dumproot | head -n2

00000000: 0200 0000 0c00 0102 2e00 0000 0200 0000  ................
00000010: 0c00 0202 2e2e 0000 0b00 0000 1400 0a02  ................

이것은 .02000000으로 시작하는 inode 번호 2를 갖는 내 디렉토리의 및 항목을 보여줍니다. 더 큰 inode 번호의 경우 little-endian 항목의 시작 부분에서 볼 수 있습니다. 16진수 2e이므로 거기에서도 볼 수 있습니다. "0c00 0102"가 무엇을 의미하는지, 항목 끝을 어떻게 지정하는지 잘 모르겠습니다. 제가 이 스레드를 발견했을 때 찾고 있던 것이 바로 이것이었습니다.../.

답변4

inode에 대한 파일 시스템에서 제공하는 거의 모든 정보는 다음을 통해 사용할 수 있습니다.통계자료주문하다. 이는 파일 및 디렉터리의 inode에 대한 원시 정보로 생각할 수 있습니다.

stat FILE

Linux에서 inode에 대한 많은 정보를 찾을 수 있습니다.여기

파일 시스템의 일반적인 생성 과정을 확인하려면 다음을 시도해 보세요.

  • 약 100kB의 빈 파일을 생성합니다.
  • 원하는 파일 시스템을 사용하여 파일 포맷
  • 이 원본 파일을 백업하세요.
  • 루프 장치로 설치됨
  • 일부 디렉터리 및 파일 만들기
  • hexdiff 또는 hexeditor를 사용하여 코이스의 변경 사항을 분석하세요.

루트로서 다음을 수행합니다.

mkdir mountpoint
dd if=/dev/zero of=file_s.img bs=50k count=2
mkfs.ext2 file_s.img
cp file_s.img file_s_orig.img
mount -o loop file_s.img  mountpoint
bless file_s.img

관련 정보