1.出现问题时的解决办法

  • 查看OS的日志/var/log/messages,应该会有相关的报错信息

  • 对于ext3类型的文件系统,可以使用tune2fs 查看

tune2fs -l /dev/sdf|grep stat
Filesystem state:         clean
  • 使用fsck命令来检测和修复文件系统,FSCK 全称为 File System Consistency Check
    作用:
    它可以进行三种模式的操作,
    查错并在发现错误时由用户决定如何处理,
    查错并自动修复,
    查错但在发现错误时只显示错误而不进行修复。
手工执行 FSCK 的语法为,
$ fsck options drives
fsck 支持的选项有,

-p 自动修复(不询问)
-n 不对文件系统做出改动
-y 对所有问题都回答 "yes"
-c 检查所有的坏块并将之添加到坏块列表中
-f 即使文件系统标记为 clean 也强制进行检查
-v 输出详细信息
-b superblock 使用替代的超级块
-B blocksize 指定超级块的块大小
-j external_journal 指定外部日志的位置
-l bad_blocks_file 添加到指定的坏块列表(文件)
-L bad_blocks_file 指定坏块列表(文件)
  • Fsck 命令的案例
1)我们不应该用 fsck 检查已挂载的磁盘,这很可能会对磁盘造成永久性的伤害。首先先卸载硬盘
$ umount drivename
$ umount/dev/sdb1
可以通过下面命令来查看分区编号,
$ fdisk-l
另外,在运行 fsck 时,可能出错并返回一些错误码。下面是一些常见的错误及其意义的列表,
0 - 没有错误
1 - 修复了一些文件系统错误
2 - 系统需要被重启
4 - 文件系统错误未被修复
8 - 操作错
16 - 使用或语法错
32 - fsck 被用户取消
128 - 共享库出错

(2)在单个分区上进行错误检查
在终端运行下面过命令来对单个分区进行检查,
$ umount/dev/sdb1
$ fsck/dev/sdb1

(3)检查文件系统错误并自动修复
使用选项 -a 进行一致性检查并自动修复这些错误。也可以用 -y 替代 -a 选项。
$ fsck-a /dev/sdb1

(4)检查文件系统错误但并不进行修复
若我们只想知道文件系统上有哪些错误而不想修复这些错误,那么可以使用选项 -n,
$ fsck-n /dev/sdb1

(5)检查所有分区中的错误
-A 选项一次性检查所有分区上的文件系统错误,
$ fsck-A
若要禁止对根文件系统进行检查可以使用选项 -R,
$ fsck-AR

(6)只检查指定文件系统类型的分区
使用选项 -t 及文件系统类型,可以让 fsck 只检查指定文件系统类型的分区,比如指定文件系统类型为 “ext4”,
$ fsck-t ext4 /dev/sdb1
或者,
$ fsck-t -A ext4

(7)只在卸载的磁盘上进行一致性检查
要保证 fsck 只在卸载的磁盘上操作,可以使用选项 -M,
$ fsck-AM

(8)使用fsck.ext3对文件系统进行扫描、修复
ileserver:~# fsck.ext3  -y /dev/sdb1  ---开始进入扫描、修正文件系统
fsck -t  ext4 /dev/sda1
-t参数是指明文件系统是什么。/dev/sda1则是指定分区。
这个命令还有另外一种输入法,这就是:
fsck.ext4 /dev/sda1

2.问题:Read-only filesystem after ‘ext3_free_blocks_sb: bit already cleared for block’ errors

EXT3-fs error (device sdh1): ext3_free_blocks_sb: bit already cleared for block 43055512
Aborting journal on device sdh1.
EXT3-fs error (device sdh1) in ext3_reserve_inode_write: Journal has aborted
EXT3-fs error (device sdh1) in ext3_truncate: Journal has aborted
EXT3-fs error (device sdh1) in ext3_reserve_inode_write: Journal has aborted
EXT3-fs error (device sdh1) in ext3_orphan_del: Journal has aborted
EXT3-fs error (device sdh1) in ext3_reserve_inode_write: Journal has aborted
EXT3-fs error (device sdh1) in ext3_delete_inode: Journal has aborted
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
ext3_abort called.
EXT3-fs error (device sdh1): ext3_journal_start_sb: Detected aborted journal
Remounting filesystem read-only
  • 解决办法:

1. Unmounting the file system (/dev/sdc14)

2. Nuke the ext3 journal       
	tune2fs -O ^has_journal /dev/sdc14

3. check disk
        nohup e2fsck -fy -C 0  /dev/sdc14 &
	
4. Rebuild the journal
	tune2fs -j /dev/sdc14

5. Mounting the file system (/dev/sdc14)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