LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 795|回复: 1

系统引导时,ReiserFS文件系统出错

[复制链接]
发表于 2006-2-17 11:47:30 | 显示全部楼层 |阅读模式

  1. ReiserFS:hda9:warning:vs-5657: reiserfs_do_truncate:i/o failure occured trying to truncate[......]
  2. ReiserFS:hda9:Removing[......]..<4> ReiserFS:hda9:warning:clm-2100:nesting info a different FS
复制代码


上面是出错的提示,在Google里搜了一下,找到了解决方法:

  1. The attached patch should help to get rid of clm-2100 and to avoid crash.

  2. Also, I think you should reiserfsck sda3.



  3. - 隐藏被引用文字 -
  4. - 显示引用的文字 -

  5. > ReiserFS: sda3: warning: clm-2100: nesting info a different FS
  6. > ReiserFS: sda3: warning: clm-2100: nesting info a different FS
  7. > ReiserFS: sda3: warning: clm-2100: nesting info a different FS
  8. > REISERFS: panic (device sda3): journal-1577: handle trans id 1122409068
  9. > != current trans id 3947596
  10. > ------------[ cut here ]------------
  11. > kernel BUG at fs/reiserfs/prints.c:362!
  12. > invalid operand: 0000 [#1]
  13. > CPU:    0
  14. > EIP:    0060:[<c019785f>]    Not tainted VLI
  15. > EFLAGS: 00010282   (2.6.11.6)
  16. > EIP is at reiserfs_panic+0x4f/0x80
  17. > eax: 00000068   ebx: c02be9bf   ecx: c038e8f8   edx: c02eecac
  18. > esi: f7eea000   edi: f7eea140   ebp: f3391944   esp: f339192c
  19. > ds: 007b   es: 007b   ss: 0068
  20. > Process pure-ftpd (pid: 27841, threadinfo=f3390000 task=d3053530)
  21. > Stack: c02c3ee0 f7eea140 c03b3580 f7eea000 00000000 f895d000 f3391984
  22. > c01a6d01
  23. >        f7eea000 c02c6440 42e69a6c 003c3c4c 00000002 f3391970 cdc49b40
  24. > 00000002
  25. >        cdc49b40 f3391984 00000000 052f8dee 00000000 f2bbfe60 f3391a08
  26. > c019ebba
  27. > Call Trace:
  28. >  [<c010282f>] show_stack+0x7f/0xa0
  29. >  [<c01029d1>] show_registers+0x151/0x1c0
  30. >  [<c0102bc8>] die+0xc8/0x150
  31. >  [<c010307c>] do_invalid_op+0xbc/0xd0
  32. >  [<c01024bb>] error_code+0x2b/0x30
  33. >  [<c01a6d01>] journal_mark_dirty+0x271/0x2a0
  34. >  [<c019ebba>] prepare_for_delete_or_cut+0x54a/0x720
  35. >  [<c019fdaa>] reiserfs_cut_from_item+0xca/0x5f0
  36. >  [<c01a0668>] reiserfs_do_truncate+0x2e8/0x610
  37. >  [<c019f7ef>] reiserfs_delete_object+0x3f/0x80
  38. >  [<c018636c>] reiserfs_delete_inode+0x8c/0x110
  39. >  [<c015ed85>] generic_delete_inode+0x95/0x130
  40. >  [<c015efc6>] iput+0x56/0x80
  41. >  [<c018995a>] reiserfs_new_inode+0x13a/0x740
  42. >  [<c01847b7>] reiserfs_create+0x97/0x1b0
  43. >  [<c0153e0f>] vfs_create+0x9f/0x120
  44. >  [<c01546f9>] open_namei+0x5d9/0x630
  45. >  [<c0144bbc>] filp_open+0x3c/0x60
  46. >  [<c0144ed6>] sys_open+0x46/0x90
  47. >  [<c0102313>] syscall_call+0x7/0xb
  48. > Code: 01 00 00 89 04 24 e8 31 fd ff ff c7 04 24 e0 3e 2c c0 85 f6 89 d8
  49. > 0f 45 c7 ba 80 35 3b c0 89 54 24 08 89 44 24 04 e8 c1 a9 f7ff <0f> 0b 6a
  50. > 01 02 ef 2b c0 c7 04 24 20 3f 2c c0 85 f6 b9 80 35 3b
  51. > ======================================================================


  52. [  reiserfs-add-missing-journal_end.patch ]


  53. This patch adds missing calls to journal_end on error handling code paths.


  54. fs/reiserfs/inode.c |    5 ++++-
  55. 1 files changed, 4 insertions(+), 1 deletion(-)


  56. diff -puN fs/reiserfs/inode.c~reiserfs-add-missing-journal_end fs/reiserfs/inode.c
  57. --- linux-2.6.11.10/fs/reiserfs/inode.c~reiserfs-add-missing-journal_end        2005-07-27 18:03:06.197544430 +0400
  58. +++ linux-2.6.11.10-vs/fs/reiserfs/inode.c      2005-07-27 18:04:07.363047159 +0400
  59. @@ -46,6 +46,7 @@ void reiserfs_delete_inode (struct inode
  60.         reiserfs_update_inode_transaction(inode) ;


  61.         if (reiserfs_delete_object (&th, inode)) {
  62. +           journal_end(&th, inode->i_sb, jbegin_count);
  63.             up (&inode->i_sem);
  64.             goto out;
  65.         }
  66. @@ -2015,8 +2016,10 @@ int reiserfs_truncate_file(struct inode
  67.                either appears truncated properly or not truncated at all */
  68.         add_save_link (&th, p_s_inode, 1);
  69.      error = reiserfs_do_truncate (&th, p_s_inode, page, update_timestamps) ;
  70. -    if (error)
  71. +    if (error) {
  72. +       journal_end (&th, p_s_inode->i_sb, JOURNAL_PER_BALANCE_CNT * 2 + 1);
  73.          goto out;
  74. +    }
  75.      error = journal_end (&th, p_s_inode->i_sb, JOURNAL_PER_BALANCE_CNT * 2 + 1);
  76.      if (error)
  77.          goto out;


复制代码


问题是现在系统根本引导不进去,引导过程中出现这种情况后就停住了,我怎么才能应用上面的解决方案?还请大家指点
 楼主| 发表于 2006-2-17 12:58:33 | 显示全部楼层
搞定了,用Ubuntu的LiveCD引导进去,又重建了一下文件系统
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表