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


二、具体深入的做法,情况不同可以自行选择:

服务器/var/log/messages报错 :

end_request: I/O error,dev sda,sector 122194293 Buffer I/O error on device sda1,logical block 446493 lost page write due to I/O error on sda1

下面是整个处理全过程

[root@www.linuxidc.com ~]# fdisk -lu #第一步 :找出本地扇片所在的分区。
disk /dev/sda: 73.4 GB,73407868928 bytes
255 heads,63 sectors/track,8924 cylinders,total 143374744 sectors
Units = sectors of 1 * 512 = 512 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 63 4096574 2048256 83 Linux
/dev/sda2 4096575 75778604 35841015 83 Linux
/dev/sda3 75778605 129034079 26627737+ 83 Linux
/dev/sda4 129034080 143364059 7164990 5 Extended
/dev/sda5 129034143 139267484 5116671 83 Linux
/dev/sda6 139267548 143364059 2048256 82 Linux swap


[root@www.linuxidc.com ~]# tune2fs -l /dev/sda3 |grep "Block size" #找到block大小。
Block size: 4096

(122194293-75778605)*512/4096 =528691 利用公式算出逻辑块地址

b = (int)((L-S)*512/B)

[root@www.linuxidc.com ~]# debugfs
debugfs 1.35 (28-Feb-2004)
debugfs: open /deb/sda3
/deb/sda3: No such file or directory while opening filesystem
debugfs: open /dev/sda3
debugfs: icheck 582391
Block Inode number
582391 277584
debugfs: ncheck 277584
Inode Pathname
277584 /users/inn.net.cn/data/upload/download/innshow004.rar
debugfs: quit
[root@www.linuxidc.com ~]#dd if=/dev/zero of=/dev/sda1 bs=4096 count=1 seek=582391 #找到这个快的文件之后,需要做好备份,我们强制把它设置为0字节。
[root@www.linuxidc.com ~]# sync

http://bbs.voip88.com/thread-430-1-1.html

使用 fsck -y ,如果有執行修復且當出現檔案異常無法回復時,系統會將它移至 lost+found,並且以 inode 命名。如果硬碟或檔案分區有損壞,在做完 fsck -y 後,如發現 lost+found 新增了許多檔案,那表示原來的檔案系統,有不少檔案已遺失,這些可能造成系統無法運行。

http://www.keyofnet.com/?p=398

今天闲来无事,修改了一下/etc/fstab,想在启动时自动挂载Windows下的几个分区。以前干过这些事情,所以也没太当回事。

因为曾经重装过一次,所以/boot分区现在成了/boot1分区,/分区成了/1分区,在/etc/fstab表中我觉得不好看。所以修改的时候,我随手把/boot1改成了/boot,/1改成了/。

结果再次重启时,系统找不到这两个分区,自然也就启动不了了。郁闷。

好在还有shell能用,prompt符为(Pepairfilesystem)#。我又运行了#vi/etc/fstab
想更改fstab文件。没想到此时所用文件都是readonly,改不了了。欲哭无泪。

想了一会儿,突然记起可以进入rescue模式,或许能有办法。于是那张救援盘有了用武之地了。

进入rescue模式后,执行
#mount-tvfat/dev/hda9/tmp
将那个无法自动挂载的/1分区随便挂到了一个挂载点下,然后就能读写之了。恢复fstab文件,再次重启,一切又正常了。

两个教训:修改配置文件时一定要谨慎,不要想当然的乱改;要有恢复手段,启动盘或者救援盘一定要准备好。

---------------------------------------------------------------
如何修复/etc/fstab

我mv/etc./fstab/etc/fstab.bak
重启时,到(Repairfilesystem)#所有file只读,如何让它该为可写,然后mv/etc/fstab.bak/etc/fstab,让它能正常启动?
1---------------
boot:linuxrescue

#mkdir/mnt/image
#mount-text3/dev/hda4/mnt/image

一般是硬盘最后一个分区里面,我分区表如下:

[root@YYZH ~]# fdisk -l

disk /dev/sda: 42.9 GB,42949672960 bytes
255 heads,5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 1300 10241437+ 83 Linux
/dev/sda3 1301 2575 10241437+ 83 Linux
/dev/sda4 2576 5221 21253995 5 Extended
/dev/sda5 2576 3850 10241406 83 Linux
/dev/sda6 3851 3915 522081 82 Linux swap / Solaris
/dev/sda7 3916 5221 10490413+ 83 Linux

我挂载时用 mount -t ext3 /dev/sda7 /mnt/image 然后进入后vi fstab进行文件修改
cd/mnt/image/etc
cpfstab.bakfstab
2---------------
rescueMODE
会MOUNT/到/mnt/sysimage
3---------------
rescueMODE
会MOUNT/到/mnt/s

