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

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

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

一般可能原因有三点:

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

2.硬盘损坏;

3.人为修改

------------------

[root@localhost ~]# service mysqld start
touch: cannot touch `/var/log/mysqld.log': Read-only file system
chown: changing ownership of `/var/log/mysqld.log': Read-only file system
chmod: changing permissions of `/var/log/mysqld.log': Read-only file system
chown: changing ownership of `/var/lib/MySQL': Read-only file system
chmod: changing permissions of `/var/lib/mysql': Read-only file system
Starting MySQL:                                            [  OK  ]
touch: cannot touch `/var/lock/subsys/mysqld': Read-only file system
[root@localhost ~]# fsck
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
/dev/VolGroup00/LogVol00: recovering journal
Clearing orphaned inode 302154356 (uid=48, gid=48, mode=0100600, size=0)
Clearing orphaned inode 57245765 (uid=0, gid=0, mode=0100600, size=0)
Clearing orphaned inode 57245703 (uid=27, gid=27, mode=0100600, size=0)
Clearing orphaned inode 57245702 (uid=27, gid=27, mode=0100600, size=0)
Clearing orphaned inode 57245701 (uid=27, gid=27, mode=0100600, size=0)
Clearing orphaned inode 57245700 (uid=27, gid=27, mode=0100600, size=0)
Clearing orphaned inode 57245699 (uid=27, gid=27, mode=0100600, size=0)
/dev/VolGroup00/LogVol00: clean, 7592796/365756416 files, 80372202/365740032 blocks
e2fsck 1.39 (29-May-2006)
/dev/sda1 is mounted.

WARNING!!!  Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.

Do you really want to continue (y/n)? no

check aborted.

-----------------------------

 

 

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

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

root@test ~]# fsck
fsck 1.35 (28-Feb-2004)
e2fsck 1.35 (28-Feb-2004)
/dev/sda1 is mounted.

WARNING!!! Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.

Do you really want to continue (y/n)? no

check aborted.
[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找了一点线索
[root@cacti ~]# dmesg |grep error
hdb: packet command error: status=0x51 { DriveReady SeekComplete Error }
hdb: packet command error: error=0x54

 

------------------------

 

利用 mount 指令解决 Read-only file system的问题

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

mount -o remount rw /

--------------------------

 

 

系统启动的时候报:
Updating /etc/fstab Unable to open /etc/fstab for writing:Read-only file system [FAILED]
touch:createing '/var/lock/subsys/kudzu':Read-only file system [OK]
Bringing up lookback interface: modprobe: modprobe: Can't locate module ...(此处看不到了)

modprobe:modprobe:Can'g locate module net-pf-4
modprobe:modprobe:Can'g locate module net-pf-5
modprobe:modprobe:Can'g locate module net-pf-18
modprobe:modprobe:Can'g locate module net-pf-9

Bringing up interface eth0: Inter(R) PRO/100 Network Driver -version ...(此处看不到了)
Copyright (c) 2003 Inter Corporation

PCI:Fount IRQ 9 for device 00:06.0
e100:eth0: Inter(R) PRO/100 Network Connection
Hardware receive checksums enabled
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。


如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。