Read-only file system 问题分析与解决| 学习笔记

简介: 快速学习 Read-only file system 问题分析与解决。

开发者学堂课程【线上Linux服务器优化经验 Read-only file system 问题分析与解决】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/382/detail/4809


Read-only file system 问题分析与解决

 

Read-only file system 问题分析与解决

一、总结

二、Read-only file system 问题分析与解决

(一)思考过程

(二)解决思路

三、综合上述


一、总结

image.png通过这个案例,我们可以总结下

Su:warning:cannot change directory to /home/ilveylinux:Permission denied

Su:/bin/bash:permission denied

首先就是根据问题就这么一个出错的现象,以这个现象为核心去判断问题和排查问题,这个现象是核心问题没有权限,那就以这个权限作为一个基准,然后根据解决问题的这些思路做一个参考,从各个方面去排查问题。

尝试了五种方法,其实问题就在第一种,那为什么都没有发现呢?

从刚开始的时候其实还是对这个输入没有更细的去抓住每一个要点,所以第一点一定要重视问题的一个现象。

所有现象只有一个核心,所有的这些点都会围绕这个核心来去解决和处理的,所以第一个要重视现象。

第二点就是在解决问题的过程中使用了很多的命令,这些命令都是根据思路来的,而不是一个一个来进行试验。

所以一定是当有这么一个思路,根据这个思路去想到用什么命令去查看。

这个过程当中也做一个总结,首先第一个就SU之类,在这个案例中理解了Su切换的一些过程,在切换我们用Su-,这个杠其实就是在切换成普通用户的时候要加普通用户的变量,这个必须要加的。

第二个这个 SU 所依赖的库文件怎样去查看?

那就是另外一个命令就是 ldd,通过这个命令去查看一个二进制可执行文件所依赖的这个库文件的方法。

第三个命令是就是我们在得到文件的权限之后如何去查看我们的权限,需要通过通过 ls-al 。

为什么要从最原始的 LL 这个命令,然后改到这个 ls-al ?

是因为我们在第一次判断目录权限的时候呢就是用的LL命令而没有用 ls-al 命令,这其实也是个经验,建议不要把用LL命令当作一个习惯。看一下这个 ls-al 和 ll 的输出,很明显 LL 的组合其实是 ls-l,简称为 LL。

LS-AL 是一个非常重要的一个参数,它的意思就是 all 的意思,就是把所有的一些文件的所有类型的问题,都会给显示出来,这个命令非常重要的一点就是它会显示所有文件。

特别是在 linux 的驱动下,解决一些比如中病毒木马这些问题的时候,一定要用 ls-l 这么一个命令。

因为很多的黑客埋下的都是隐藏文件或者视频链接文件,使用者通过普通的像命令是没有办法去看到的。

所以建议命令我们一定要用啊,在查问题的,或者说在查看任何一个文件类型属性的时候趋使用ls-al,如果有了这个习惯之后,发现问题的话都会暴露。

如果说之前在这个思路过程中也就是第一次在查看这个权限问题的时候,如果用 ls-al,可能已经找到解决问题的方法。

当查到有问题的时候怎么样去详细的去查看这个文件权限,又推出了一个命令叫stat。那么知道权限有问题之后呢,要如何把权力学会怎么修改?

通过了一个CHMOD命令去修改。Setenforce 这个命令,后面加个零是关闭。通过这个案例,重点传达的就是第一个思路,第二个命令不是无缘无故的来的,而是要按照思路一步一步来。

通过案例可以得到在遇到类似的问题时,应清楚如何通过具体的现象,逐步的去找到问题,继而解决问题。在解决问题当中,应该清楚使用了哪些命令,而这些命令是通过哪些思维想到的,这是以后需要关注的重点。

通过案例可以得到以下总结:

1、在解决问题时,应以问题现象为核心,继而判断问题和解决问题。

以权限作为基准,以解决问题的思路作为参考,全方面排查问题;在本案例中,尝试了五种方法,问题出现在第一种,之所以在最开始没有发现,原因出在一开始没有更细的去发现和进行排查,即必须重点关注问题的现象;

2、在解决问题的过程中用到的命令是根据思路得来而并非是通过尝试得到。

在这个案例中使用了 su- 命令(su依赖的库文件如何去查看)、ldd 命令、ls-al 命令(在使用过程中应该经常用 ls-al 命令,而不要经常使用ll命令;ls-al 命令更具全面性)、stat 命令(用于查看更具体的权限)、chmod 命令(用于修改权限)、setenforce 命令(用于查看 set 是否关闭)

3、通过这个案例知道了解决问题的思路以及学习了相当多的命令;

 

二、Read-only file system 问题分析与解决

问题现象:客户说网站无法添加内容了

(一)思考过程

1、登陆系统进行查看。首先查看根目录,可以看到磁盘空间没有问题。

