在對集群測試過程中發現系統中某一節點中的磁盤變成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 系統 正常啟動
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。