Linux磁盘空间占满故障解决方法

当磁盘被某大文件占满时,而且此大文件正在被某些进程读写并占用着,此时无法删除和置空此文件,只能先找到占用大文件的进程,然后终止进程,最后置空此文件。

实例如下:在/boot分区中创建大文件test,将boot分区的磁盘占满,通过另外一个终端进入主机,vim编辑此test文件,模拟大文件被vim进程占用,然后删除和清空此test文件。

终端1
[root@CentOS7 ~]# df -h  /boot/                                    #查看boot分区大小
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1      997M  110M  887M  12% /boot
[root@centos7 ~]# dd  if=/dev/zero of=/boot/test bs=1M count=900      #创建900M文件,占满磁盘
dd: error writing ‘/boot/test’:  No space left on device
887+0 records in
886+0 records out
930058240 bytes (930 MB)  copied, 13.166 s, 70.6 MB/s
[root@centos7 ~]#
 
终端2在创建好大文件后,启用终端2,vim编辑此文件,模拟此文件被占用

[root@centos7boot]# vim test
1
~                                                                                                                                                                                           
~   

回到终端1中进行删除文件

[root@centos7 ~]# rm -rf/boot/test                            #无法删除此大文件
[root@centos7 ~]# df -h /boot                            #发现此大文件并没有被删除
Filesystem      Size Used Avail Use% Mounted on
/dev/sda1      997M 997M  20K 100% /boot
[root@centos7 ~]# >/boot/test                          #置空此大文件并没有被置空
-bash: /boot/test: No spaceleft on device
[root@centos7 ~]# df -h /boot
Filesystem      Size Used Avail Use% Mounted on
/dev/sda1      997M 997M  20K 100% /boot
[root@centos7 ~]# lsof |grep/boot/test
vim      6562        root  3r      REG                8,1 930045952    456127 /boot/test
root@centos7 ~]# kill 6562                              #杀死此vim的进程
[root@centos7 ~]# >/boot/test                          #置空此文件
[root@centos7 ~]# df -h /boot                          #验证发现此文件已经被清空
Filesystem      Size Used Avail Use% Mounted on
/dev/sda1      997M 110M  887M  12% /boot
[root@centos7 ~]# rm -rf/boot/test                    #然后删除此文件
[root@centos7 ~]# ll/boot/test
ls: cannot access/boot/test: No such file or directory

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13566.html