修改/etc/fstab实现自动挂载Windows分区,并显示中文目录
LABEL=/ / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
LABEL=/usr /usr ext3 defaults 1 2
/dev/hda9 swap swap defaults 0 0
#添加如下几行
/dev/hda1 /mnt/win_c vfat codepage=936,iocharset=cp936 0 0
/dev/hda5 /mnt/win_d vfat codepage=936,iocharset=cp936 0 0
/dev/hda6 /mnt/win_e vfat codepage=936,iocharset=cp936 0 0

下面是一些文件说明

1. fstab文件的作用
文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过”mount /directoryname”命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck、mount、umount的等命令都利用该程序。

2. fstab文件格式
下面是/etc/fatab文件的一个示例行:
fs_spec   fs_file  fs_type   fs_options  fs_dump fs_pass 
/dev/hda1   /   ext2     defaults   1    1 

fs_spec - 该字段定义希望加载的文件系统所在的设备或远程文件系统,对于一般的本地块设备情况来说:IDE设备一般描述为/dev/hdaXN,X是IDE设备通道(a, b, or c),N代表分区号;SCSI设备一描述为/dev/sdaXN。对于NFS情况,格式一般为:,例如:`knuth.aeb.nl:/’。对于procfs,使用`proc’来定义。

fs_file - 该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为none;对于加载目录名包含空格的情况,用40来表示空格。

fs_type - 定义了该设备上的文件系统,一般常见的文件类型为ext2 (Linux设备的常用文件类型)、vfat(Windows系统的fat32格式)、NTFS、iso9600等。
 
fs_options - 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于大多数系统使用”defaults”就可以满足需要。其他常见的选项包括:
选项              含义
ro      以只读模式加载该文件系统
sync    不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度
user    允许普通用户加载该文件系统
quota   强制在该文件系统上进行磁盘定额限制
noauto  不再使用mount -a命令(例如系统启动时)加载该文件系统

fs_dump - 该选项被”dump”命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为0

fs_pass - 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统”/”对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0

3. 示例文件
# /etc/fstab
/dev/hda9       swap      swap    defaults    0   0
/dev/hda1       /        ext2    defaults    1   1
/dev/hda5       /homeext2    defaults    1   1
/dev/hda6       /usr     ext2    defaults    1   1
/dev/hda7       /usr/local  ext2    defaults    1   1
/dev/hda8       /var      ext2    defaults    1   1
/dev/hdb       /cdrom    iso9660  noauto,user 0   0
none         /proc      proc    defaults    0   0
none         /dev/pts    devpts  gid=5,mode=620  0   0 

---------------------------------------------------------------
创建/etc/fstab文件
为了某些程序能确定某一个程序被加载的实际位置,文件/etc/fstab将被使用。通过以下方法建立一个新文件/etc/fstab:

cat>/etc/fstab<<”EOF”
#Begin/etc/fstab

#filesystemmount-pointfs-typeoptionsdumpfsck-order

