linux创建xfs文件系统命令,通过案例学习xfs文件系统相关命令

本文介绍了如何在Linux系统中创建、扩容和修复XFS文件系统。通过`mkfs.xfs`命令创建XFS,使用`xfs_growfs`进行扩容,借助`xfs_repair`进行文件系统一致性检查和修复。需要注意的是,XFS文件系统一旦创建,无法缩容,只能扩容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

32b1e532cc969c9096ff52d132dcbc1a.png

在我们另一篇文章中,我带您领略了一下什么是 xfs,xfs 的相关特性等内容。本文我们来看一些常用的 xfs 管理命令。我们将会通过几个例子来讲解如何创建 xfs 文件系统,如何对 xfs 文件系统进行扩容,如何检测并修复 xfs 文件系统。

创建 XFS 文件系统

mkfs.xfs 命令用来创建 xfs 文件系统。无需任何特别的参数,其输出如下:

root@kerneltalks#mkfs.xfs/dev/xvdf

meta-data=/dev/xvdf isize=512agcount=4,agsize=1310720blks

=sectsz=512attr=2,projid32bit=1

=crc=1finobt=0,sparse=0

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

=sunit=0swidth=0blks

naming=version2bsize=4096ascii-ci=0ftype=1

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

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

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

注意:一旦 XFS 文件系统创建完毕就不能在缩容而只能进行扩容了。

调整 XFS 文件系统容量

你只能对 XFS 进行扩容而不能缩容。我们使用 xfs_growfs 来进行扩容。你需要使用 -D 参数指定挂载点的新容量。-D 接受一个数字的参数,指定文件系统块的数量。若你没有提供 -D 参数,则 xfs_growfs 会将文件系统扩到***。

root@kerneltalks#xfs_growfs/dev/xvdf-D256

meta-data=/dev/xvdf isize=512agcount=4,agsize=720896blks

=sectsz=512attr=2,projid32bit=1

=crc=1finobt=0spinodes=0

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

=sunit=0swidth=0blks

naming=version2bsize=4096ascii-ci=0ftype=1

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

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

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

datasize256too small,oldsizeis2883584

观察上面的输出中的***一行。由于我分配的容量要小于现在的容量。它告诉你不能缩减 XFS 文件系统。你只能对它进行扩展。

root@kerneltalks#xfs_growfs/dev/xvdf-D2883840

meta-data=/dev/xvdf isize=512agcount=4,agsize=720896blks

=sectsz=512attr=2,projid32bit=1

=crc=1finobt=0spinodes=0

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

=sunit=0swidth=0blks

naming=version2bsize=4096ascii-ci=0ftype=1

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

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

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

data blocks changedfrom2883584to2883840

现在我多分配了 1GB 的空间,而且也成功地扩增了容量。

1GB 块的计算方式:

当前文件系统 bsize 为 4096,意思是块的大小为 4MB。我们需要 1GB,也就是 256 个块。因此在当前块数,2883584 上加上 256 得到 2883840。因此我为 -D 传递参数 2883840。

修复 XFS 文件系统

可以使用 xfs_repair 命令进行文件系统一致性检查和修复。使用 -n 参数则并不对文件系统做出什么实质性的修改。它只会搜索并报告要做哪些修改。若不带 -n 参数,则会修改文件系统以保证文件系统的纯净。

请注意,在检查之前,你需要先卸载 XFS 文件系统。否则会报错。

root@kerneltalks#xfs_repair-n/dev/xvdf

xfs_repair:/dev/xvdf contains a mounted filesystem

xfs_repair:/dev/xvdf contains a mountedandwritable filesystem

fatal error--couldn't initialize XFS library

卸载后运行检查命令。

root@kerneltalks#xfs_repair-n/dev/xvdf

Phase1-findandverify superblock...

Phase2-usinginternal log

-zero log...

-scan filesystem freespaceandinode maps...

-found root inode chunk

Phase3-foreach AG...

-scan(but don't clear) agi unlinked lists...

- process known inodes and perform inode discovery...

- agno = 0

- agno = 1

- agno = 2

- agno = 3

- agno = 4

- process newly discovered inodes...

Phase 4 - check for duplicate blocks...

- setting up duplicate extent list...

- check for inodes claiming duplicate blocks...

- agno = 0

- agno = 1

- agno = 2

- agno = 3

- agno = 4

No modify flag set, skipping phase 5

Phase 6 - check inode connectivity...

- traversing filesystem ...

- traversal finished ...

- moving disconnected inodes to lost+found ...

Phase 7 - verify link counts...

No modify flag set, skipping filesystem flush and exiting.

你可以看到,命令在每个阶段都显示出了为了文件系统变得健康可能做出的修改。若你希望命令在扫描时实际应用这些修改,则不带任何参数运行命令即可。

root@kerneltalks#xfs_repair/dev/xvdf

Phase1-findandverify superblock...

Phase2-usinginternal log

-zero log...

-scan filesystem freespaceandinode maps...

-found root inode chunk

Phase3-foreach AG...

-scanandclearagi unlinked lists...

-process known inodesandperform inode discovery...

-agno=0

-agno=1

-agno=2

-agno=3

-agno=4

-process newly discovered inodes...

Phase4-checkforduplicate blocks...

-setting up duplicate extentlist...

-checkforinodes claiming duplicate blocks...

-agno=0

-agno=1

-agno=2

-agno=3

-agno=4

Phase5-rebuild AG headersandtrees...

-resetsuperblock...

Phase6-check inode connectivity...

-resetting contents of realtime bitmapandsummary inodes

-traversing filesystem...

-traversal finished...

-moving disconnected inodes to lost+found...

Phase7-verifyandcorrectlinkcounts...

done

你会发现 xfs_repair 命令对文件系统做出了修改让其变得健康。

查看 XFS 版本以及它的详细信息

查看 xfs 文件系统版本很简单。使用 -V 参数运行 xfs_info 再加上挂载点就行了。

root@kerneltalks#xfs_info-V/shrikant

xfs_info version4.5.0

若要查看 XFS 文件系统的详细信息,比如想计算扩容 XFS 文件系统时要新增多少个块,需要了解块大小,块的个数等信息,则不带任何选项运行 xfs_info 加上挂载点。

root@kerneltalks#xfs_info/shrikant

meta-data=/dev/xvdf isize=512agcount=5,agsize=720896blks

=sectsz=512attr=2,projid32bit=1

=crc=1finobt=0spinodes=0

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

=sunit=0swidth=0blks

naming=version2bsize=4096ascii-ci=0ftype=1

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

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

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

则会显示 XFS 文件系统的所有详细信息,就跟创建 XFS 文件系统时显示的信息一样。

此外还有一些 XFS 文件系统管理命令可以修改并管理 XFS 的元数据。我们将在另一篇文章中来讲解。

【编辑推荐】

【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值