背景:

Linux系统(Ubuntu)在运行时,断电等非正常关机操作,会导致ext4文件系统数据损坏。严重时会导致系统崩溃。如下log就是系统数据损坏。

[ 7.878756] EXT4-fs error (device mmcblk0p2): ext4_mb_generate_buddy:742: group 0, 14845 clusters in bitmap, 14822 in gd

[ 8.484660] init: samba-ad-dc main process (995) terminated with status 1

[ 14.248075] EXT4-fs error (device mmcblk0p2): ext4_mb_generate_buddy:742: group 1, 1 clusters in bitmap, 2 in gd

检查方法:

1、开机log,如上log就是开机时,kernel监测到文件系统错误;

2、比如要检查的分区是/dev/mmcblk0p2,如下红色字体部分就是系统错误的信息。

~# tune2fs -l /dev/mmcblk0p2

tune2fs 1.42.9 (4-Feb-2014)

Filesystem volume name:

Last mounted on: /

Filesystem UUID: ab013911-6048-465f-8a1a-cf1420c7bb01

Filesystem magic number: 0xEF53

Filesystem revision #: 1 (dynamic)

Filesystem features: ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

Filesystem flags: unsigned_directory_hash

Default mount options: user_xattr acl

Filesystem state: not clean with errors

Errors behavior: Continue

Filesystem OS type: Linux

Inode count: 393216

Block count: 1572864

Reserved block count: 78643

Free blocks: 289870

Free inodes: 169990

First block: 0

Block size: 4096

Fragment size: 4096

Reserved GDT blocks: 383

Blocks per group: 32768

Fragments per group: 32768

Inodes per group: 8192

Inode blocks per group: 512

Flex block group size: 16

Filesystem created: Sat Sep 12 11:55:02 2015

Last mount time: Mon Oct 5 00:56:20 2015

Last write time: Mon Oct 5 00:56:32 2015

Mount count: 49

Maximum mount count: -1

Last checked: Sat Sep 12 11:55:02 2015

Check interval: 0 ()

Lifetime writes: 5936 MB

Reserved blocks uid: 0 (user root)

Reserved blocks gid: 0 (group root)

First inode: 11

Inode size: 256

Required extra isize: 28

Desired extra isize: 28

Default directory hash: half_md4

Directory Hash Seed: 37b6421d-4697-4ff5-a68e-4a1e1ea81c0e

Journal backup: inode blocks

FS Error count: 5

First error time: Mon Oct 5 00:52:47 2015

First error function: ext4_mb_generate_buddy

First error line #: 742

First error inode #: 0

First error block #: 0

Last error time: Mon Oct 5 00:56:32 2015

Last error function: ext4_mb_generate_buddy

Last error line #: 742

Last error inode #: 0

Last error block #: 0

修复方法:

1、手动修复:借助其他完整系统启动,对所在磁盘分区卸载,比如要修复/dev/mmcblk0p2,

执行命令 fsck.ext4 /dev/mmcblk0p2 可检查修复系统;

2、自动修复:

条件:

(1)、 自动修复要保证,bootloader参数bootargs 生命挂载以制度方式挂载根文件系统

console=tty1 console=ttySAC2,115200n8 root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro

如果最后ro是rw,将不能完成自动修复。

(2)、  编辑/etc/fstab 挂载最后一个选项设置为1,标明启动时自动检测文件系统,如下:

UUID=e139ce78-9841-40fe-8823-96a304a09859       /       ext4    errors=remount-ro,noatime,nodiratime            0 1

(3)、 编辑 /etc/default/rcS 最后一个选项(其他linux系统有区别)

# automatically repair filesystems with inconsistencies during boot

FSCKFIX=yes

然后,可以参考/etc/init/mountall.conf

description "Mount filesystems on boot"

start on startup

stop on starting rcS

expect daemon

task

emits virtual-filesystems

emits local-filesystems

emits remote-filesystems

emits all-swaps

emits filesystem

emits mounting

emits mounted

script

. /etc/default/rcS || true

[ -f /forcefsck ] && force_fsck="--force-fsck"

[ "$FSCKFIX" = "yes" ] && fsck_fix="--fsck-fix"

# Doesn't work so well if mountall is responsible for mounting /proc, heh.

