linux下的文件系统修复(代码片段)

jks212454 jks212454     2023-01-06     656

关键词:

一、进行磁盘分区

[root@node1 ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition number (3-128, default 3): 
First sector (16779264-41943006, default 16779264): 
Last sector, +sectors or +sizeK,M,G,T,P (16779264-41943006, default 41943006): +2G

Created a new partition 3 of type 'Linux filesystem' and of size 2 GiB.

Command (m for help): print
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 054D4516-ACE2-4C1A-BB38-1B93407B26A9

Device        Start      End  Sectors Size Type
/dev/sdb1      2048 12584959 12582912   6G Linux filesystem
/dev/sdb2  12584960 16779263  4194304   2G Linux filesystem
/dev/sdb3  16779264 20973567  4194304   2G Linux filesystem

Command (m for help): w
The partition table has been altered.
Syncing disks.

[root@node1 ~]# 

二、格式成xfs文件系统

1.查看分区

[root@node1 ~]# ll /dev/sdb3
brw-rw---- 1 root disk 8, 19 Sep 24 11:13 /dev/sdb3
[root@node1 ~]# 

2.格式化分区

[root@node1 ~]# mkfs.xfs /dev/sdb3
meta-data=/dev/sdb3              isize=512    agcount=4, agsize=131072 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@node1 ~]# 

三、挂载分区

1.查看分区的uuid

UUID="c4477c1b-5ce7-4257-a44f-5e43e1d2a18e"

2.将挂载信息写入/etc/fstab

# 
# /etc/fstab
# Created by anaconda on Fri Mar 19 22:21:55 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=b7190d80-906f-4b9d-9ab4-5a503ecaea2c /                       xfs     defaults        0 0
UUID=525a30a7-d484-4ed5-9f38-f827f54e29ff /boot                   xfs     defaults        0 0
UUID=e6cf8733-5eec-4942-9429-c3e9087b6ff0 swap                    swap    defaults        0 0
UUID="deff8218-3389-4245-a6bf-1716010fd6d4" /mnt/lv01 xfs   defaults        0 0
UUID=7b7937af-408b-4370-9bd9-baa0cb5d1c6b swap swap defaults 0 0
UUID="c4477c1b-5ce7-4257-a44f-5e43e1d2a18e" /mnt/vdb3 xfs defaults 0 0  

3.挂载分区

