임베디드보드에서 cramfs를 사용중인데요 가끔 cramfs가 저장되는 nand에 bad가 발생되면 부팅이 안됩니다

cats96의 이미지

인터넷검색해보니 cramfs에 bad가 발생하면 못쓴다고 나와있느데

이거 쓸수있는방법은 없을까요?

시스템 구조를 바꿀수있는 상태는 아닙니다

현재 시스템에서 오류가 너무 많이 발생하는데 이것을 좀 수정하여서 사용하여야 하네요

혹시 경험있느신분 답변 부탁드립니다

gurugio의 이미지


오래전이라 세부적인건 기억이 안나지만
nand를 사용하는 파일시스템은 bad난 곳을 기억해서 저장해놓고 그 부분에 데이터를 쓰지 않도록 설계합니다.
그만큼 nand의 신뢰성에 대해 대비를 합니다.
파일시스템이 알아서 해주므로 거기에 대해서는 굳이 신경쓰실 필요가 없는것으로 기억납니다.

bushi의 이미지

http://hi.baidu.com/yexm_it/blog/item/a91db517f9d53310962b4313.html
에 잘못 설명된 것을 고치고 약간의 추가 설명을 하자면...

bonfs 는 NAND flash bad block management 를 고려하지 않은 read-only 파일 시스템 뿐만 아니라
기타 read 로만 사용되는 모든 영역(kernel 저장영역, ramdisk 저장영역) 에 대해 bad block management 를 대행해 주기 위한 일종의 block device 입니다.
replace 기법을 사용하기 때문에 탐색 시간을 최소화하고자 각 영역별 파티션 개념을 사용했고,
이 파티션 개념을 그대로 이용해서 자체적인 bad block management 가 있는 파일 시스템 영역은 bonfs 에서 제외하도록 되어 있습니다.

이런 걸 사용해야만 했던 이유는,
이런 게 없으면 NAND flash 에서 커널은 물론이고 부트로더를 self 로딩하는 것 조차도 보장할 수 없기 때문이었습니다.
cramfs 따위는 덤이었죠.
개발자들의 고충을 덜기 위한 목적 보다는 제품 양산 절차, 공장에서 NAND flash 에 일괄적인 write 를 하는 것을 지원하기 위한 목적이 더 큽니다.
이런게 없으면, "부트로더/커널/cramfs 영역에 bad 가 있으면 그 NAND flash 는 폐기처분 해 주세요..." 라고 말해야 하거든요.

poplinux의 이미지

아쉽지만 nand 는 내구성이 약합니다.

막 생산한 NAND 자체도 BAD 가 없다는 것을 보장 못할 뿐더러, SMT 과정이나 일반 사용 도중에서도 BAD 가 발생할 확률이 있습니다.

그런 이유로, NAND 에 Cramfs 를 적용하면 문제가 생길 가능성이 높습니다. rootfs 나 kernel 등은 nand 에 cramfs 로 사용하시는 것보다는 nor 에 적용하시는 것이 안전할 것으로 생각됩니다.

========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux

임베디드 리눅스 관련 프리렌서 지향

댓글 달기

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