if [ -e /proc/cmdline ]; then

read line < /proc/cmdline

for arg in $line; do

case $arg in

-q|--quiet|-v|--verbose|--debug)

debug_arg=$arg

;;

esac

done < /proc/cmdline

fi

# set $LANG so that messages appearing in plymouth are translated

if [ -r /etc/default/locale ]; then

. /etc/default/locale || true

export LANG LANGUAGE LC_MESSAGES LC_ALL

fi

exec mountall --daemon $force_fsck $fsck_fix $debug_arg

end script

post-stop script

rm -f /forcefsck 2>dev/null || true

end script

(4)、

系统检测到分区有问题时,会再根目录下创建一个空文件/forcefsck,重启后,执行mountall,自动进行修复,然后删除forcefsck,也可以手动创建/forcefsck,系统同样会在下次启动时强制检查修复文件系统;

Log:

系统启动检查修复过程的log,不在/var/log/fsck/目录下,而是在/var/log/upstart/目录下,文件为 mountall.log,如下:

# cat mountall.log

mount: mount point /media/boot does not exist

mountall: mount /media/boot [382] terminated with status 32

mountall: Filesystem could not be mounted: /media/boot

Skipping /media/boot at user request

Skipping /media/boot at user request

Skipping /media/boot at user request

fsck from util-linux 2.20.1

e2fsck 1.42.9 (4-Feb-2014)

/dev/mmcblk0p2: clean, 223220/393216 files, 1282976/1572864 blocks

其他:

也可以通过设置 系统挂载的次数来自动检查修复文件系统

比如:

tune2fs -c 30 /dev/mmcblk0p2 系统每启动30次,就会检查修复一次。

修复完成后,通过 tune2fs -l /dev/mmcblk0p2看到没有错误信息,如下:

~# tune2fs -l /dev/mmcblk0p2

tune2fs 1.42.9 (4-Feb-2014)

Filesystem volume name:

Last mounted on: /

Filesystem UUID: ab013911-6048-465f-8a1a-cf1420c7bb01

Filesystem magic number: 0xEF53

Filesystem revision #: 1 (dynamic)

Filesystem features: ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

Filesystem flags: unsigned_directory_hash

Default mount options: user_xattr acl

Filesystem state: not clean

Errors behavior: Continue

Filesystem OS type: Linux

Inode count: 393216

Block count: 1572864

Reserved block count: 78643

Free blocks: 289888

Free inodes: 169996

First block: 0

Block size: 4096

Fragment size: 4096

Reserved GDT blocks: 383

Blocks per group: 32768

Fragments per group: 32768

Inodes per group: 8192

Inode blocks per group: 512

Flex block group size: 16

Filesystem created: Sat Sep 12 11:55:02 2015

Last mount time: Mon Oct 5 00:58:56 2015

Last write time: Mon Oct 5 00:58:41 2015

Mount count: 1

Maximum mount count: -1

Last checked: Mon Oct 5 00:58:41 2015

Check interval: 0 ()

Lifetime writes: 5938 MB

Reserved blocks uid: 0 (user root)

Reserved blocks gid: 0 (group root)

First inode: 11

Inode size: 256

Required extra isize: 28

Desired extra isize: 28

Default directory hash: half_md4

Directory Hash Seed: 37b6421d-4697-4ff5-a68e-4a1e1ea81c0e

Journal backup: inode blocks

