文件系统管理工具

概述

参考

mkfs 与 mke2fs 用于在磁盘设备上创建 LInux 文件系统,也就是将分区格式化。

dumpe2fs 与 xfs_info 是相似的工具,分别对应 ext 和 xfs 文件系统的信息查看

mkfs

参考:

纯 mkfs 已弃用,使用 mkfs.TYPE 来创建指定类型的文件系统而不用 -t 选项了。事实上,mkfs 只是 Linux 下各种 Filesystem Builder(文件系统构建器) 的前端,仅通过 mkfs.TYPE 来调用各种特定于各种文件系统的构建器程序

比如 mkfs.ext4 就相当于调用了 EXT4 文件系统的构建器,即 mke2fs 命令。mkfs 默认调用的是 ext2 的构建器。

mke2fs

参考:

mke2fs 由 mkfs.ext2、mkfs.ext3、mkfs.ext4 调用。

关联文件与配置

/etc/mke2fs.conf # 控制 mke2fs 命令创建 EXT 文件系统时使用的默认参数。这些默认参数值会被命令行参数指定的值覆盖。

简单示例:

有全局默认值,以及为不同文件系统类型设定的默认值。

[defaults]
 base_features = sparse_super,filetype,resize_inode,dir_index
 blocksize = 4096
 inode_size = 256
 inode_ratio = 16384

[fs_types]
 ext3 = {
   features = has_journal
 }
 ext4 = {
   features = extents,flex_bg
   inode_size = 256
 }
 small = {
   blocksize = 1024
   inode_ratio = 4096
 }
 floppy = {
   features = ^resize_inode
   blocksize = 1024
   inode_size = 128
 }

Syntax(语法)

mke2fs [OPTIONS]

OPTIONS

  • -t <FS_TYPE> # 指定文件系统格式
  • -b BYTES # 指定 BlockSize,单位 Bytes。该值的有效大小是从 1024 到 65536 之间的 2 的 次幂,且不可以超过系统中 PageSize 的值。绝大多数情况下,默认值:4096
  • -g NUM # 指定 BlocksPerGroup,每个块组中块的数量。建议不要改变,默认值:32768
  • -i BYTES # 指定 BytesPerInode(比率),即 mke2fs 在创建文件系统时,为每块 BytesPerInode 大小的空间创建一个 Inode。比率越大,创建的 inode 越少。通常情况下,默认值:16384
    • 该值通常不能小于文件系统的 BlockSize。通常为每个 16KiB 的空间创建一个 Inode。
  • -I BYTES # 指定 InodeSize,单位 Bytes。 InodeSize 的值比如符合如下条件:128 < InodeSize < 128 * 2X
    • 大多数文件系统的默认 InodeSize 大小为 256 Bytes,但小型文件系统的 InodeSize 大小为 128 Bytes
  • -N NumberOfInodes # 指定最低的 Inode 数量。这将覆盖通过 BytesPerInode 计算出来的 Inode 数量。mke2fs 可以根据最低值推导出其他参数,

mkfs.xfs

参考:

mkfs.xfs 可以构建一个 XFS 类型的文件系统

关联文件与配置

由 -c 命令行选项指定,没有默认的配置文件。mkfs.xfs 可以接收 INI 格式的配置文件

Syntax(语法)

OPTIONS

  • -c STRING # 指定要使用的配置文件

dumpe2fs

参考:

转存 ext2/ext3/ext4 文件系统的信息。说白话就是显示指定设备上存在的各种 ext 格式的文件系统的信息(包括 超级块、块组、等 信息)。

Syntax(语法)

dumpe2fs [-bfghimxV] [-o superblock=<num>] [-o blocksize=<num>] DEVICE

OPTIONS

  • -h # 仅显示超级块信息,不显示任何块组描述符详细信息。

xfs_info

显示 XFS 文件系统的几何信息

xfs_info 显示有关现有 XFS 文件系统的几何信息。挂载点参数是挂载文件系统的目录的路径名。块设备或文件映像包含原始 XFS 文件系统。文件系统的现有内容不受干扰。

Syntax(语法)

~]# xfs_info /dev/mapper/vg1-root
meta-data=/dev/mapper/vg1-root   isize=512    agcount=4, agsize=32735744 blks
   =                       sectsz=512   attr=2, projid32bit=1
   =                       crc=1        finobt=1, sparse=1, rmapbt=0
   =                       reflink=1
data     =                       bsize=4096   blocks=130942976, imaxpct=25
   =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=63937, version=2
   =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

xfs_repair 命令行工具

参考:

xfs_repair 用于修复 XFS 文件系统。

df

参考:

查看文件系统的容量使用情况

默认显示的单位是 KiB。

Syntax(语法)

df [OPTIONS]… [FILE]…

OPTIONS

  • -h, –human-readable # 以人类可读的方式输出信息。磁盘容量以 1024 为除数。效果如下:
    • image.png
  • -i, –inodes # 列出 inode 信息
  • -T, –print-type # 输出文件系统类型
  • -t, –type <TYPE> # 仅列出指定类型的文件系统。(文件系统类型可以通过 -T 选项看到)

EXAMPLE

  • df -h / # 以人类易读的方式显示挂载在 / 下的信息,可以显示容量是 M 还是 G 还是 K

du

参考:

查看文件系统下当前目录以及子目录的容量

Syntax(语法)

OPTIONS

  • -a # 包括目录下的文件大小也一起显示
  • -s # 仅列出当前目录的容量总计,不显示子目录
  • -h # 把容量大小转换为人类易读的格式
  • -d, –maxdepth <NUM> # 仅列出目录深度 1 层的信息,即当前目录下的目录的大小,不往下列出子目录
  • –exclude=PATTERN # 排除 匹配到的文件

EXAMPLE

  • du -d 1 | sort -rn | head -n 2 # 列出不含子目录的当前目录下的目录大小,并以数字进行降序排列,且只显示前两行

常见问题

df -h 中 Used + Avail != Size

]# df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           795M  1.5M  794M   1% /run
/dev/vda4       252G   12G  241G   5% /

https://blog.51cto.com/weili163/1738183

比 du 更快的工具

ncdu

参考:

sn

参考:

Syntax(语法)

sn <SUBCOMMAND>

sn 工具完全通过子命令来执行具体操作

SUBCOMMAND

  • sort #

OPTIONS:

  • -d, –depth <NUMBER> # 目录深度

EXAMPLE

  • 显示根目录下一层深度的容量大小,并排序
    • sn sort -d 1 /

erdtree

参考:


最后修改 July 10, 2024: clearup, df -h (c7c85e9b)