如何检查磁盘的大小及其最大 inode 数量

如何检查磁盘的大小及其最大 inode 数量

我刚刚电脑崩溃了,我想是因为我超出了最大文件数。最终我想增加驱动器的 inode 数量,就像这个人做的那样

https://serverfault.com/questions/724864/how-to-increase-max-number-of-allocated-inodes-in-linux

但现在,我需要了解我是否正确读取了计算机的数据。

kylefoley@c30:/mnt/disks$ sudo lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   10G  0 disk 
└─sda1   8:1    0   10G  0 part /
sdb      8:16   0  200G  0 disk 
kylefoley@c30:/mnt/disks$ df -i /dev/sdb
Filesystem       Inodes IUsed    IFree IUse% Mounted on
udev           15469823   288 15469535    1% /dev
kylefoley@c30:/mnt/disks$ df -T -h /dev/sdb
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs   60G     0   60G   0% /dev
kylefoley@c30:/mnt/disks$ df -i /mnt/disks/temp_dir1
Filesystem     Inodes  IUsed  IFree IUse% Mounted on
/dev/sda1      655360 142612 512748   22% /
kylefoley@c30:/mnt/disks$ df -T -h /mnt/disks/temp_dir1
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sda1      ext4  9.8G  2.5G  6.9G  27% /

该驱动器sdb有 200G,我想找出它有多少个 inode。对于此命令

kylefoley@c30:/mnt/disks$ df -i /dev/sdb
    Filesystem       Inodes IUsed    IFree IUse% Mounted on
    udev           15469823   288 15469535    1% /dev

我认为这意味着我的驱动器上有 1500 万个 inode sdb,但这并不能解释为什么我的计算机崩溃并显示错误消息not enough space,因为我创建了大约 200,000 个文件。我使用的另一台计算机有另一个具有相同规格的驱动器。但是当我尝试sdb使用

kylefoley@c30:/mnt/disks$ df -T -h /dev/sdb
    Filesystem     Type      Size  Used Avail Use% Mounted on
    udev           devtmpfs   60G     0   60G   0% /dev

/mnt/disks/temp_dir1我说的是 60G 而不是 200G。为什么?然后我尝试使用以下命令来安装外部硬盘:

kylefoley@c30:/mnt/disks$ df -i /mnt/disks/temp_dir1
    Filesystem     Inodes  IUsed  IFree IUse% Mounted on
    /dev/sda1      655360 142612 512748   22% /

上面写着 655,000 个 inode,这个数字似乎可能导致我的计算机崩溃。尽管使用了 142,000 个 inode,但驱动器是空的,因此,也许一个文件的创建使用了多个 inode,或者可能还有更多隐藏文件。无论如何,为什么只有 655,000 个 inode,/mnt/disks/temp_dir而 上有 1500 万个inode /dev/sdb?然后我尝试检查 的大小/mnt/disks/temp_dir1是否为 200G,因此我写道:

kylefoley@c30:/mnt/disks$ df -T -h /mnt/disks/temp_dir1
    Filesystem     Type  Size  Used Avail Use% Mounted on
    /dev/sda1      ext4  9.8G  2.5G  6.9G  27% /

而且我似乎认为大小是 9.8G,而不是 200G。10G 也是我使用的硬盘的大小,这也许可以解释一些事情。也许我没有将硬盘安装到安装点,但由于以下命令,这是错误的:

kylefoley@c30:~$ gcloud compute instances attach-disk c30 --disk disk-3 --zone us-west2-a
Updated [https://www.googleapis.com/compute/v1/projects/atomic-drake-250022/zones/us-west2-a/instances/c30].

更新


我记得上次连接磁盘后我忘记安装磁盘了。这次我的数字更合理了:

kylefoley@c30:/mnt/disks/temp_dir1$ df -i /dev/sdb
Filesystem       Inodes IUsed    IFree IUse% Mounted on
/dev/sdb       13107200 36981 13070219    1% /mnt/disks/temp_dir1
kylefoley@c30:/mnt/disks/temp_dir1$ df -T h /mnt/disks/temp_dir1
df: h: No such file or directory
Filesystem     Type 1K-blocks   Used Available Use% Mounted on
/dev/sdb       ext4 205375464 229888 205129192   1% /mnt/disks/temp_dir1
kylefoley@c30:/mnt/disks/temp_dir1$ df -T -h /mnt/disks/temp_dir1
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sdb       ext4  196G  225M  196G   1% /mnt/disks/temp_dir1
kylefoley@c30:/mnt/disks/temp_dir1$ df -i /mnt/disks/temp_dir1
Filesystem       Inodes IUsed    IFree IUse% Mounted on
/dev/sdb       13107200 36981 13070219    1% /mnt/disks/temp_dir1

如果我错了请纠正我,但看起来驱动器中/mnt/disks/temp_dir1有 1300 万个 inode。还有 196G。这不是我想要的那么多 inode。我想使用 1200 万个,但为了安全起见,我最好构建一个具有更多 inode 的新磁盘。

答案1

参数df文件对象,并df显示有关保存该对象的文件系统的信息。执行此操作时df /dev/sdbdf将显示伪文件系统的信息/dev

您需要输入:

mount | grep '/dev/sdb'

/dev/sdb例如,要找出文件系统的安装位置:

/dev/sdb on /mnt/somedir type ext4 (rw,relatime,data=ordered)

然后使用df /mnt/somedir获取相关的文件系统信息(但根据输出lsblk,没有任何内容被挂载。

但是,由于df输出mnt/disks/temp_dir1报告显示它处于打开状态sda1,就像根一样,因此它很可能是绑定挂载(或多或少是目录的“硬链接”)(输出mount将报告 /dev/sda1、根和任何绑定挂载上的几个文件系统)。

相关内容