关于磁盘及 fs 的几个问题处理

2020/04/17 Linux

关于磁盘及 fs 的几个问题处理

有块磁盘出现了错误,其挂载的分区可以 cd 进入,但无法通过 ls 列出当前目录文件,显示错误为:

cannot list ......:Bad message

没遇到这个问题,没办法,可能与之前的 dd 操作有关?

查到的资料显示可能是 inode 损坏,那么就尝试清理 inode。

First list bad file with inode e.g.

$ ls –il
Output

14071947 -rw-r--r-- 1 dba 0 2010-01-27 15:49 -®Å

Note: 14071947 is inode number.

Now Use find command to delete file by inode:
$ find . -inum 14071947 -exec rm -f {} ;
It will find that bad file and will remove it with force i.e remove without prompt.

但并不奏效,因为这个目录都无法再列出文件,而不是这个问题提出者遇到的无法 rm 的问题。

先重新格式化再挂 LVM 吧。

device is busy

$ sudo umonunt /your/path
umount: /your/path: device is busy,

# 原因是因为有程序在使用 /your/path 目录,我们可以使用 fuser 查看那些程序的进程,
$ sudo fuser -m /your/path
/your/path: 10278c 10279c 10280c 10281c 10282c 10295 10365 18222c
$ sudo fuser -m -v -k -i /your/path
$ sudo umount /your/path 

call failed: Structure needs cleaning.

卸载了磁盘,就应该格式化并重新分区,但会遇到这个问题。

$ sudo mkfs.ext4 /dev/xxx
call failed: Structure needs cleaning.

得,文件系统都崩了,先修复这个吧。

$ sudo fsck.ext4 /dev/sda[NUMBER]
# sudo fsck.ext4 -y /dev/sda[NUMBER]

后面都是水到渠成了。

参考

Search

    Table of Contents