如何扫描和修复 Linux 磁盘错误
在本文中,将学习如何使用 fsck 和 xfs_repair 命令修复 Linux 磁盘错误。 |
什么是FSCK?
fsck
(文件系统一致性检查)是用于检查Linux操作系统文件系统一致性的工具。
列出 Linux 磁盘分区和类型:
首先,需要确定 Linux 系统的磁盘分区、它们各自的文件系统以及挂载点。
下面使用lsblk
命令列出磁盘明、文件系统类型、挂载点:
[root@localhost ~]# lsblk -o NAME,FSTYPE,MOUNTPOINT NAME FSTYPE MOUNTPOINT sda sdb sdc sdd sr0 iso9660 nvme0n1 ├─nvme0n1p1 ext4 /boot └─nvme0n1p2 LVM2_member ├─cl-root xfs /└─cl-swap swap [SWAP]
获取 Linux 磁盘的上次扫描时间
你可以使用下命令找到 Ext2,Ext3,Ext4 类型分区的最后一次扫描时间。
[root@localhost ~]# tune2fs -l /dev/nvme0n1p1 |grep checked Last checked: Wed Sep 1 15:42:11 2021
扫描和修复 Ext4 类型的磁盘分区
扫描 Linux 磁盘分区,可以使用 fsck
(文件系统一致性检查)命令。但是在检查和修复它之前,需要卸载该分区。下面实例中,我们卸载的是/boot分区。
[root@localhost ~]# umount /dev/nvme0n1p1
卸载成功后,使用fsck.ext4
检查/dev/nvme0n1p1分区
[root@localhost ~]# fsck.ext4 /dev/nvme0n1p1 e2fsck 1.44.3 (10-July-2018) /dev/nvme0n1p1: clean, 311/65536 files, 55546/262144 blocks
检查并修复您的 Linux 磁盘后,在其各自的挂载点再次挂载分区。执行以下命令用来挂载 /etc/fstab 配置文件中列出的所有磁盘分区。
[root@localhost ~]# mount -a
在 Linux 启动时启用 Ext4 磁盘分区扫描
在系统启动时启用磁盘检查。你必须修改该磁盘分区的 Mount Count
参数。
[root@localhost ~]# tune2fs -c 1 /dev/nvme0n1p1 tune2fs 1.44.3 (10-July-2018) Setting maximal mount count to 1
重启系统之后,fsck命令现在会在启动时检查你的 Ext4 磁盘分区。
[root@localhost ~]# reboot
重新启动后,获取磁盘分区的Last Checked
值,现在它会显示 Linux 上次启动的时间。
[root@localhost ~]# tune2fs -l /dev/nvme0n1p1 |grep checked Last checked: Tue Sep 14 11:08:11 2021
恢复Mount Count
参数的默认值,否则它会在每次系统启动时继续执行磁盘扫描。
[root@localhost ~]# tune2fs -c -1 /dev/nvme0n1p1 tune2fs 1.44.3 (10-July-2018) Setting maximal mount count to -1
什么是 XFS_REPAIR?
xfs_repair 实用程序具有高度可扩展性,旨在有效修复具有许多 inode 且非常大的文件系统。与其他 Linux 文件系统不同,xfs_repair 不会在启动时运行,即使 XFS 文件系统没有完全卸载。如果发生不干净的卸载,xfs_repair 只会在挂载时重放日志,确保文件系统一致。
扫描和修复 XFS 类型的磁盘分区
XFS 类型的磁盘分区有自己的一组命令,与 Ext4 有点不同。在检查其一致性之前,必须卸载 XFS 磁盘分区。
[root@localhost ~]# umount /dev/sda1
我们有 xfs_repair 命令用于检查和修复磁盘错误。使用xfs_repair 命令的-n
选项来检查磁盘错误。
[root@localhost ~]# xfs_repair -n /dev/sda1 Phase 1 - find and verify superblock... Phase 2 - using internal log- zero log...- scan filesystem freespace and inode maps...- found root inode chunk Phase 3 - for each AG...- scan (but don't clear) agi unlinked lists...- process known inodes and perform inode discovery...- agno = 0- 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 No modify flag set, skipping phase 5 Phase 6 - check inode connectivity...- traversing filesystem ...- traversal finished ...- moving disconnected inodes to lost+found ... Phase 7 - verify link counts... No modify flag set, skipping filesystem flush and exiting.
上述命令只执行磁盘检查,不尝试修复任何错误。现在,执行不带 -n 选项的 xfs_repair 命令,它将执行 Linux 磁盘分区的扫描和修复。
[root@localhost ~]# xfs_repair /dev/sda1 Phase 1 - find and verify superblock... Phase 2 - using internal log- zero log...- scan filesystem freespace and inode maps...- found root inode chunk Phase 3 - for each AG...- scan and clear agi unlinked lists...- process known inodes and perform inode discovery...- agno = 0- 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... done
下面诚信挂载分区
[root@localhost ~]# mount /dev/sda1 /data/
在 Linux 启动时启用 XFS 磁盘分区扫描
在某些情况下,如果 Linux 操作系统正在使用磁盘分区,则无法卸载磁盘分区。出于这个原因,您可能不得不将磁盘检查推迟到下一次系统启动。
要使 xfs_repair 命令能够在 Linux 启动时运行,请在 GRUB 菜单内核命令的末尾添加“fsck.mode=force fsck.repair=yes”。
查看系统日志以验证磁盘修复命令的执行情况。
[root@localhost ~]# journalctl |grep systemd-fsck
要在启动时永久启用磁盘检查,您必须在 GRUB 配置文件中添加“fsck.mode=force fsck.repair=yes”。
下面编辑grub配置文件,找到 GRUB_CMDLINE_LINUX
参数并在行尾附加fsck.mode=force fsck.repair=yes。
[root@localhost ~]# cat /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap fsck.mode=force fsck.repair=yes" GRUB_DISABLE_RECOVERY="true" GRUB_ENABLE_BLSCFG=true
根据新参数重新生成 GRUB 菜单配置。
[root@localhost ~]# grub2-mkconfig
然后重启系统:
# reboot
总结
到目前为止已经成功扫描和修复XFS、Ext4文件系统了。
如何扫描和修复 Linux 磁盘错误相关推荐
- 如何修复带有问号错误的 Mac 文件夹
启动 Mac 时,您是否一直看到带有问号的文件夹?这表明计算机无法在启动盘上找到操作系统.如果 Mac 在启动时一直显示问号文件夹,这里是您可以用来修复 Mac 的所有故障排除步骤. 有时,您的 Ma ...
- Linux 磁盘坏块修复处理(错误:read error: Input/output error)
当磁盘出现坏块时,你对所关联的文件进行读取时,一般会出现 read error: Input/output error 这样的错误. 反过来讲,当你看到 read error: Input/outpu ...
- gnome硬盘分析_三款基于GUI和终端的实用Linux磁盘扫描工具
[51CTO.com快译]扫描计算机硬盘主要出于两个原因:一个原因是分析硬盘,找出文件系统的不一致或错误.引起这些问题的可能因素包括:持续的系统崩溃,关键的系统软件关闭不当,更主要的是破坏性程序(比如 ...
- linux磁盘坏块 cp报错,Linux磁盘坏道的检测及修复
磁盘坏道,是所有人都不希望遇到的事情-- 磁盘坏道,轻则磁盘性能下降,重则系统启动失败,数据丢失.所以我们要时刻关注磁盘健康状况,及时备份重要数据. 什么是S.M.A.R.T? 全称为 Self-Mo ...
- linux全盘扫描,3个有用的基于GUI和终端的Linux磁盘扫描工具
扫描计算机硬盘主要有两个原因:一个是检查文件系统不一致或错误,这可能是由于持续的系统崩溃,关键系统软件关闭不当,更显着的是由于破坏性程序(如恶意软件,病毒等). 而另一个是分析其物理条件,在这里我们可 ...
- php 文件写入磁盘错误,Linux磁盘读写故障的通常处理流程
问题 使用Linux作为服务器操作系统的时候 维护少不需要重新启动的优势非常明显 但有时候会遇到莫明其妙的故障 例如数据无法写入,执行某程序报错 这个时候建议检查一下,是否是磁盘子系统的故障 例如SC ...
- Linux磁盘相关-分区与修复
转自:http://balistardut.github.io/2016/01/30/Linux%E7%A3%81%E7%9B%98%E7%9B%B8%E5%85%B3-%E5%88%86%E5%8C ...
- php 检查磁盘,window_Win7系统中关闭检查磁盘和扫描并修复提示的方法, Win7系统关闭“检查磁盘r - phpStudy...
Win7系统中关闭检查磁盘和扫描并修复提示的方法 Win7系统关闭"检查磁盘"和"扫描并修复"提示的技巧分享到这里,操作系统过程中会遇到"检查磁盘&q ...
- 扫描到电脑计算机访问错误,Win10计算机怎么扫描修复磁盘驱动器错误?
Win10计算机怎么扫描修复磁盘驱动器错误?敝帚自珍,自己的东西都是好的.没事别自寻烦恼,系统任何作为都会引起磁盘读写.只要系统不出故障不要画蛇添足.关于扫描修复磁盘驱动器错误的问题,默认安装的华Wi ...
最新文章
- Linux环境下使用Mysql连接外部机器
- android 键盘搜索按钮事件,Android EditText 软键盘搜索事件
- 《LeetCode力扣练习》第31题 下一个排列 Java
- spring boot配置文件【application.yml】常见问题之一,未添加空格
- 从Java到Ruby——我的最近一次技术转型
- java时间日期类(Date、DateFormat、Calendar)学习
- JAVA 模拟瞬间高并发
- Android 学习笔记之Volley(七)实现Json数据加载和解析...
- 1486mysql,mysql_error.md
- 杂记 什么是ABC记谱法
- 【数学模拟卷总结】2023李林六套卷数学二第二套
- 利用googlemap查询经纬度
- 记录cesium移动模型绘制轨迹
- html电子印章,挑战电子印章系统 HTML版
- 计算机故障图片,电脑提示损坏的图像该如何处理?
- vue开发公众号 在钩子里面处理登录获取code
- 网络摄像头无插件直播H265编码视频播放器EasyPlayer网页播放器不能播放怎么处理?
- 失败者的人性弱点,来看看你中了几点
- 高级数据结构之赫夫曼树
- Oracle数据库常用SQL语句查询
热门文章
- 哈哈哈,这个教人写出烂代码的项目在 GitHub 上火了...
- Nacos源码系列——第三章(全网最经典的Nacos集群源码主线剖析)
- 爬虫之 xpath的节点关系
- JSP第二次作业_5小题
- 多项式加法C语言_只愿与一人十指紧扣_新浪博客
- C语言,统计0~9出现次数。_只愿与一人十指紧扣_新浪博客
- 【直播回顾】蚂蚁金服高级开发工程师萧恺:IDEA 插件开发入门教程
- Zabbix 3.2.6 通过SNMP和iDRAC监控DELL服务器
- 阿里云云服务器Centos7部署JDK8+Nginx+Tomcat8+Mysql5.7
- Oracle的SQL语句