linux磁盘报错命令,linux 检查磁盘错误
解决Linux磁盘占用过多问题
·服务器出现异常,报错502
我们提供的服务有:成都网站建设、网站制作、微信公众号开发、网站优化、网站认证、固安ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的固安网站制作公司
·然后查看服务器发现服务器卡死
·这里服务器卡死我们强制重启服务器先进入服务器才能查看到问题所在
·进入之后首先用 df -h 命令查看磁盘使用情况
·如果看到有使用100%的那么就是这个磁盘满了,我们在查看那个东西占用了我们的磁盘,在服务器查找100M以上的大文件看看有哪些 使用 find / -size +100M |xargs ls -lh 命令查找 发现有个日志文件居然有22G,把他删掉,再次df -h 查看 发现仅仅降低了1%,那么我们再删其他没用的大文件,删了之后发现还是没有用,查看进程 ps -ef 查看有没有进程堵塞的,果然查出来了,nginx有三个堵塞进程占用我15G 使用 kill -9 进程号 删除对应的进程号,到了这里磁盘使用率已经降下来了,那么我们再去查看回收站,删除回收站的东西。这就差不多了,再次 df -h 查看
linux操作系统故障处理-ext4文件系统超级块“can't read superblock”损坏修复
前几天在广州参加植物病毒学会议,一边听会一边开着TeamViewer远程连接实验室装有linux系统的工作站跑程序干活。有一天下午发现TeamViewer显示服务器离线,原来是因为施工导致停电。Anyway, 不重要,发微信让小青儿给我重启服务器,结果发现重启不了,大概就是这个界面。
怎么着都进不去图形界面,简而言之,工作站重启不了了。索性不管了,好好听报告,心想回到福州再收拾工作站。回到福州第一件事就是坐下来重启工作站,发现无论怎么折腾都进不去系统。
虽然图形界面进不去,好在还能够在命令行下进行操作。当看到 /bioinfor ,这个存放目录的路径下啥都没有的时候,这可是我所有的数据啊!如果这个盘里的数据没了,各个合作者还不得把我手撕了。想到这里,冷汗差点下来了。
于是开始寻找解决方法。
首先得想办法进入系统,在反复地 sudo reboot 都无法进入系统之后,通过 df -h 也看不到/dev/sda(也就是挂载到/bioinfor路径的磁盘)信息。然后猜测是不是因为磁盘以及分区表之类出现了错误导致不能进入系统。通过 sudo vi /etc/fstab 将除了系统安装盘之外的所有硬盘的挂载信息全部注释掉,再 reboot , 这时候果然可以进入图形界面系统了。但依然看不到 /bioinfor 盘下的数据。能够开机就让我放心了很多。通过 gparted 工具,能够看到/dev/sda硬盘里used space大概是1.7T,还剩下1.9T左右,这就表示我的数据还在。试图通过 sudo umount /dev/sda 先取消挂载,再重新 sudo mount /dev/sda /bioinfor 挂载到/bioinfor路径,结果报错。
报错信息显示:
搜索网页发现,有一个哥们经历了跟我一样的遭遇, 意外断电造成mount挂载硬盘报错 。所以,这次事故是因为意外断电,基本实锤了。
但到底什么是superblock呢?
继续搜索,直到读到一篇技术文章 linux操作系统故障处理,ext4文件系统超级快损坏修复 。本文可以忽略,但这篇技术文章得认真读读。里面讲解了磁头,磁道,柱面,扇区,以及硬盘容量等等概念,以及最重要的inode和block,Superblock(超级块)概念。
既然报错提示Superblock出了问题,那我们就应该从这里入手。linux系统提供了一个磁盘命令 fsck 来尝试对设备进行修复。但可惜,用这个命令的时候,都会提醒你,应该安装最新的 fsck 工具包。
提示如下:
根据这篇文章 E2FSCK: how to handle the “metadata_csum” error by advancing the e2fsck version beyond default installed version 的提示,需要安装1.43X的 e2fsck , 安装方法小结如下。
检验一下是否更新成功:
能够看到已经更新到1.43.5版本。
安装完之后,开始对磁盘进行修复,命令如下:
一般都能修复完毕,然后可以再进行取消挂载或者重新挂载的操作。看到数据都还完好无缺地在电脑上,还处于后怕的我赶紧掏出移动硬盘进行原始数据的备份。
本次debug结束
这篇技术日志对读者可参考性并不高,是因为应用场合实在是少,(试想谁会天天断电呢),但还是有一些体会和感悟:
linux卸载磁盘提示umount: /PT5/Docker/overlay2: target is busy
在Linux系统下卸载设备时,经常会遇到“Device is busy”的提示,报错的原因通常是由于待卸载磁盘正在使用,导致无法直接卸载,需要降当前使用数据盘的进程杀掉,才能卸载。如果贸然强行删除,可能会导致数据丢失或设备损坏。需要使用fuser命令查找和删除占用的程序。
例如:无法卸载的设备为/dev/vdd1,运行以下命令:
PS: 如果bash在使用此磁盘,会发现bash退出了,新开bash 并再次查看fuser -mv /dev/vdd1
确认是否还有占用进程。
找到PID对应的进程或者服务,然后杀死或者停止相应服务即可。
此案例中即使使用上述所有操作删除占用的进程,但还是提示磁盘busy,使用kill去杀进程,发现进程号一直在变化,惊觉可能是某个服务进程一直在运行,使用fuser -m -v /dev/vdd1 去查看详细的进程信息,发现是docker服务一直在占用。
解决方案:停止docker服务
分享题目:linux磁盘报错命令,linux 检查磁盘错误
分享网址:http://cdiso.cn/article/dssjijc.html