您的位置:首页 > 其它

Read-only file system

2013-08-26 12:18 791 查看
转载:http://hi.baidu.com/mozhipi/item/22284399bd42eadb7b7f0182

现象:这台机器是生产系统的一台服务器,托管在机房,远程管理,包括bind\tomcat\senmail服务。

开始以为只是MAJORDOMO问题,尝试修改/usr/local/majordomo-1.94.5/lists修改权限,报告Read-only file system;后来发现tomcat catalina.out报错无法生成日志;并且在操作bind的named服务,也回显Read-only file system,但同时named服务仍旧提供服务;发现很多程序执行时均报告Read-only
file system,比如/etc/init.d下面启动某些无关紧要的service

一些配置[root@ns lists]# more /etc/fstab

# This file is edited by fstab-sync - see 'man fstab-sync' for details

/dev/sda5 / ext3 defaults 1 1

/dev/sda1 /boot ext3 defaults 1 2

none /dev/pts devpts gid=5,mode=620 0 0

/dev/sda3 /home ext3 defaults 1 2

none /proc proc defaults 0 0

none /dev/shm tmpfs defaults 0 0

/dev/sda2 /var ext3 defaults 1 2

/dev/sda6 swap swap defaults 0 0

/dev/fd0 /media/floppy auto pamconsole,exec,noauto,m

anaged 0 0

/dev/hdc /media/cdrom auto pamconsole,exec,noauto,m

anaged 0 0

[root@ns lists]# df

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/sda5 4024188 3304816 514948 87% /

/dev/sda1 295564 12130 268174 5% /boot

/dev/sda3 3020172 1802448 1064304 63% /home

none 127816 0 127816 0% /dev/shm

/dev/sda2 9637944 8652856 495508 95% /var

然后fsck

[root@ns lists]# fsck -y

fsck 1.37 (21-Mar-2005)

e2fsck 1.37 (21-Mar-2005)

ext3 recovery flag clear, but journal has data.

Run journal anyway? yes

/: recovering journal

Pass 1: Checking inodes, blocks, and sizes

Deleted inode 192882 has zero dtime. Fix? yes

Pass 2: Checking directory structure

Entry 'icon.gif' in /usr/libexec/webmin/blue-theme/apache/images (437922) has de

leted/unused inode 192882. Clear? yes

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

Block bitmap differences: -393807 -419922

Fix? yes

Free blocks count wrong for group #12 (6992, counted=6993).

Fix? yes

Free blocks count wrong (179842, counted=179843).

Fix? yes

Inode bitmap differences: -192882

Fix? yes

/: ***** FILE SYSTEM WAS MODIFIED *****

/: ***** REBOOT LINUX *****

/: 114647/512000 files (1.0% non-contiguous), 842284/1022127 blocks

最后

fsck完后系统建议重启。但是,这台机器以前出现过重启后/dev/null:Read-only file system,无法进入系统(已经一年没有重启过了),又是生产服务器,因此请教还需做什么检查,确保重启可以顺利进入系统

**********************************

内网服务器squid 透明代理没有配成。reboot后无法启动。

接上显示器一看。错误如下:

/etc/rc.d/rc.sysinit:line 88: /dev/null: Read-only file system

  /etc/rc.d/rc.sysinit:line 99: /dev/null: Read-only file system

  configuring kernel parameters: dup2: Bad file descriptor [failed]

  Setting clock (localtime):Au 60A 18 18:05:04 CST 2005 dup2:Bad file descriptor [failed]

  loading default keymap (us): /etc/rc.d/rc.sysinit: line 159: /dev/null: Read-only file system [failed]

  Setting hostname snowtty: dup2:Bad file descriptor [failed]

  /etc/rc.d/rc.sysinit: line 176: /dev/null: Read-only file system Initializing USB controller (usb-uhci):dup2 : Bad file descriptor [failed]

  /etc/rc.d/rc.sysinit:line 187: /dev/null :Read-only file system

  Checking root filesystem dup2: Bad file descriptor [failed]

  *****An error occurred during the file system check

  *****Dropping you to a shell ; the system will reboot

  *****when you leave the shell.

  Give root password for maintenance

后面还有一个ctrl+d 重启或输入密码进入救援模式。

先进救援模式吧,应该是/dev/null 文件 丢失,系统无法启动。

先删除这个文件再重建吧。

rm -f /dev/null

提示无法找到这个文件,难道是系统文件没有被挂载?

先挂载:mount -n -o remount,rw /dev/hda

提示无法找到hda ,继续。先进入目录看看

cd /root

看看有没有权限

mkdir test

rm -rf test

