IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    ext3/ext4 超级块修复

    惜分飞发表于 2016-11-12 11:57:16
    love 0

    联系:手机(+86 13429648788) QQ(107644445)QQ咨询惜分飞

    标题:ext3/ext4 超级块修复

    作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

    创建ext4文件系统

    [root@localhost ~]# mkfs.ext4 /dev/sdb1
    mke2fs 1.42.9 (28-Dec-2013)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    1310720 inodes, 5242624 blocks
    262131 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=2153775104
    160 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks: 
            32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
            4096000
    
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done   
    
    [root@localhost ~]# mkdir /sdb
    [root@localhost ~]# mount /dev/sdb1 /sdb
    [root@localhost ~]# df -h
    Filesystem           Size  Used Avail Use% Mounted on
    /dev/mapper/ol-root   36G  4.0G   32G  12% /
    devtmpfs             1.8G     0  1.8G   0% /dev
    tmpfs                1.8G     0  1.8G   0% /dev/shm
    tmpfs                1.8G  8.9M  1.8G   1% /run
    tmpfs                1.8G     0  1.8G   0% /sys/fs/cgroup
    /dev/sda1            497M  195M  303M  40% /boot
    tmpfs                369M     0  369M   0% /run/user/0
    /dev/sdb1             20G   45M   19G   1% /sdb
    

    准备测试数据

    [root@localhost sdb]# cd /etc/sysctl.d/
    [root@localhost sysctl.d]# ls
    99-sysctl.conf
    [root@localhost sysctl.d]# cp 99-sysctl.conf /sdb
    [root@localhost sysctl.d]# more 99-sysctl.conf 
    # System default settings live in /usr/lib/sysctl.d/00-system.conf.
    # To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file
    #
    # For more information, see sysctl.conf(5) and sysctl.d(5).
    

    破坏ext4文件系统

    [root@localhost ~]#  dd if=/dev/zero of=/dev/sdb1 bs=1024 count=5
    5+0 records in
    5+0 records out
    5120 bytes (5.1 kB) copied, 0.00270838 s, 1.9 MB/s
    [root@localhost ~]# mount /dev/sdb1 /sdb
    mount: unknown filesystem type '(null)'
    

    日志报错

    [ 8868.362628] sd 32:0:1:0: [sdb] Cache data unavailable
    [ 8868.362632] sd 32:0:1:0: [sdb] Assuming drive cache: write through
    [ 8868.363714]  sdb: sdb1
    [ 8868.390297] sd 32:0:1:0: [sdb] Cache data unavailable
    [ 8868.390301] sd 32:0:1:0: [sdb] Assuming drive cache: write through
    [ 8868.391462]  sdb: sdb1
    [ 8900.130143] EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: (null)
    [ 8900.130163] SELinux: initialized (dev sdb1, type ext4), uses xattr
    [ 8902.803966] sdb1: WRITE SAME failed. Manually zeroing.
    1
    fsck修复
    1
    [root@localhost ~]# fsck -t ext4 /dev/sdb1
    fsck from util-linux 2.23.2
    e2fsck 1.42.9 (28-Dec-2013)
    ext2fs_open2: Bad magic number in super-block
    fsck.ext4: Superblock invalid, trying backup blocks...
    /dev/sdb1 was not cleanly unmounted, check forced.
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    Free blocks count wrong for group #1 (31740, counted=31739).
    Fix<y>? yes
    Free blocks count wrong (5116302, counted=5116301).
    Fix<y>? yes
    Free inodes count wrong for group #0 (8181, counted=8180).
    Fix<y>? yes
    Free inodes count wrong (1310709, counted=1310708).
    Fix<y>? yes
    
    /dev/sdb1: ***** FILE SYSTEM WAS MODIFIED *****
    /dev/sdb1: 12/1310720 files (0.0% non-contiguous), 126323/5242624 blocks
    

    测试修复结果

    [root@localhost ~]# 
    [root@localhost ~]# 
    [root@localhost ~]# mount /dev/sdb1 /sdb
    [root@localhost ~]# df -h
    Filesystem           Size  Used Avail Use% Mounted on
    /dev/mapper/ol-root   36G  4.0G   32G  12% /
    devtmpfs             1.8G     0  1.8G   0% /dev
    tmpfs                1.8G     0  1.8G   0% /dev/shm
    tmpfs                1.8G  8.9M  1.8G   1% /run
    tmpfs                1.8G     0  1.8G   0% /sys/fs/cgroup
    /dev/sda1            497M  195M  303M  40% /boot
    tmpfs                369M     0  369M   0% /run/user/0
    /dev/sdb1             20G   45M   19G   1% /sdb
    [root@localhost ~]# cd /sdb
    [root@localhost sdb]# ls
    99-sysctl.conf  lost+found
    [root@localhost sdb]# more 99-sysctl.conf 
    # System default settings live in /usr/lib/sysctl.d/00-system.conf.
    # To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file
    #
    # For more information, see sysctl.conf(5) and sysctl.d(5).
    

    ext4文件系统修复

    [root@localhost ~]# mkfs.ext3 /dev/sdb1
    mke2fs 1.42.9 (28-Dec-2013)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    1310720 inodes, 5242624 blocks
    262131 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=4294967296
    160 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks: 
            32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
            4096000
    
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done   
    
    [root@localhost ~]# mount /dev/sdb1 /sdb
    [root@localhost ~]# df -h
    Filesystem           Size  Used Avail Use% Mounted on
    /dev/mapper/ol-root   36G  4.0G   32G  12% /
    devtmpfs             1.8G     0  1.8G   0% /dev
    tmpfs                1.8G     0  1.8G   0% /dev/shm
    tmpfs                1.8G  8.9M  1.8G   1% /run
    tmpfs                1.8G     0  1.8G   0% /sys/fs/cgroup
    /dev/sda1            497M  195M  303M  40% /boot
    tmpfs                369M     0  369M   0% /run/user/0
    /dev/sdb1             20G   45M   19G   1% /sdb
    [root@localhost ~]# dd if=/dev/zero of=/dev/sdb1 bs=1024 count=5
    5+0 records in
    5+0 records out
    5120 bytes (5.1 kB) copied, 0.0138915 s, 369 kB/s
    [root@localhost ~]# fsck -t ext3 /dev/sdb1
    fsck from util-linux 2.23.2
    e2fsck 1.42.9 (28-Dec-2013)
    ext2fs_open2: Bad magic number in super-block
    fsck.ext3: Superblock invalid, trying backup blocks...
    /dev/sdb1 was not cleanly unmounted, check forced.
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    
    /dev/sdb1: ***** FILE SYSTEM WAS MODIFIED *****
    /dev/sdb1: 11/1310720 files (0.0% non-contiguous), 126322/5242624 blocks
    [root@localhost ~]# mount /dev/sdb1 /sdb
    [root@localhost ~]# df -h
    Filesystem           Size  Used Avail Use% Mounted on
    /dev/mapper/ol-root   36G  4.0G   32G  12% /
    devtmpfs             1.8G     0  1.8G   0% /dev
    tmpfs                1.8G     0  1.8G   0% /dev/shm
    tmpfs                1.8G  8.9M  1.8G   1% /run
    tmpfs                1.8G     0  1.8G   0% /sys/fs/cgroup
    /dev/sda1            497M  195M  303M  40% /boot
    tmpfs                369M     0  369M   0% /run/user/0
    /dev/sdb1             20G   45M   19G   1% /sdb
    

    fsck修复危险性较大,建议先备份对应的分区(dd命令备份分区)然后再处理,有导致分区数据全部或者部分丢失的风险

    • 制作U盘刷EXADATA
    • Linux逻辑卷管理(LVM)
    • 记录一次rm -rf 删除数据文件异常恢复
    • DRBD安装配置说明
    • extundelete恢复Linux被删除文件
    • Liunx添加硬盘
    • 创建DBFS
    • 安装ORACLE db /tmp空间不足解决办法
    • linux 7(redhat,oracle linux,centos)中使用udev
    • mysql解锁
    • MySQL drop database恢复(恢复方法同样适用MySQL drop table,delete,truncate table)
    • [MySQL异常恢复]使用工具直接抽取MySQL数据字典


沪ICP备19023445号-2号
友情链接