再通过磁盘分区可以看到针对物理分区有两个,分别是根分区和 boot 分区。建立一个 boot 分区出现问题:

无法创建目录“a”。通过逐步排查发现 boot 分区出现问题。

2、boot 分区出现问题的原因可以通过查看系统日志(主要查看 dmesg 和tail-f/var/log/messages)通过执行 dmesg 发现无法查看,那么就可以确定是分区出现了问题,即“mkdir :无法创建目录“d”:只读文件系统”。

[root@topnewinfo , ]# df -h

Fi1esystem   size used Avai 1 Use% Mounted on

/dev/mapper/VolGroup- 1v_root

36G  7.7G  27 G  23%/

Tmpfs  665M  224k  665m   1% /dev/shm

/dev/sdal    477m  381M   16% /boot

[root@topnewinfo /]# cd /boot

[root@topnewinfo boot ] #  ls

Config-2.6.32-431.e16.x86_64    lost+ found

Config-2.6.32-573.18.1.e16.x86_64  symvers-2.6.32-431.e16.x86_64.gz

Efi    symvers-2.6.32-573.18.1.e16.x86_64.gz

Grub   system.map-2.6.32-431.e16.x86_64

initramfs-2.6.32-431.e16.x86_ 64. img

System. map-2.6.32-573 18.i.e16.x86_64

Initramfs-2.6.32-573.18.1.e16.x86-64.img vm1inuz-2.6.32-573.18.1.e16.x86_64

Initrd-2.6.32-573.18.1.e16.x86_64kdump.img  vmlinuz-2.6.32-573.18.1.e16.x86_64

initrd-2.6.32-573.18.1. e 16. x86_ 64 kdump. Img

[rootatopnewinfo boot]# mkdir a

mkdir:无法创建目录"a":

[rootatopnewinfo boot ]#

[rootatopnewinfo boot #df -h

Filesystem  size used Avai 1 use% Mounted on

/dev/ mapper/VolGroup- 1v_ root

36G  7:7G  27G  23% /

665M 224K 665M  1%  /dev/shm

/dev/sdal  477  71M  381M  16% /boot

[ rootatopnewinfo boot]# umount /boot

umount: /boot: device is busy.

(In some. Cases usefu 1. info about processes. that use

the device   is found by 1sof(8) or fuser (1) )

[ root@topnewinfo boot]#

那么可以得到以下思路:

(二)解决思路:

1、网站程序可能出现问题了;

通过假设案例发现网络程序不存在问题

2、服务器磁盘故障

通过操作发现的确是服务器磁盘出现问题。解决方法如下:

(1)首先可以进行修复。在进行磁盘修复之前,应把磁盘分区卸载掉即把 boot 分区卸载掉。进行卸载之后显示 boot 驱动忙,原因可能是 boot 存在读写困难导致,一定要重视执行命令之后报错的提示。

可以看到 lsof 和 fuser 两个提示。根据提示进行操作之后,系统显示是 ID(41712c)把分区占用。接下来把占用的 ID 扣掉即可。

接下来修复磁盘分区。通过修复磁盘分区命令“fsck”。后面跟上设标志符(即-y/dev/sdal)在修复过程中,如果发现的确是磁盘分区有损坏,fsck 自身带有自动修复操作。执行操作之后,磁盘即可修复。

(2)最后执行:

mount /dev/sdal /boot  之后,创建文件,发现是可以创建的,即磁盘修复成功。

 

三、综合上述

1、一般情况下,磁盘偶尔发生文件系统只读,可以通过 fsck 命令进行修复,但某一块磁盘经常发生类似的错误,此时执行fsck的命令修复的概率极低。

2、案例当中重点关注使用了哪些命令;

3、在卸载磁盘分区的过程当中,如果无法卸载,可以考虑是否是进程占用了磁分区,可以执行“fuser”命令;然后扣掉即可;

4、发现问题之后,如何进行修复磁盘,可以通过执行“fsck”命令,在修复过程当中可以加上“-y 参数”,即表示所有执行可以操作。

相关文章
|
安全 Linux Shell
Read-only file system 问题分析与解决
Read-only file system 问题分析与解决
Read-only file system 问题分析与解决
|
5月前
|
缓存
Error: EIO: i/o error, read如何解决
Error: EIO: i/o error, read如何解决
Can‘t read file : End of file found 文件:txn_current、current svn无法正常读取文件
Can‘t read file : End of file found 文件:txn_current、current svn无法正常读取文件
Can‘t read file : End of file found 文件:txn_current、current svn无法正常读取文件
|
Linux
Linux 执行partprobe命令时遇到Unable to open /dev/sr0 read-write (Read-only file system)
在使用fdisk创建分区时,我们会使用partprobe命令可以使kernel重新读取分区信息,从而避免重启系统,但是有时候会遇到下面错误信息“Warning: Unable to open /dev/sr0 read-write (Read-only file system).
3306 0