一、查看当前系统是否安装f2fs文件系统

方法1:使用modinfo命令查看已安装的模块信息(lsmod命令只能查找已运行加载的模块)

modinfo f2fs

方法2:在/proc/filesystems目录下也可以看到系统目前已安装的文件系统

cat /proc/filesystems

若显示未找到f2fs模块,则内核中目前没有支持f2fs文件系统。

二、使内核支持f2fs文件系统

方法1:重新编译内核

我开始使用方法2手动安装完成后,最后挂载磁盘时报错
在这里插入图片描述日志
在这里插入图片描述
原因是内核编译时没有把f2fs新特性支持编译进去,最后发现其实内核编译时就可以选择安装f2fs模块,于是我选择了重新编译内核,因此方法2仅供参考。重新编译内核步骤如下

打开内核源码目录,先执行命令清空上次编译产生的文件

make mrproper

然后打开内核编译配置选项界面

make menuconfig

在File systems中把F2FS相关的选项都勾选上
在这里插入图片描述
然后重新编译内核即可,具体步骤可参考:OpenEuler内核编译及替换
内核安装完成后再启动,使用modinfo f2fs命令就可以看到f2fs模块了
在这里插入图片描述

方法2:手动安装f2fs模块(仅供参考)

1.获取f2fs源码

F2FS的源码文件在/${内核源码目录}/fs/f2fs文件夹下面,f2fs的代码就在该目录下,可以将f2fs文件夹复制出来方便修改操作
在这里插入图片描述

cp -r /usr/src/kernels/4.19.90/fs/f2fs/ ~/f2fs

2.编译模块

打开f2fs文件夹,执行make命令进行编译

命令模板

make CONFIG_F2FS_FS=m -C ${内核目录} M=${f2fs目录} modules

举例

make CONFIG_F2FS_FS=m -C /usr/src/kernels/4.19.90 M=~/f2fs modules

3.安装模块

编译完成后可以看到f2fs目录下产生了一些目标文件,其中有一个f2fs.ko文件,执行insmod命令安装f2fs模块

insmod f2fs.ko

执行后终端无任何输出,说明安装成功。用dmesg命令可以看到安装f2fs模块产生的日志

dmesg

在这里插入图片描述
使用lsmod命令就可以看到刚插入的f2fs模块了
在这里插入图片描述

三、挂载f2fs文件系统

1.选择一个磁盘分区用于挂载f2fs文件系统

这里我选择的是给虚拟机新添加一个虚拟硬盘,打开虚拟机的设置->存储,选择添加虚拟硬盘,然后按照默认提示添加就可以了
在这里插入图片描述
添加完成后我们再启动虚拟机,使用命令

fdisk -l

就可以看到新添加的虚拟硬盘设备/dev/sdb了
在这里插入图片描述
使用fdisk /dev/sdb命令进入磁盘分区设置

fdisk /dev/sdb

输入n创建新分区,然后直接一直enter默认所有设置就好,最后输入w保存退出
在这里插入图片描述
再用lsblk命令就可以看到新创建的磁盘分区了
在这里插入图片描述

2.挂载f2fs文件系统

安装f2fs格式化磁盘工具

yum install f2fs-tools

格式化所选择的磁盘分区

mkfs.f2fs -l f2fs /dev/sdb1

再用命令 lsblk -f 就可以看到sdb1的文件系统类型被设置为了f2fs
在这里插入图片描述
创建一个目录用于挂载磁盘

mkdir /mnt/test_f2fs_dir

将/dev/sdb1挂载到指定目录下

mount -t f2fs /dev/sdb1 /mnt/test_f2fs_dir

再用命令 lsblk -f 就可以看到sdb1已经挂载到了指定目录下
在这里插入图片描述
但是这样操作只是临时挂载,重启后挂载就取消了,若要永久挂载需要编辑文件/etc/fstab

vim /etc/fstab

在文件末尾添加一行

/dev/sdb1 /mnt/test_f2fs_dir f2fs defaults 0 0

保存退出再重启虚拟机,可以发现磁盘依然挂载在指定目录上

参考文章

1.F2FS模块化编译与使用
2.linux下查看磁盘分区的文件系统格式
3.Linux挂载(永久)硬盘

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