linux自动挂载文件修复工具,Linux FSCK自动修复文件系统相关推荐

  1. linux自动挂载文件修复,Linux文件系统管理 开机自动挂载及fstab文件修复

    概述 开机自动挂载及fstab文件修复 开机自动挂载 实现开机后自动挂载,就需要修改系统的自动挂载文件 /etc/fstab.因为系统就是依赖这个文件决定启动时加载的文件系统的. 通过vi 打开/et ...

  2. linux 文件修复工具,Linux环境下几个好用的文件恢复工具

    昨日看到了相关的文件恢复工具的介绍,多多少少感觉不怎么全面.搜索了一下,还真不少,列出来共享一下前人的成果: 1.testdisk Partition scanner and disk recover ...

  3. linux u盘启动修复工具,Linux系统专用U盘启动盘制作工具YUMI2.0.4.7免费版

    软件大小: 1.7 MB 软件语言: 简体中文 大家都知道我们装系统一般用的U盘启动盘制作工具都是基于win系统的,如果你要装linux系统比如ubuntu之类的系统的话难道还是要买光盘来刻录吗?当然 ...

  4. linux安装压缩文件的工具,Linux上安装rar解压工具

    一.widonds下打包rar文件并上传 yum install lrzsz rz test.rar 二.下载并安装rar软件 2.1 下载 mkdir -p /home/oldboy/tools c ...

  5. ubuntu linux 自动挂载分区 硬盘 文件 无权限 Permission denied

    快速方法:重新格式化硬盘 ubuntu新硬盘挂载及格式化NTFS - CodeAntenna 如果还是无法解决的话,请再参考下面步骤 配置/etc/fstab实现自动挂载且所有用户均有权限 背景:为了 ...

  6. 【转载】Linux命令-自动挂载文件/etc/fstab功能详解[转]

    博客园 首页 新随笔 联系 订阅 管理 随笔 - 322  文章 - 0  评论 - 19 Linux命令-自动挂载文件/etc/fstab功能详解[转]     一./etc/fstab文件的作用 ...

  7. linux 配置自动挂载,配置Linux自动挂载

    使用mount命令来挂载硬件,在Linux重启后这些挂载信息会丢失,因此对应磁盘这类硬件,需要配置自动挂载来保证系统重启时进行自动挂载. 自动挂载信息保存在文件/etc/fstab文件中 查看该文件的 ...

  8. linux u盘分区 mdev 卸载问题,迅为开发板最小Linux自动挂载TF卡/U盘等存储设备

    原标题:迅为开发板最小Linux自动挂载TF卡/U盘等存储设备 本文转自迅为论坛:http://www.topeetboard.com 通过 mdev 工具实现 U 盘和 SD/TF 卡的自动挂载步骤 ...

  9. linux常用命令linux自动挂载WinXP系统下的分区

    1 终端使用命令挂载和泄载WinXP系统的分区      >> cd /mnt      >> mkdir win32d      >> mount /dev/hd ...

最新文章

  1. git 使用笔记 oschina ,mac
  2. C语言 (条件编译#ifdef、#ifndef) (#if 常量,#if 1,#if 0)的用法
  3. 微电子所在阻变存储器研究领域取得新进展
  4. Python爬虫基础:简单的爬虫入门示例(urllib库)
  5. 【IEEE出版】计算机多主题征稿,ICBASE 2020诚邀您投稿参会!
  6. EF CodeFirst下的自动迁移
  7. 网页宽高clientWidth clientHeight获得数值不对的问题
  8. ubuntu保护眼睛的设置
  9. 报名软件批次分类code不能为空_为什么金蝶入库单保存时提示批号不能为空
  10. 矩阵论笔记(七)——矩阵的微分和积分
  11. win10玩不了星际战甲怎么办?
  12. 2019北邮计算机机试
  13. pg与msql的数据库调研对比分析
  14. Codeforce 1335C - Two Teams Composing 统计技能种类数量+统计同一技能最大数量
  15. 多应用多平台支付模块设计-基础模块开篇
  16. MFC详解显示BMP格式图片
  17. 力扣 leetcode 1046. 最后一块石头的重量 (python)
  18. 51单片机(三)数码管(超详细、必会!)
  19. zoj1025 dp(呃。。)
  20. 腾讯AI Lab「王者绝悟」亮相世界人工智能大会,展现「AI+游戏」全新可能

热门文章

  1. 短视频舆情监控与应对
  2. 【python笔记九】字典创建、字典增删改查、字典常用操作
  3. JavaWEB笔记13 jQuery介绍及常用操作
  4. 服务器里面为什么有的信号好低,为什么同一个地方手机信号却不同?带你揭开手机信号的神秘面纱...
  5. 大数据 就业 缺口_大数据专业就业前景 人才需求缺口大 今年增了24倍
  6. 【大学物理·光学】光栅衍射
  7. 应急响应----第三方服务
  8. “sample”, “batch”, “epoch” 分别是什么?
  9. 0基础如何自学Java(从入门到精通)
  10. linux安装FFMPEG库