Linux操做系統報:read-only file system

在對集羣測試過程當中發現系統中某一節點中的磁盤變成read-only file system,從而致使測試任務出錯,從網上查找資料,找到如下解決方案:node

這個報錯的意思是硬盤屬性變成只讀,不可寫入;linux

VOS自己是不可能更改你的硬盤屬性的,只有操做系統有這樣的能力;服務器

通常可能緣由有三點:網絡

  1.硬盤與主板的不兼容性致使;測試

  2.硬盤損壞;ui

  3.人爲修改spa

首先利用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 直接出現了 修復提示,無任何異常!code

若是出現這樣的提示,就須要當心:
blog

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。

相關文章
相關標籤/搜索