디바이스를 오픈하여 사용한 경우

iyouhe의 이미지

일반적으로 리눅스에서 ext2파일시스템을 사용하는데 , 파일 시스템을 사용하지 않고 그대로 사용하기 위해서 아래와 같이 하드디스크 디바이스를 열고

int fd= open("/dev/hda4",O_WRI...);
for( i = 0 ; i < 10 ; i++ )
{
size = write(fd,buf,1024);
}

이렇게 사용한 후 재 부팅시 루트 파티션을 마운트 하지 못하고 있습니다.

/dev/hda1을 사용한 것도 아닌데 왜 루트 파티션을 마운트 하지 못하는 걸까요?

복구할 순 없나요?
그리고 row 파티션으로 , 파일 시스템없이 write를 하는건 더 빠르게 write를 하나요? 그렇게 하려면 어떻게 해야 하나요?

질문이 많아서 죄송합니다. 고수님들의 답변을 기다리겠습니다.

pynoos의 이미지

먼저 쓰신 글과 더불어....
복구 불가능해보이는 군요.

device에 직접 쓰기를 하셨다니...

daybreak의 이미지

기존에 존재하는 filesystem을 이용하지 않고 바로 write 하는 경우가 빠르다고 말하기는 힘들 것 같습니다. 기존에 존재하던 filesystem은 대개 충분한 세월을 두고 나름대로 buffer scheduling이 최적화된 상태라고 봐야 하기 때문이죠. 이들보다 효율적인 buffering을 하지 않는 한, 느리면 느렸지 빨라지지 않으리라 봅니다.

vacancy의 이미지

될지 안될진 모르겠지만
fstab에 /dev/hda4 관련된 부분이 있다면 지워주세요.

scobyseo의 이미지

일단.. 루트 파티션과 다른 파티션인 것 같은데요..
어떤 용도로 사용하는 파티션이었는지 적는 것이 좋을 것 같습니다.
현재 주어진 정보로 보기에는 루트 파티션을 마운트하지 못하는 것보다는..
그냥 해당 파티션을 읽지 못하는 정도인 것 같네요.

그리고 raw disk I/O 를 하게 되면,
아무래도 파일시스템 레이어와 커널 버퍼를 한번 덜 통하니까 속도는 빠릅니다.
물론.. 단 한번의 디스크 I/O자체가 빠르다는 거죠.

현재 사용하신 코드를 보면, 오히려 파일시스템을 통해서 기록하는 것이 빠를 것입니다.
왜냐하면, 10번의 디스크 I/O가 필요하니까요.
아마 파일시스템은 한번 혹은 세번에 디스크에 기록할 겁니다.
물론 튜닝하기 나름입니다만...

하지만,

write (fd, buf, 10 * 1024);

라고 했다면, 빠를 가능성은 더 있습니다. ^^

파일시스템을 하나 구현하실 생각이 있으시다면 raw 디스크 I/O를 쓰시고..
그렇지 않다면.. 기존의 파일시스템을 쓰십시오..
파일시스템을 구현하는 거 머리아픕니다 --;

서명:
이것은 올리는 글에 첨부될 사인 문구입니다. 제한은 255 글자입니다

댓글 달기

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