/dev/*LFS*/*fs-type*defaults11
/dev/*swaP*swapswappri=100
proc/procprocdefaults00

#End/etc/fstab
EOF

*LFS*,*swaP*和*fs-type*应换成你系统中的值(比如/dev/hda2,/dev/hda5和reiserfs)。

当增加一个reiserfs分区时,一行最后的11应换成00。

要知道更多关于fstab文件中变量的信息,请看man5fstab.

还有一些内容也许你想加入到fstab文件中。如果你使用devpts的话,必须有下面这一行:

devpts/dev/ptsdevptsgid=4,mode=62000

下面这个是你使用USB设备时要用到的:

usbdevfs/proc/bus/usbusbdevfsdefaults00

这两个例子只有在你把相关的支持编译到内核中时才能工作。

---------------------------------------------------------------
/etc/fstab文件修改后可以自动挂载,并显示中文目录

这是我在网上找到的/etc/fstab文件修改后可以自动挂载,并显示中文目录,这个比较实用,希望大家能派上用场,下面就是例子。

#/etc/fstab:staticfilesysteminformation. # # proc/procprocdefaults00 /dev/hdc2/ext3defaults,errors=remount-ro01 /dev/hdc5noneswapsw00 /dev/hdb/media/cdrom0iso9660ro,user,noauto00 /dev/hda1/mnt/win_cvfatcodepage=936,iocharset=cp93600 /dev/hda5/mnt/win_dntfsiocharset=cp93600 /dev/hda6/mnt/win_entfsiocharset=cp93600 /dev/hda7/mnt/win_fvfatcodepage=936,iocharset=cp93600 /dev/hda8/mnt/win_gvfatcodepage=936,iocharset=cp93600 /dev/hdc1/mnt/win_hvfatcodepage=936,iocharset=cp93600

ceph存储 centos文件系统变为只读的解决处理的更多相关文章

  1. iOS推送通知适用于Dev而不是Enterprise Distribution

    本网站上没有其他问题,我已经能够找到实际上提出了Dev将工作的原因,但企业分布不会.为什么归档总是使aps环境生产?

  2. ios – testflight库和Xcode 5没有变化现在说“ld:找不到-lTestFlight的库”

    我已经创建了几个月的应用程序,突然Xcode5不想构建它.它只是抱怨以下错误.如果我理解它可以,它会抱怨testflight,但我几周没有改变它.它完美地编译了它.我不得不说我已经尝试将AdobeADMS跟踪库添加到项目中.然后,出现链接器错误.任何提示?

  3. 如何在ios swift项目中为dev n prod使用两个不同的GoogleService-info.plist文件?

    我需要使用两个不同的GoogleService-info.plist来处理dev和prod构建,目前我只是通过在编辑方案中更改“构建配置”来分离dev和prod,但现在我需要有两个不同的.plist文件dev和prod用于处理谷歌分析,pushwoosh等,解决方法对于这种情况,您需要在Dev和Prod的项目中使用带有diffbundleid的不同Targets.之后,您可以链接GoogleSer

  4. cinder swift的区别

    [原]OpenStack入门以及一些资料之2014-4-29阅读1144评论0注:本文内容均来自网络,我只是在此做了一些摘抄和整理的工作,来源均有注明。它拥有自己的文件系统,通过网络文件系统NFS或通用文件系统CIFS对外提供文件访问服务。Raid,不同的raid等级在增加数据可靠性以及增加存储器(群)读写性能间取得平衡。卷组描述区域,和磁盘将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷的VGDA中。

  5. Ceph vs Swift - 架构剖析

    Ceph和Swift,哪种更好?当工程师们讨论存储,谈到Ceph和Swift时,他们通常都一致认为其中一个非常棒,另外一个却很糟糕。另一个原因,也是很多人认为Ceph更好的原因,是Swift不支持块存储和文件存储。Ceph的另一个短板是安全性。一个原因是Ceph只能同步写入,并且要求写入节点达到quorum数才能成功返回。比如,可以使用Ceph作为本地高性能存储,而Swift则作为多地域Glance后台,这时复制很重要而速度并不关键。

  6. openstack安装liberty--安装对象存储服务swift

    通常使用CACHE技術提高性能Accountservers賬戶服務,管理對象存儲中的賬戶定義。Containerservers容器服務,在對象存儲中管理容器或文件夾映……Objectservers對象服務,在存儲節點管理實際的對象,比如文件。Wsgimiddleware處理認證,通常使用OPENSTACKIdentityswiftclient為用戶提供命令行接口使用RESTAPIswift-init初始化和構建RING文件腳本swift-recon一個命令行工具,用於檢索群集的各種度量和測試信息。

  7. Ceph部署二RGW搭建

    背景CephRGW简介CephRGW基于librados,是为应用提供RESTful类型的对象存储接口。环境规划如上篇文章《Ceph部署(一)集群搭建》所述:4台服务器:1台作为Monitor,1台作为OSDRGW,还有两台作为OSD。部署CephRGW进入上文所述的my-cluster目录。该脚本会连接RGW,创建一个bucket并列出所有的bucket。正常的输出应该为:小结通过ceph-deploy命令,已经大大地简化了对Ceph集群和RGW的安装和配置。但如果想挑战下自己,或者想让自己了解更多,试

  8. (Cross-)编译Swift for Raspberry PI

    Swift现在是开源的.有没有人试过编译Swift的RaspBerryPI?我开始做,但我的8GBSD卡似乎太小了;)是否可以从Ubuntu交叉编译?写Swift打开你最喜欢的文本编辑器,编写一个程序并保存它:编译它并运行它:而已!

  9. Swift 3 dev快照中的POST请求给出了“对成员’dataTask的模糊引用(with:completionHandler :)’

    编辑:我注意到有人在我之后写了这个问题的副本.这里的答案是更好的答案.使用URLRequest结构.在Xcode8中工作正常:另外,出现此错误的原因是URLSessionAPI具有相同的名称方法,但每个都采用不同的参数.因此,如果没有明确的演员,API将会混淆.我认为这是API的命名错误.发生此问题,代码如下:

  10. 针对不同环境的不同Android构建

    我希望能够构建和安装我的应用程序的多个版本(同时),针对不同的环境,如开发,暂存和生产.AndroidManifest.xml中的软件包名称似乎是这里的主要障碍,因为它是唯一标识应用程序的内容.我认为可以简单地在com.mydomain.prod,com.mydomain.staging和com.mydomain.dev之间切换或某种类似的约定,但到目前为止,我还没有运气的包装结构对于这种方法.我

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部