ext3파일시스템에서 다른 디렉토리에 파일 생성하게 하는 방법좀

mirr242의 이미지

ext3파일시스템으로 마운트 되어 있는 디렉토리에서요...
예를 들어 /home/test_ext3라는 디렉토리가 ext3로 마운트 되어있고
이 디렉토리에서 작업하면 이 디렉토리에 파일이 생성되잖아요 보통...
그런데 /home/test_ext3디렉토리에는 파일이 생성이 안되고
/home/test_ext3/new/라는 디렉토리에 파일이 생기게 하려면...
어떻게 해야 하는지 모르겠네요...
dentry구조체를 손봐야 할꺼같은데 ....
d_parent의 d_iname
f_dentry의 d_iname을 memcpy로 바꿔봐도 생성 경로는 변경되지 않네요...
inode 구조체등 다른 구조체들도 변경해줘야 하는지...
고수분의 도움이 절실히 필요합니다.
간단히 말해서 파일이 생성되는 경로를 사용자가 정해놓은 디렉토리로
변경해주는 방법이 궁금합니다.
될꺼같은데 저의 미천한 실력으로는 역부족이네요 ㅜ ㅜ;;
도와주세요...

hb_kim의 이미지

여기서 왜 dentry 까지 나와야 하는지 잘 이해를 못하겠군요.

파일 오픈할때 원하는 디렉토리를 인수로 주면 되지 않을까요?

mirr242의 이미지

파일시스템을 변경시킨다는 의미였어욤 ㅜㅜ;
vi편집기 같은걸로 문서 작성 한다음에 저장하고 나오잖아요...
그럼 없던 파일이 생길텐데 그때 새로 생기는 파일을
특정디렉토리에 생기게 하려고 하는겁니당...

見月忘指-달을 가르키는 손가락을 보지말고 달을 보라!!!
감사합니당

hb_kim의 이미지

아... 이제 질문이 이해가 가는군요.

일종의 snapshot 비슷한 것을 구현하려고 하시는것으로 짐작이 가는데요, 그게 그렇게 파일 시스템 몇군데 hack 하는것으로 간단하게 완성되지는 않을겁니다. inode resolve 과정은 VFS 와 local file system 둘다 관여하게 되거든요.

굳이 EXT3 을 사용해햐만 하는 제약조건만 없다면, Reiser FS 에 플러그인을 만드는 것이 가장 쉽게 원하시는것을 만드실 수 있는 방법이 될겁니다.

ReiserFS V4 를 보시면 모든 파일이 그 파일 데이터를 포함하는 디렉토리가 되거든요. 파일의 attribute 나 method도 그 파일 디렉토리에 포함되구요. (제가 이렇게 어설프게 번역하는 것보다, namesys.com 에 가서 직접 읽어보시기를 권하고 싶군요.) 이런 infrastructure 가 갖춰져야, 원하시는 기능을 그위에 구현하실수 있을겁니다.

hb_kim의 이미지

hb_kim wrote:
inode resolve 과정은 VFS 와 local file system 둘다 관여하게 되거든요.

아참, 정말 파일 새로 생성시에 ./new 서브디렉토리에 넣는 기능만 원하신다면 VFS 쪽을 손보시면 될듯합니다. 모든 local filesystem 에 적용되겠죠.

mirr242의 이미지

우선 2번이나 답변해 주셔서 정말 감사드립니다.
제가 실력이 부족해서 정말 어렵게 되버렸네요... ㅜㅜ
학교 프로젝트인데...
근데요 VFS쪽에서 수정을 하면 로컬 파일시스템에 적용되잖아요...
로컬에 적용되지않고 원하는 디렉토리의 파일시스템에만 적용되게
할수 있지 않을까요?(작업 디렉토리는 ext3이고 다른 어떤 곳에서도
ext3를 사용하지 않는다면요 /new 디렉토리는 nfs이고요..)
또 횡설수설했네요 ㅜㅜ

見月忘指-달을 가르키는 손가락을 보지말고 달을 보라!!!
감사합니당

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.