OK 能正常操作,接着删除

rm -f /dev/null

可以删除了,再创建

mknod -m 666 /dev/null c 1 3

reboot

正常启动。

对LINUX文件系统只读的处理

 在系统中的处理

  1、mount:

  用于查看哪个模块输入只读,一般显示为:

  /dev/hda1 on / type ext3 (rw)

  none on /proc type proc (rw)

  usbdevfs on /proc/bus/usb type usbdevfs (rw)

  none on /dev/pts type devpts (rw,gid=5,mode=620)

  /dev/hda5 on /home type ext3 (rw)

  none on /dev/shm type tmpfs (rw)

  /dev/hda2 on /usr/local type ext3 (rw)

  /dev/nb1 on /EarthView/RAW type ext3 (ro)

  2、如果发现有ro,就重新mount,或者umount以后再remount

  3、umount /dev/nb1

  如果发现有提示“device is busy”,找到是什么进程使得他busy

  fuser -m /mnt/data 将会显示使用这个模块的pid

  fuser -mk /mnt/data将会直接kill那个pid,然后重新mount即可。

  4、还有一种方法是直接remount,命令为

  mount -o rw,remount /mnt/data

手工去更改/etc/fstab

[root@localhost dyl]# vi /etc/fstab

# This file is edited by fstab-sync - see 'man fstab-sync' for details

LABEL=/ / ext3 defaults 1 1

none /dev/pts devpts gid=5,mode=620 0 0

none /dev/shm tmpfs defaults 0 0

LABEL=/mail /mail ext3 defaults 1 2

none /proc proc defaults 0 0

none /sys sysfs defaults 0 0

LABEL=SWAP-sda2 swap swap defaults 0 0

/dev/hda /media/cdrom auto pamconsole,exec,noauto,managed 0 0

/dev/fd0 /media/floppy auto pamconsole,exec,noauto,managed 0 0

~

~

~

~

~

~

~

5、fsck -a 自动强制修复(如果存在坏道或者I/O错误过多的话会过不了)

系统启动的时候报只读错误无法进入系统

在系统启动到一半会报系统错误需要进入systimefile ,直接输入密码进入文件系统修复模式

1.执行fsck.ext2 -a

这里会提示详细的修复进度!

在修复成功后执行fsck -A /dev/sd*(device)

建议各位常用linux的同事研究一下hdparm 这个命令

可以测试并记录硬盘的性能 hdparm -tT /dev/hda

设置硬盘的各项参数,如对中断事件的处理响应

全部参数如下

[root@localhost dyl]# hdparm

hdparm - get/set hard disk parameters - version v5.7

Usage: hdparm [options] [device] ..

Options:

-a get/set fs readahead

-A set drive read-lookahead flag (0/1)

-b get/set bus state (0 == off, 1 == on, 2 == tristate)

-B set Advanced Power Management setting (1-255)

-c get/set IDE 32-bit IO setting

-C check IDE power mode status

-d get/set using_dma flag

--direct use O_DIRECT to bypass page cache for timings

-D enable/disable drive defect management

-E set cd-rom drive speed

-f flush buffer cache for device on exit

-g display drive geometry

-h display terse usage information

-i display drive identification

-I detailed/current information directly from drive

--Istdin reads identify data from stdin as ASCII hex

--Istdout writes identify data to stdout as ASCII hex

-k get/set keep_settings_over_reset flag (0/1)

-K set drive keep_features_over_reset flag (0/1)

-L set drive doorlock (0/1) (removable harddisks only)

-M get/set acoustic management (0-254, 128: quiet, 254: fast) (EXPERIMENTAL)

-m get/set multiple sector count

-n get/set ignore-write-errors flag (0/1)

-p set PIO mode on IDE interface chipset (0,1,2,3,4,...)

-P set drive prefetch count

-q change next setting quietly

-Q get/set DMA tagged-queuing depth (if supported)

-r get/set device readonly flag (DANGEROUS to set)

-R register an IDE interface (DANGEROUS)

-S set standby (spindown) timeout

-t perform device read timings

-T perform cache read timings

-u get/set unmaskirq flag (0/1)

-U un-register an IDE interface (DANGEROUS)

-v defaults; same as -mcudkrag for IDE drives

-V display program version and exit immediately

-w perform device reset (DANGEROUS)

-W set drive write-caching flag (0/1) (DANGEROUS)

-x tristate device for hotswap (0/1) (DANGEROUS)

-X set IDE xfer mode (DANGEROUS)

-y put IDE drive in standby mode

-Y put IDE drive to sleep

-Z disable Seagate auto-powersaving mode

-z re-read partition table
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: