V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
imianhuatang
V2EX  ›  问与答

请 Linux 大佬帮忙看看这个系统还能不能救回来

  •  
  •   imianhuatang · 2019-02-26 10:12:04 +08:00 · 2065 次点击
    这是一个创建于 2098 天前的主题,其中的信息可能已经有所发展或是发生改变。
    起初发现网站登录不了,上服务器查看后是 mysql 没有运行,启动出现报错

    touch: cannot touch `/var/log/mysqld.log': Read-only file system
    chmod: changing permissions of `/var/log/mysqld.log': Read-only file system
    chmod: changing permissions of `/var/lib/mysql': Read-only file system
    Timeout error occurred trying to start MySQL Daemon.
    Starting MySQL: [FAILED]
    touch: cannot touch `/var/lock/subsys/mysqld': Read-only file system

    尝试创建一个文件也一样,全部文件变只读了。查看 dmseg 有下面的错误

    EXT3-fs error (device sda3) in start_transaction: Journal has aborted

    系统日志里的错误如下

    kernel: EXT3-fs warning (device sda3): ext3_dx_add_entry: Directory index full!

    通过搜索,了解到可能是文件系统的 inode 问题,给的方法是删掉一些空文件,但问题就在这里了,全部文件都只读了,删也删不掉。inode 信息如下

    Filesystem Inodes IUsed IFree IUse% Mounted on
    /dev/sda3 19267584 7095876 12171708 37% /
    /dev/sda1 26104 40 26064 1% /boot
    none 217643 1 217642 1% /dev/shm

    硬盘使用如下

    Filesystem Size Used Avail Use% Mounted on
    /dev/sda3 145G 106G 32G 78% /
    /dev/sda1 99M 12M 82M 13% /boot
    none 2.0G 0 2.0G 0% /dev/shm

    另外还有的说挂载成只读了,我查看是没有的

    /dev/sda3 on / type ext3 (rw)
    none on /proc type proc (rw)
    none on /sys type sysfs (rw)
    none on /dev/pts type devpts (rw,gid=5,mode=620)
    usbfs on /proc/bus/usb type usbfs (rw)
    /dev/sda1 on /boot type ext3 (rw)
    none on /dev/shm type tmpfs (rw)
    none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

    fstab 也有启动挂载的

    # This file is edited by fstab-sync - see 'man fstab-sync' for details
    LABEL=/ / ext3 defaults 1 1
    LABEL=/boot /boot ext3 defaults 1 2
    none /dev/pts devpts gid=5,mode=620 0 0
    none /dev/shm tmpfs defaults 0 0
    none /proc proc defaults 0 0
    none /sys sysfs defaults 0 0
    LABEL=SWAP-sda2 swap swap defaults 0 0

    用 smartctl 和 badblocks 检查硬盘没有问题,硬件是 ok 的,应该还是文件系统的问题,并且是挂载在根目录的 sda3 的问题。用 fsck 检查如下

    / contains a file system with errors, check forced.
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    /: 7095876/19267584 files (0.1% non-contiguous), 28351205/38521861 blocks

    其他查看用户、进程、监听的端口和日志,没有发现什么异常。系统用了很多年了,还是 CentOS 4.8,一般很少去动,也几乎没有出现过问题。现在也不敢尝试重启,怕启动不了了。请各位大佬帮忙分析一下,看看可能是什么情况,能否拯救回来,有什么方法解决没有,先谢过了
    第 1 条附言  ·  2019-02-28 11:22:10 +08:00
    昨天去机房把问题解决了,过程如下:
    进入 LiveOS,fsck 修复了 sda3 的文件系统,挂载删除了一些文件。重启后无法进入系统,报错 ext3: No Journal on filesystem on sda3,sda3 无法挂载到根系统,又进入 LiveOS 发现 sda3 变成了 ext2,所以转换了一下 tune2fs -j /dev/sda3,重启后终于正常了。感谢 @asilin 的回复
    13 条回复    2019-02-27 11:05:50 +08:00
    dorothyREN
        1
    dorothyREN  
       2019-02-26 10:51:30 +08:00
    目测是单个目录下的子目录和文件超过 64k 个的原因。
    imianhuatang
        2
    imianhuatang  
    OP
       2019-02-26 10:55:50 +08:00
    @dorothyREN 有什么办法吗?全部文件只读,删也删不掉
    dorothyREN
        3
    dorothyREN  
       2019-02-26 10:57:50 +08:00
    @imianhuatang #2 可以删除的。只是写不进去了而已。不过你要找到是哪个目录下的文件太多了。。
    dorothyREN
        4
    dorothyREN  
       2019-02-26 10:59:03 +08:00
    @imianhuatang #2 或者找到后给目录改个名字也可以
    dorothyREN
        5
    dorothyREN  
       2019-02-26 10:59:38 +08:00
    @imianhuatang #2 你这个可能是 /var 下面的目录跟文件太多了。
    imianhuatang
        6
    imianhuatang  
    OP
       2019-02-26 11:11:09 +08:00
    @dorothyREN 确实删不掉,不光删除,新建、重命名、改权限都不行,只能读取
    Orenoid
        7
    Orenoid  
       2019-02-26 11:21:55 +08:00
    你们俩这头像我还以为谁在自言自语
    abmin521
        8
    abmin521  
       2019-02-26 11:57:32 +08:00 via Android
    挂出来删一下?
    asilin
        9
    asilin  
       2019-02-26 12:14:42 +08:00   ❤️ 1
    很简单:
    1. 使用 LiveCD 进入系统,fsck 先修复 ext 文件系统;
    2. 正常挂载文件系统,使用 find、ncdu 等工具,查找到底是哪些目录的文件把 inode 占用完;
    3. 删除 /移走该目录,退出 LiveCD ;
    4. 正常启动系统即可恢复;
    snoopygao
        10
    snoopygao  
       2019-02-26 13:44:07 +08:00
    mount -o remount,rw /
    fsck 出错的文件系统
    julyclyde
        11
    julyclyde  
       2019-02-26 14:08:34 +08:00
    dmesg 看一眼
    估计是有 IO 错误
    也就是盘坏了
    catalina
        12
    catalina  
       2019-02-26 15:40:18 +08:00 via Android
    硬盘问题,快点换一个
    y7E6IG8spV7TU8n7
        13
    y7E6IG8spV7TU8n7  
       2019-02-27 11:05:50 +08:00
    没有什么问题是重启解决不了的,如果有,那就重装系统。。。。。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1179 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:01 · PVG 02:01 · LAX 10:01 · JFK 13:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.