做linux启动时写入硬盘报错,Linux磁盘读写故障的通常处理流程

问题

使用Linux作为服务器操作系统的时候

维护少不需要重新启动的优势非常明显

但有时候会遇到莫明其妙的故障

例如数据无法写入,执行某程序报错

这个时候建议检查一下,是否是磁盘子系统的故障

例如SCSI/IDE/SATA硬盘出现了坏扇区,例如SCSI卡热插拔插座接触不良等。

解决方案

1) 首先定位故障所在。

查看/var/log/message查看里边是否有磁盘的报错

例如如下的信息,就是磁盘错误:

Oct 23 10:22:58 vm3 kernel: EXT3-fs error (device ide0(3,5)): ext3_readdir: directory #719520 contains a hole at offset 898727936

Oct 23 10:22:58 vm3 kernel: attempt to access beyond end of device

Oct 23 10:22:58 vm3 kernel: 03:05: rw=0, want=969723216, limit=6144831

还可以执行dmesg,查看物理设备是否有报告SCSI IO error等错误信息

如果发现类似信息,则可以确定为磁盘子系统的故障。

还有时候也会遇到磁盘某些分区成为了只读分区,任何数据都无法写入

这是linux系统在挂载磁盘分区时候发生了错误,随即启动了“安全模式”

将分区挂载为readonly,即只读状态,以免更严重的损坏发生。

2) 确认为磁盘故障后,千万不要重新启动服务器。

这种情况下重新启动服务器是比较危险的,可能重启时候读取数据错误造成引导失败

系统就在也启动不了了。

首先通过mount命令和df命令,查看当前的分区情况。

确认有用的数据都放在哪些分区上,这些分区是否独立,是在第几块硬盘等,

为一会的具体修复甚至更换硬件做准备。

此时应尽快对关键数据做备份,如果挂载有两块磁盘,则可以直接向无故障的磁盘备份。

如果只有一块磁盘,可以向其他正常的分区备份(但是也有风险)

在只有一块磁盘的情况下,比较可靠的方式是通过scp直接复制远程的文件

这样不会在本地写入大量的备份数据,避免加速硬盘的崩溃。

但缺点是速度较慢。

还有开设共享通过samba映射等各种方式都可以备份数据

3) 备份数据完成后,重新启动系统。使用安装光盘进行引导

并在启动的时候输入rescue,进入单用户救援模式

使用fsck命令,加上-y参数,修复故障的分区。

如果故障无法修复,则只能更换硬盘,重新装系统,再导回数据了。

以上为linux服务器遇到一般的数据错误的通常解决方法

建议具体情况具体分析,查看完全后,在进行操作

以免造成数据丢失等严重损失。

你可能感兴趣的:(做linux启动时写入硬盘报错)