zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    串的模式匹配问题
    游戏手柄directinput编程
    Hibernate的generator属性的意义
    MySQL——基础入门
    IEbug——li标签之间的空隙
    struts2 jar包详解
    hibernate自动建库(MySQL)
    hibernate参数一览表
    js中的逻辑运算符
    hibernate的离线关联(多级)查询
  • 原文地址:https://www.cnblogs.com/sunfie/p/5978885.html
Copyright © 2011-2022 走看看