linux磁盘未满但提示不能放文件,Linux中磁盘还有空间,但创建文件时提示空间不足...

首先需要知道创建文件时,需要满足两个条件:1、磁盘上还有空间;2、inode号还有剩余。

这两个条件可以分别使用"df -h"以及"df -i"查看使用情况

[xf@xuexi ~]$ df -h

文件系统 容量 已用 可用 已用% 挂载点

/dev/sda2 10G 4.7G 5.4G 47% /

devtmpfs 975M 0 975M 0% /dev

tmpfs 991M 0 991M 0% /dev/shm

tmpfs 991M 11M 980M 2% /run

tmpfs 991M 0 991M 0% /sys/fs/cgroup

/dev/sr0 4.2G 4.2G 0 100% /mnt

/dev/sda1 197M 179M 19M 91% /boot

tmpfs 199M 8.0K 199M 1% /run/user/42

tmpfs 199M 28K 199M 1% /run/user/1000

[xf@xuexi ~]$ df -i

文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点

/dev/sda2 5242880 168213 5074667 4% /

devtmpfs 249532 410 249122 1% /dev

tmpfs 253514 1 253513 1% /dev/shm

tmpfs 253514 956 252558 1% /run

tmpfs 253514 16 253498 1% /sys/fs/cgroup

/dev/sr0 0 0 0 - /mnt

/dev/sda1 38176 347 37829 1% /boot

tmpfs 253514 7 253507 1% /run/user/42

tmpfs 253514 18 253496 1% /run/user/1000

如果所在的分区inode满了,可以将一些没用的文件或目录删除,释放inode号。也可以将部分文件备份到一个新分区,然后删除这些文件,释放inode号,再将备份分区挂载到原来的位置。(软链接也可以是试试)例如:/data/cache占用了大量的inode号。那么我可以添加一个新的空分区/dev/sdb1,格式化,挂载。然后将/data/cache下文件备份到/dev/sdb1分区下,接着再删除原位置的文件。最后我们卸载分区,重新挂载到/data/cache下。(没有验证,仅供参考)

inode号在xfs文件系统前(ext4/ext3/ext2)都是在格式化之前就定下来的,例如ext4文件系统使用命令mkfs.ext4中的-N选项设置数量 。但是我们来到xfs文件系统时,mkfs。xfs没有-N这个选项,不用担心,这时使用-i maxpct=n来调整inode区占整个分区的比例(默认n=25,即占用25%的空间大小)。而且似乎可以使用命令xfs_growfs在不重新格式化分区就可以增加inode区占整个分区的比例,从而增加inode总数。

下面我来使用xfs_growfs命令,举一个例子:

[root@xuexi ~]# mount /dev/sdb1 /sdb1  //挂载一个分区

[root@xuexi ~]# df -i /sdb1  //看一下inode号

文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点

/dev/sdb1 524288 3 524285 1% /sdb1

[root@xuexi ~]# touch /sdb1/File  //在里面创建一个测试文档

[root@xuexi ~]# echo aaaaa >> /sdb1/File

[root@xuexi ~]# cat /sdb1/File

aaaaa

[root@xuexi ~]# xfs_growfs -m 30 /dev/sdb1  //扩展inode占整个磁盘的容量

meta-data=/dev/sdb1 isize=512 agcount=4, agsize=65536 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0 spinodes=0

data = bsize=4096 blocks=262144, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=1

log =internal bsize=4096 blocks=2560, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

inode max percent changed from 25 to 30

[root@xuexi ~]# df -i /dev/sdb1  //可以发现inode总量增加

文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点

/dev/sdb1 629144 4 629140 1% /sdb1

[root@xuexi ~]# ls /sdb1/  //并且测试文档没有损坏

File

[root@xuexi ~]# cat /sdb1/File

aaaaa

