Linux操作系统报:read-only file system

在对集群测试过程中发现系统中某一节点中的磁盘变成read-only file system,从而导致测试任务出错,从网上查找资料,找到以下解决方案:

这个报错的意思是硬盘属性变成只读,不可写入;

VOS本身是不可能更改你的硬盘属性的,只有操作系统有这样的能力;

一般可能原因有三点:

  1.硬盘与主板的不兼容性导致;

  2.硬盘损坏;

  3.人为修改

首先利用fsck修复一下,

 1 [root@localhost ~]# fsck
 2 fsck 1.39 (29-May-2006)
 3 e2fsck 1.39 (29-May-2006)
 4 /dev/VolGroup00/LogVol00: recovering journal
 5 Clearing orphaned inode 302154356 (uid=48, gid=48, mode=0100600, size=0)
 6 Clearing orphaned inode 57245765 (uid=0, gid=0, mode=0100600, size=0)
 7 Clearing orphaned inode 57245703 (uid=27, gid=27, mode=0100600, size=0)
 8 Clearing orphaned inode 57245702 (uid=27, gid=27, mode=0100600, size=0)
 9 Clearing orphaned inode 57245701 (uid=27, gid=27, mode=0100600, size=0)
10 Clearing orphaned inode 57245700 (uid=27, gid=27, mode=0100600, size=0)
11 Clearing orphaned inode 57245699 (uid=27, gid=27, mode=0100600, size=0)
12 /dev/VolGroup00/LogVol00: clean, 7592796/365756416 files, 80372202/365740032 blocks
13 e2fsck 1.39 (29-May-2006)
14 /dev/sda1 is mounted.
15 WARNING!!!  Running e2fsck on a mounted filesystem may cause
16 SEVERE filesystem damage.
17 Do you really want to continue (y/n)? no
18 check aborted.
19 
20 -----------------------------

尝试执行了一下fsck 直接出现了 修复提示,无任何异常!

如果出现这样的提示,就需要小心:

1 root@test ~]# fsck 
2 fsck 1.35 (28-Feb-2004)
3 e2fsck 1.35 (28-Feb-2004)
4 /dev/sda1 is mounted.
5 WARNING!!! Running e2fsck on a mounted filesystem may cause
6 SEVERE filesystem damage.
7 Do you really want to continue (y/n)? no 
8 check aborted.
9 [root@test ~]#

一定要选择NO,先拆卸文件系统,否则 对文件系统造成毁灭性的打击。
6.修复完成后,reboot 系统 正常启动

运行正常的一台机器linux服务器,早上发现挂了。满屏幕是 read-only file system的提示.检查/etc/fstab设置没有问题。重启计算机,init初始的过程中,不断的read-only file system提示。进入repair模式,人工干预地/分区进行fsck.
fsck /var -y 在不断的yes之后,修复完成.(真想给enter键上压个秤砣)
重启计算机,OK了.进入系统后进行检查,没有发现有价值的信息.系统出问题前没有重启过.排除了掉电的可能.只在dmesg找了一点线索
1 [root@cacti ~]# dmesg |grep error
2 hdb: packet command error: status=0x51 { DriveReady SeekComplete Error }
3 hdb: packet command error: error=0x54

利用 mount 指令解决 Read-only file system的问题
刚才在VirtualBox下装起了liveAndroid ,可是在利用wget下载apk包的时候,总是提示Read-only file system,也就是说系统是只读的,什么也写不了。于是在网上到处找了一下,发现解决起来挺容易的。一条命令就可以了

1 mount -o remount rw /

系统启动的时候报:

 1 Updating /etc/fstab Unable to open /etc/fstab for writing:Read-only file system [FAILED]
 2 touch:createing '/var/lock/subsys/kudzu':Read-only file system [OK]
 3 Bringing up lookback interface: modprobe: modprobe: Can't locate module ...(此处看不到了)
 4 modprobe:modprobe:Can'g locate module net-pf-4 
 5 modprobe:modprobe:Can'g locate module net-pf-5
 6 modprobe:modprobe:Can'g locate module net-pf-18
 7 modprobe:modprobe:Can'g locate module net-pf-9
 8 Bringing up interface eth0: Inter(R) PRO/100 Network Driver -version ...(此处看不到了)
 9 Copyright (c) 2003 Inter Corporation 
10 PCI:Fount IRQ 9 for device 00:06.0
11 e100:eth0: Inter(R) PRO/100 Network Connection
12 Hardware receive checksums enabled
13 cpu cycle saver enabled

系统到这一步就不走了,半天没有反应,只能重启(事后发现此处等待n久时间是可以进入系统的,进入系统后也是没有主机名,文件系统只读)。
1,重启后进入单用户模式,打开/etc/fstab文件,查到如下信息:
/dev/sde1 /back ext3 noauto 2 3
有一个阵列柜上的分区加载,虽然只是noauto,不会自动加载,不过当时为了保险起见就像让把这一项去掉。去掉的时候提示文件系统治读。
不过用Mount 命令查看的时候是rw的。
2,这个时候用suse 10 x86的光盘引导进入恢复模式,进去的时候不能够发现本地的硬盘,只能够发现柜子的硬盘。
这个时候想起来了,是suse 10对这个型号的服务器的mageraid卡的驱动不支持,当时公司的这个型号的服务器只能安装radhat 3版本系列的操作系统,redhat 4和suse都不能安装上去。redhat 5出来后也可以安装redhat 5了。
3,想通过redhat 启动过程中的交互模式做点事情。
redhat 启动的时候会有一个按"I"进入的交互模式,可是这个服务器竟然没有这个选项,郁闷了,当时已经很久没有看到redhat 3的启动界面了,当时也不在现场,还以为redhat 3真的没有这个交互界面了。当时记得redhat 3u6是有的。
INIT: version 2.85 booting
Welcome to Red Hat Enterprise Linux AS
Press 'I' to enter interactive startup.
4,没有办法,只好去现在,去现场后用redhat 3u6的光盘引导系统。进入系统后用下面的命令Mount分区
mount -o rw /dev/sda1 /mnt/boot
mount -o rw /dev/sda3 /mnt/sysimage
发现是可以用读写方式加载的.打开系统的/etc/fstab文件,这个时候位置在/mnt/sysimage/etc/fstab。把这个文件的最后一行删除。重新启动还是不行。
5,用光盘引导进入系统后用
fsck.ext3 -f /dev/sda1
fsck.ext3 -f /dev/sda3
强制检查文件系统,没有发现异常。重启后还是不行。
6,系统启动的过程中会发现一些新硬件信息,此时弹出的配置界面都是乱码。应该是系统安装的时候配置的中文环境的缘故。用光盘引导系统,引导的过程中配置网络信息,配置加载本地的linux分区。
进去后修改/etc/sysconfig/i18n文件,这个文件的原信息为:
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"
修改为:
LANG="en_US.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
这个时候启动的时候就为英文了。
7,上面的这些操作一直都不行,然后就继续想系统启动的步骤,就检查系统启动的文件。
发现/etc/inittab文件的下面一行多了一个#号
si::sysinit:/etc/rc.d/rc.sysinit
把这个#号去掉后就一切Ok。

posted @ 2016-10-19 21:55  天~宇~翱~翔  阅读(47561)  评论(0编辑  收藏  举报