ext3ext4 超级块修复

    xiaoxiao2021-12-14  27

    联系:手机(+86 13429648788) QQ(107644445)

    标题: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命令备份分区)然后再处理,有导致分区数据全部或者部分丢失的风险

    转载请注明原文地址: https://ju.6miu.com/read-970983.html

    最新回复(0)