Read-Only Filesystem的解决办法

我知道,我不放图你们是不会进来的!

起因

前几天突发奇想,想学一学k8s,顺手在服务器上安装了k3s这个轻量版,然而由于某些原因导致服务器出现了read-only file system。下面记录一下解决过程。以下环境均在root帐户下执行。

查找问题所在

其实我没有查出结果,但是还是要记一下。

我本身对linux的使用仅限于一些非常简单的命令上,于是边查边用,做了以下几个步骤。

  1. docker logs ***

    查看了容器的logs, 发现在5月27号就已经出现了文件系统只读的状况。

  2. journalctl

    想看看systemd的情况来着,发现全是瞎几把扫我服务器账密的sshd日志,无果

  3. cat /etc/fstab

    这里看了一下自动挂在配置文件,文件里有一条

    UUID=9226105e-54f3-4386-b8a7-82b3e0584877 /               ext4    noatime,errors=remount-ro 0       1
    

    noatime,errors=remount-ro这个玩意啥意思呢,如果文件系统出现了错误,下次启动或挂载时会使用只读模式挂载,我在好奇改成errors=continue会不会可以直接解决问题,但是问题是我现在没法写入文件,这个操作不太行。

处理问题

在网上搜到好多这方面的问题,中文帖子大多集中在CSDN,大部分都给出以下两种操作方法。(我最后使用fsck修复磁盘成功恢复正常)

  • 直接重新挂载

    mount -o remount,rw /

    在网上查到的mount命令的参数含义,-o是异步操作,remount,rw重新挂载为读写模式,/是我们要挂载的出问题的地方。我尝试了一下,但是出现了以下错误。

    mount: cannot remount /dev/sda2 read-write, is write-protected

    没法直接挂载,这个方法走不通。

  • fsck修复磁盘

    前面重新挂载没法进行下去了,但提示得很明显,/dev/sda2设备处于写保护状态,为什么会写保护呢,因为文件系统上出现了错误,不允许再往里面写东西了。这时候fsck修复磁盘就很有必要了。

    1. 首先卸载设备防止出现问题,unmount /dev/sda2,按下回车之前我还在担心系统都在这个盘上,卸载之后会不会连shell都无法操作,不过linux很强大,没有出现我臆想的情况哈哈哈。
    2. 使用fsck修复磁盘,fsck -y /dev/sda2,不加-y参数的话需要和fsck进行交互,确认修复块,因为服务器要修复好多损坏的块,为了省功夫,我直接加了-y参数,默认确认操作。
    3. 重新挂载或重启,mount /dev/sda2或者reboot,我不太清楚这个mount怎么挂,挂到哪儿,我直接使用了reboot,如果你们清楚怎么挂载的话请告诉我。reboot的时候很担心啊,生怕重启失败了,我服务器上的数据全丢了,毕竟好久没有备份了。庆幸的是,服务器正常重启并且成功修复了错误

后续

由于乱装k3s导致出现的错误,我使用官方给的卸载工具卸载掉了k3s,但安装的dashboard容器还没有删掉,后续又进行了docker的清理工作。

对于悬空镜像和未使用镜像可以使用手动进行个别删除:

  1. 删除所有悬空镜像,不删除未使用镜像:
docker rmi $(docker images -f "dangling=true" -q)
  1. 删除所有未使用镜像和悬空镜像
docker rmi $(docker images -q)
  1. 清理卷

    如果卷占用空间过高,可以清除一些不使用的卷,包括一些未被任何容器调用的卷(-v 详细信息中若显示 LINKS = 0,则是未被调用):

    删除所有未被容器引用的卷:

docker volume rm $(docker volume ls -qf dangling=true)
  1. 容器清理

    如果发现是容器占用过高的空间,可以手动删除一些:

    删除所有已退出的容器:

docker rm -v $(docker ps -aq -f status=exited)

删除所有状态为dead的容器

docker rm -v $(docker ps -aq -f status=dead)

反思了一下,像k8s、k3s、宝塔之类的管理运维工具,还是要在一个干净的系统上安装,否则容易出现各种奇怪的问题,如果想玩玩k8s,完全可以直接使用官方的交互服务来进行学习,等到一定基础之后再来给系统安装这些工具。

另外!!!一定要定期备份数据!!!!

 

 

本文系作者 @ 原创发布在 CycleGen。未经许可,禁止转载。

喜欢()
评论 (0)
    热门搜索
    173 文章
    1 评论
    47 喜欢
    Top