[root@node1 ~]# mount -a
[root@node1 ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               970M     0  970M   0% /dev
tmpfs                  984M     0  984M   0% /dev/shm
tmpfs                  984M  9.4M  974M   1% /run
tmpfs                  984M     0  984M   0% /sys/fs/cgroup
/dev/nvme0n1p3          18G   11G  7.3G  59% /
/dev/mapper/vg01-lv01  7.0G   83M  7.0G   2% /mnt/lv01
/dev/nvme0n1p1         495M  140M  356M  29% /boot
overlay                 18G   11G  7.3G  59% /var/lib/docker/overlay2/3851b60316c4c9b3d888c4e6133589bee2882b3e231cf2c4d9ff42eca7a4a390/merged
overlay                 18G   11G  7.3G  59% /var/lib/docker/overlay2/8c7e59c24a0b2648c82f41eeddba522e58e06c6809ff702f641f6377b60e8d1f/merged
tmpfs                  197M  4.0K  197M   1% /run/user/0
/dev/sdb3              2.0G   47M  2.0G   3% /mnt/vdb3

四、破坏文件

1.向/mnt/vdn3目录中写入文件

[root@node1 ~]# cp -a /etc/passwd /etc/profile /mnt/vdb3/
[root@node1 ~]# ls /mnt/vdb3/
passwd  profile
[root@node1 ~]#

2.卸载/mnt/vdb3/文件夹报错处理

[root@node1 ~]# umount /dev/sdb3 
umount: /mnt/vdb3: target is busy.


[root@node1 ~]# fuser -m /dev/sdb3
/dev/sdb3:           36728
[root@node1 ~]# ps aux |grep 36728
root      36728  0.0  0.1  45796  3908 ?        Ss   11:08   0:00 /usr/libexec/openssh/sftp-server
root      48587  0.0  0.0  12112   976 pts/0    R+   11:37   0:00 grep --color=auto 36728

[root@node1 ~]# kill -9 36728
[root@node1 ~]# ps aux |grep 36728
root      75342  0.0  0.0  12112  1068 pts/0    R+   13:00   0:00 grep --color=auto 36728
[root@node1 ~]# 

3.卸载分区,破坏分区

[root@node1 ~]# dd if=/dev/zero of=/dev/sdb3 bs=10k count=1 
1+0 records in
1+0 records out
10240 bytes (10 kB, 10 KiB) copied, 0.00211146 s, 4.8 MB/s

4.挂载分区报错

[root@node1 ~]# mount -a
mount: /mnt/vdb3: can't find UUID="c4477c1b-5ce7-4257-a44f-5e43e1d2a18e".
[root@node1 ~]# 

五、修复分区

[root@node1 ~]# xfs_repair /dev/sdb3
Phase 1 - find and verify superblock...
bad primary superblock - bad magic number !!!

attempting to find secondary superblock...
.found candidate secondary superblock...
verified secondary superblock...
writing modified primary superblock
sb realtime bitmap inode 18446744073709551615 (NULLFSINO) inconsistent with calculated value 129
resetting superblock realtime bitmap ino pointer to 129
sb realtime summary inode 18446744073709551615 (NULLFSINO) inconsistent with calculated value 130
resetting superblock realtime summary ino pointer to 130
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
Metadata CRC error detected at 0x56526b345b72, xfs_agf block 0x1/0x200
Metadata CRC error detected at 0x56526b372862, xfs_agi block 0x2/0x200
bad magic # 0x0 for agf 0
bad version # 0 for agf 0
bad length 0 for agf 0, should be 131072
bad uuid 00000000-0000-0000-0000-000000000000 for agf 0
bad magic # 0x0 for agi 0
bad version # 0 for agi 0
bad length # 0 for agi 0, should be 131072
bad uuid 00000000-0000-0000-0000-000000000000 for agi 0
reset bad agf for ag 0
reset bad agi for ag 0
bad agbno 0 for btbno root, agno 0
bad agbno 0 for btbcnt root, agno 0
bad agbno 0 for refcntbt root, agno 0
bad agbno 0 for inobt root, agno 0
bad agbno 0 for finobt root, agno 0
agi unlinked bucket 0 is 0 in ag 0 (inode=0)
agi unlinked bucket 1 is 0 in ag 0 (inode=0)
agi unlinked bucket 2 is 0 in ag 0 (inode=0)
agi unlinked bucket 3 is 0 in ag 0 (inode=0)
agi unlinked bucket 4 is 0 in ag 0 (inode=0)
agi unlinked bucket 5 is 0 in ag 0 (inode=0)
agi unlinked bucket 6 is 0 in ag 0 (inode=0)
agi unlinked bucket 7 is 0 in ag 0 (inode=0)
agi unlinked bucket 8 is 0 in ag 0 (inode=0)
agi unlinked bucket 9 is 0 in ag 0 (inode=0)
agi unlinked bucket 10 is 0 in ag 0 (inode=0)
agi unlinked bucket 11 is 0 in ag 0 (inode=0)
agi unlinked bucket 12 is 0 in ag 0 (inode=0)
agi unlinked bucket 13 is 0 in ag 0 (inode=0)
agi unlinked bucket 14 is 0 in ag 0 (inode=0)
agi unlinked bucket 15 is 0 in ag 0 (inode=0)
agi unlinked bucket 16 is 0 in ag 0 (inode=0)
agi unlinked bucket 17 is 0 in ag 0 (inode=0)
agi unlinked bucket 18 is 0 in ag 0 (inode=0)
agi unlinked bucket 19 is 0 in ag 0 (inode=0)
agi unlinked bucket 20 is 0 in ag 0 (inode=0)
agi unlinked bucket 21 is 0 in ag 0 (inode=0)
agi unlinked bucket 22 is 0 in ag 0 (inode=0)
agi unlinked bucket 23 is 0 in ag 0 (inode=0)
agi unlinked bucket 24 is 0 in ag 0 (inode=0)
agi unlinked bucket 25 is 0 in ag 0 (inode=0)
agi unlinked bucket 26 is 0 in ag 0 (inode=0)
agi unlinked bucket 27 is 0 in ag 0 (inode=0)
agi unlinked bucket 28 is 0 in ag 0 (inode=0)
agi unlinked bucket 29 is 0 in ag 0 (inode=0)
agi unlinked bucket 30 is 0 in ag 0 (inode=0)
agi unlinked bucket 31 is 0 in ag 0 (inode=0)
agi unlinked bucket 32 is 0 in ag 0 (inode=0)
agi unlinked bucket 33 is 0 in ag 0 (inode=0)
agi unlinked bucket 34 is 0 in ag 0 (inode=0)
agi unlinked bucket 35 is 0 in ag 0 (inode=0)
agi unlinked bucket 36 is 0 in ag 0 (inode=0)
agi unlinked bucket 37 is 0 in ag 0 (inode=0)
agi unlinked bucket 38 is 0 in ag 0 (inode=0)
agi unlinked bucket 39 is 0 in ag 0 (inode=0)
agi unlinked bucket 40 is 0 in ag 0 (inode=0)
agi unlinked bucket 41 is 0 in ag 0 (inode=0)
agi unlinked bucket 42 is 0 in ag 0 (inode=0)
agi unlinked bucket 43 is 0 in ag 0 (inode=0)
agi unlinked bucket 44 is 0 in ag 0 (inode=0)
agi unlinked bucket 45 is 0 in ag 0 (inode=0)
agi unlinked bucket 46 is 0 in ag 0 (inode=0)
agi unlinked bucket 47 is 0 in ag 0 (inode=0)
agi unlinked bucket 48 is 0 in ag 0 (inode=0)
agi unlinked bucket 49 is 0 in ag 0 (inode=0)
agi unlinked bucket 50 is 0 in ag 0 (inode=0)
agi unlinked bucket 51 is 0 in ag 0 (inode=0)
agi unlinked bucket 52 is 0 in ag 0 (inode=0)
agi unlinked bucket 53 is 0 in ag 0 (inode=0)
agi unlinked bucket 54 is 0 in ag 0 (inode=0)
agi unlinked bucket 55 is 0 in ag 0 (inode=0)
agi unlinked bucket 56 is 0 in ag 0 (inode=0)
agi unlinked bucket 57 is 0 in ag 0 (inode=0)
agi unlinked bucket 58 is 0 in ag 0 (inode=0)
agi unlinked bucket 59 is 0 in ag 0 (inode=0)
agi unlinked bucket 60 is 0 in ag 0 (inode=0)
agi unlinked bucket 61 is 0 in ag 0 (inode=0)
agi unlinked bucket 62 is 0 in ag 0 (inode=0)
agi unlinked bucket 63 is 0 in ag 0 (inode=0)
sb_fdblocks 521704, counted 390638
root inode chunk not found
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
correcting imap
correcting imap
        - agno = 1
        - agno = 2
        - agno = 3
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
Phase 5 - rebuild AG headers and trees...
        - reset superblock...
Phase 6 - check inode connectivity...
        - resetting contents of realtime bitmap and summary inodes
        - traversing filesystem ...
        - traversal finished ...
        - moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
Note - stripe unit (0) and width (0) were copied from a backup superblock.
Please reset with mount -o sunit=<value>,swidth=<value> if necessary
done
[root@node1 ~]# 

六、检查文件状态

1.重新挂载分区

[root@node1 ~]# mount -a
[root@node1 ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               970M  1.0M  969M   1% /dev
tmpfs                  984M     0  984M   0% /dev/shm
tmpfs                  984M   22M  962M   3% /run
tmpfs                  984M     0  984M   0% /sys/fs/cgroup
/dev/nvme0n1p3          18G   11G  7.3G  59% /
/dev/mapper/vg01-lv01  7.0G   83M  7.0G   2% /mnt/lv01
/dev/nvme0n1p1         495M  140M  356M  29% /boot
overlay                 18G   11G  7.3G  59% /var/lib/docker/overlay2/3851b60316c4c9b3d888c4e6133589bee2882b3e231cf2c4d9ff42eca7a4a390/merged
overlay                 18G   11G  7.3G  59% /var/lib/docker/overlay2/8c7e59c24a0b2648c82f41eeddba522e58e06c6809ff702f641f6377b60e8d1f/merged
tmpfs                  197M  4.0K  197M   1% /run/user/0
/dev/sdb3              2.0G   47M  2.0G   3% /mnt/vdb3
[root@node1 ~]# 

2.查看文件

[root@node1 ~]# ls /mnt/vdb3/
passwd  profile
[root@node1 ~]# cat passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync

3.ext4文件系统修复

[root@node1 ~]# fsck -v /dev/sdb3

linux下的基础io(代码片段)

目录一.C语言文件IO操作(库函数)1.打开文件fopen 2.写入二进制文件fwrite和读取二进制文件fread3.关闭文件fclose 二.系统文件IO(系统调用接口)1.打开文件open系统调用2.读文件read和写文件write3.关闭文件close  三.文件描述符1.系统管理... 查看详情

linux下的stratis高级存储(代码片段)

Linux下的stratis高级存储一、stratis存储介绍1.stratis存储简介2.stratis的架构图3.stratis存储的高级特性4.stratis的专业术语5.stratis支持的设备二、配置stratis精简池1.系统版本2.安装stratis包3.开启服务4.创建精简池5.查看所有精简池信息6.查... 查看详情

13linux下的基础io(代码片段)

不同操作系统所暴露出的接口是不同的,因此Linux下的一些系统调用接口是无法移植到Windows下的。文章目录一、C语言中的文件接口二、系统文件I/O2.1.系统调用接口open2.2.文件描述符fd(filedescriptor)2.3.补充内容--函数... 查看详情

linux下的硬链接和软链接(代码片段)

Linux下的硬链接和软链接一、系统及ln版本二、硬链接1.创建目录及文件2.创建链接文件3.查看链接文件4.删除源文件,链接文件不受影响三、软链接1.创建目录及文件2.创建软链接文件3.查看链接文件4.删除源文件,测试打软... 查看详情

在linux系统下统计当前文件夹下的文件个数目录个数(代码片段)

1、统计当前文件夹下文件的个数,包括子文件夹里的ls-lR|grep"^-"|wc-l如下图:2、统计文件夹下目录的个数,包括子文件夹里的ls-lR|grep"^d"|wc-l如下图:3、统计当前文件夹下文件的个数ls-l|grep"^-"|wc-l如下图:4、统计当前文件夹下目... 查看详情

linux系统的grub.cfg文件损坏修复(代码片段)

Linux系统的grub.cfg文件损坏修复一、grub.cfg文件介绍1.grub.cfg文件位置2.grub.cfg文件作用3.系统启动流程介绍二、grub.cfg文件损坏,系统开机启动界面三、修复步骤1.指定/boot目录所在分区2.加载内核文件,并以只读方式挂载根... 查看详情

linux下的目录结构(代码片段)

文章目录Linux系统的目录结构Linux下主要目录介绍相对路径和绝对路径Linux命令提示符解析Linux系统的目录结构Linux系统的目录结构是一个倒立的树状结构,根目录用/表示,对比windows目录结构理解linux的目录结构。Linux下主要目... 查看详情

linux下的目录结构(代码片段)

文章目录Linux系统的目录结构Linux下主要目录介绍相对路径和绝对路径Linux命令提示符解析Linux系统的目录结构Linux系统的目录结构是一个倒立的树状结构,根目录用/表示,对比windows目录结构理解linux的目录结构。Linux下主要目... 查看详情

关于linux下的文件扩展名问题(代码片段)

Windows系统根据文件的扩展名来区分文件类型,Linux是通过查看文件头部信息来确定文件类型,与文件的名字无关。例如在Linux下,file.txt、file.tar.gz虽然用不同的程序打开,但放在Linux文件类型中来看,算是普通... 查看详情

linux下的stratis高级存储(代码片段)

(Linux下的stratis高级存储)一、stratis存储介绍1.stratis存储简介2.stratis的架构图3.stratis存储的高级特性4.stratis的专业术语blockdev:这是一个块设备,例如磁盘或磁盘分区Pool池:一个池由一个或多个具有固定总大小的块设备组成,其大小... 查看详情

linux下的文件系统(代码片段)

(Linux下的文件系统)一、tar的用法-c建议归档-f指定归档文件名-x解压文件-t列出归档内容-z调用gzip压缩工具,进行归档压缩-j调用bzip2压缩工具,进行归档压缩-v显示操作进行的所有进程-C将文件解压到指定目录下二、文件的归档1.... 查看详情

linux篇|磁盘存储和文件系统(代码片段)

磁盘存储和文件系统分区文件系统挂载设备管理虚拟内存RAID管理LVM管理我们从一个新硬盘安装到Linux系统,期间的配置,一直到正常使用的角度,来学习磁盘存储和文件系统,过程如下:选择分区类型(MBR或GPT)-->创建分区-->... 查看详情

linux批量操作文件命令总结(代码片段)

总结下常用的linux命令,linux下的命令组合着实强大。有时候即便是使用的windows系统也可以在Dos窗口下使用linux下的一些命令工具,完成一些文本日常处理。  查找所有文件find./-name"*.log"查找某一后缀的文件并删除f... 查看详情

linux系统的磁盘管理(代码片段)

...分区信息2.查看指定设备信息3.对新磁盘进行分区4.格式化文件系统四、gdisk工具使用1.gdisk进行分区2.查看sdb磁盘下分区情况五、挂载文件系统六、查看文件系统信息七、fsck文件系统修复工具1.fsck使用 查看详情

操作系统实验报告文件系统(代码片段)

...Ubuntu20.10、gcc编译器三、实验内容1、浏览Linux系统根目录下的子目录,熟悉每个目录的文件和功能;2、设计程序模拟实现Linux文件系统的简单I/O流操 查看详情

android系统下的文件权限(代码片段)

Android继承了Linux中的文件权限机制,系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。文件或目录的访问权限分为只读(r)、只写(w)和可执行(x)三种方式。有三种... 查看详情

linux删除指定目录下的指定文件(代码片段)

Linux删除指定目录下的指定文件删除lib目录下的所有与rabbitmq相关的文件和目录find/usr/lib/-name"rabbitmq"|xargsrm-rf删除根目录下的所有与rabbitmq相关的文件和目录find/-name"rabbitmq"|xargsrm-rf 查看详情

系统引导修复,grub2下的各种骚作

...是要找到vmlinuz开头和initramfs开头的文件目录,一般在/boot下的分区下grub>setroot=(hd0,gpt1) #设置根目录位置,(hd0,gpt1)是我根据上一步找到的文件所在分区(如果是U盘启动:如果U盘有镜像选U盘)grub>ls/         &nbs... 查看详情