我的/dev/sdb1分配大小为1G(df -h /dev/sdb1查看时显示的是1014M),此时inode区占比25%,inode单个大小为512字节,那么inode的数量就是1024M*1024K/M*1024B/K*25%/512B,算下来就是第一次显示的524288。然后我调整了inode区占比到30%,inode单个大小别改还是512字节,那么此时的inode数量应该是1024M*1024K/M*1024B/K*30%/512B,算下来629145.6(NMD,WSM),居然差了1个,不过影响不大。注意:在增加inode占比时需要注意有没有空间啊,别没有空间了还在死命加inode区。在加inode区前请计算一下空间啊

在格式化是更改我就写一条命令了'mkfs.xfs -i size=num,maxpct=n /dev/sdb1'。-i选项代表我要对inode动手了,size设置一个inode大小,maxpct设置iNode区占比。

Linux中touch命令使用(创建文件)

touch命令有两个功能: 1.用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来: 2.用来创建新的空文件. 语法 touch(选项)(参数) 选项 -a:或 ...

Linux 磁盘空间查询&&解决Linux 中“磁盘空间不足”的问题

一.linux 查看目录的剩余空间大小 两个命令df .du结合比较直观 df -h 查看整台服务器的硬盘使用情况 du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的 ...

Linux中磁盘分区——理论篇

Linux中磁盘分区——理论篇 现在主流的分区的方式有两种——MBR分区和GPT分区,本文将着重介绍MBR分区底层原理,及用相关命令验证相关原理 Linux中磁盘分区理论篇 为什么要对磁盘进行分区 M ...

Linux中磁盘mbr分区——实践篇

Linux中磁盘mbr分区——实践篇 fdisk命令 语法 fdisk(选项)(参数) 选项 -b 指定每个分区的大小 -l 列出分区表信息 -v 显示版本信息 参数 设备文 ...

Linux 查看磁盘容量、查找大文件、查找大目录

Linux 查看磁盘容量.查找大文件.查找大目录 磁盘统计 查看磁盘使用情况 df -h 文件统计 查找/home 目录下大于800M的文件 find /home -type f -size +800 ...

C# 创建文件时,文件夹不存在,如何自动创建文件夹

c# 创建文件时怎么创建文件夹?strhtml=......StreamWriter sw=new StreamWriter("D:/test/1.aspx",false);sw. ...

SVN解决创建文件时不带锁

解决创建文件时不带锁   C:\Documents and Settings\你的用户名\Application Data\Subversion   找到上面的用户路径 打开config添加 ### ...

Visual studio 创建文件时自动添加备注

Visual studio 创建文件时自动添加备注 描述 要求每回添加一个类,普通类或单元测试类文件头自动添加备注, 比如:Copyright, FileName, Author and so on. ...

随机推荐

【leetcode】Permutations

题目描述: Given a collection of numbers, return all possible permutations. For example, [1,2,3] have the ...

codeforces泛做..

前面说点什么.. 为了完成日常积累,傻逼呵呵的我决定来一发codeforces 挑水题 泛做.. 嗯对,就是泛做.. 主要就是把codeforces Div.1的ABCD都尝试一下吧0.0.. 挖坑0 ...

Web API的Log问题

建立了一个Web API项目,在WebApiConfig.cs中已经启用了Tracing. config.EnableSystemDiagnosticsTracing(); 同时web.config中 ...

Java怎么实现多继承的功效

Java不支持多继承,但是通过一些巧妙的设计来达到和多继承同样的效果  通过接口.内隐类,继承.实现,互相配合,达到多继承的效果  1.Java中一个类不能继承多个具体class.  2.一个类只可继 ...

delphi SpeedButtonDown

的属性 的事件 的方法   设置SpeedButton的Down的属性      AllowAllUp属性 当有多个SpeedButton时 让有2个按钮都能处于按下状态 设置它的GroupIndex ...

js中对象引用出现的问题

先看一个特别不符合直觉的代码

20145203盖泽双实验一 Java开发环境的熟悉(Linux + Eclipse)

实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...

SURF算法的一篇翻译与论证

原文地址:http://www.sohu.com/a/157742015_715754 SURF: Speeded Up Robust Features 摘要 本文提出了一种新型的具有尺度和旋转不变特 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值