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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM