[질문] 하드 읽기

익명 사용자의 이미지

안녕하세요. 이 질문이 여기에 맞는지 모르겠군요.

하드를 읽을려고 하고 있습니다. 있을 목표는
/bin/bash 파일을 읽을려고 하고 있습니다. 당연히 리눅스 상의 ext2 파일
시스템입니다.
어쨌든 /bin 을 먼저 읽어야 된다는 생각에 bin 의 inode 번호를 알아낸후
inode의 i_data[0] 블럭에 0xc105 이라고 써있기에 49413 블럭을 읽을려고
했습니다.

저의 ext2 파일 시스템은 /dev/hda2 를 루트 파티션(block size 1024)으로 하
고 있습니다.
/dev/hda2 의 블럭은 104834 블럭부터 시작을 합니다.

그럼 읽을려고 하는 블럭의 LBA -> CHS 로 바꿔어야 하니까

real block = 104834 + 49413
sec = real block % sector per track + 1
track = real block / sector per track
head = real block % track
cyl = real block / track

이므로 저의 CHS = { 4161, 16, 63 } 이기 때문에 각각

sec = 43, track = 3232, head = 0, cyl = 202 가 나왔습니다.

근데 49413 블럭 디렉토리를 읽어서 ext2 directory descriptor 를 읽어와야
하는데 막상 읽어오면 "." 과 ".."은 이름은 맞게 들어가 있으나
"." 과 ".."의 inode 섹션 부분은 /dev 를 부모로 갖고 있고, 알수 없는 inode
넘버로 이루어져 있습니다. 그리고 name descriptor length의 길이 또한 "."은
12 크기로 되어 있으나 나머지는 이상한 쓰레기 값으로 이루어져 있습니다.

근데 더 이상한 것은 /dev/ 은 거의 완벽에 가깝게 읽어지는 반면, /bin 혹은
다른 디렉토리는 이상하게 읽어져 error를 발생시키고 있습니다.

참고로 /dev와 /bin/ 의 아이노드 번호를 말씀드리면
/dev = 8161
/bin = 44881
로 되어 있습니다. block을 잃어올 때 이렇게 말썽을 부리니 작업에 진척이
별로 없습니다. int 0x13 이나 int 0x25(?) 를 써서 BIOS 에 의존적인 면도
없는데(IO 포트 0x1f0를 사용합니다) 이상하게 /dev 를 뺀 다른
디렉토리(대부분 inode 번호가 큽니다)에서 이런 현상을 발생시키니
참 답답합니다. 현재 추정하기로는 읽어오는 부분에서 문제가 있지 않을까
생각합니다만 확실치 않습니다.

그리고 제 하드의 구성은 아래와 같습니다.
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda2 347515 73676 255897 23% /
/dev/hda1 50723 6573 41531 14% /boot
/dev/hda3 296755 66639 214795 24% /home
none 22996 0 22996 0% /dev/shm
/dev/hda6 1257984 225104 968976 19% /usr

왜 이런 에러를 발생시키는지 알고 있으신 분은 꼭 답변 부탁드립니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.