【环境信息】
OS版本:23.09-RC2
内核: kernel-6.4.0-3.0.0.11.oe2309
repo:os、everything、epol
http://121.36.84.172/dailybuild/EBS-openEuler-23.09/rc2_openeuler-2023-08-30-23-34-40/
【问题复现步骤】
前置条件:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
这个用例在20.03、22.03上可以成功吗?
5.创建字符设备文件
mknod /mnt/testc c /mnt/testc 1 1
[root@localhost ~]# mknod /mnt/testc c /mnt/testc 1 1
mknod: extra operand ‘1’
Try 'mknod --help' for more information.
SYNOPSIS
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
根据man手册查询到的信息,如上指令是不能创建字符设备的,请问下你是怎样执行的,是否有完整的日志可以提供?
6.在空目录上挂载Ext3:
mount /dev/vggroup/lv1 /mnt/testc
[root@localhost ~]# mknod /mnt/testc c 1 1
[root@localhost ~]# mount /dev/vggroup/lv1 /mnt/testc
mount: /mnt/testc: mount point is not a directory.
[root@localhost ~]#
/mnt/testc 作为一个字符设备,要将块设备挂载在字符设备上,这个操作我也不太理解,如果有完整日志也麻烦提供一下
这个用例在之前版本如果成功执行过,麻烦也提供一下日志,谢谢
附件是22.03-SP2环境执行通过的日志,可供参考;
用例详情见:https://gitee.com/openeuler/mugen/blob/master/testcases/system-test/fs-test/FS_FileSystem/oe_test_FSIO_mount_character_dir.sh
分析:
1、对比成功和失败日志,可以看到用例失败不是因为挂载失败,块设备往字符设备上挂载预期就是失败的,失败原因是从mount命令的返回结果中grep不到“mount point is not a directory”,和预期不符
2、在23.09上测试,块设备上文件系统正常的情况下,将块设备挂载到字符设备,会报“mount point is not a directory”;如果损坏了文件系统,挂载命令会报截图中的文件系统损坏,而不是“mount point is not a directory”,从而与用例的预期结果不符
初步结论:
挂载前文件系统有问题,导致mount返回的结果与预期不符,从而导致用例失败
建议:
先复现出问题,再用fsck检测文件系统是否正常
@zhaotianyang 由于23.09版本util-linux升级,导致文件系统挂载的时候,mount命令报错:wrong fs type;事实上,文件系统是正常的
对util-linux降级,执行mount命令,符合预期:mount point is not a directory
2.39.1版本mount使用一组fsconfig api进行挂载操作,当前问题发生在其中调用SYS_move_mount时,系统返回错误码EINVAL,打印wrong fs type, bad option, bad superblock on %s missing codepage or helper program, or other error",在2.37.2版本上,只使用mount api进行挂载,系统返回错误码ENOTDIR,打印"mount point is not a directory"。
你的意思我明白,因为util-linux高低版本执行mount命令返回的错误码不一样,所以错误信息就不同。
可是高版本的这个错误信息不够准确,实际上文件系统是正确的,建议优化错误提示信息
通过指定的返回值,提示信息并没有指定是文件系统的问题,和社区保持一致,目前不更改。
同意以上观点,提示信息暂不做优化,issue关闭
登录 后才可以发表评论