koloman Asked: 2015-09-25 00:10:54 +0800 CST2015-09-25 00:10:54 +0800 CST 2015-09-25 00:10:54 +0800 CST 如何确定我使用的是哪个 BtrFS 驱动程序版本? 772 BtrFS我正在网上阅读几篇文章。有时我看到这样的陈述 不要使用早于 0.20rc1 的 BtrFS 版本。 我怎样才能知道我的内核中有哪个版本? drivers 2 个回答 Voted Best Answer Adam Ryczkowski 2015-10-01T02:36:59+08:002015-10-01T02:36:59+08:00 TLDR 从 Linux 内核 v2.6.32(2009 年 12 月)开始,BTRFS 模块放弃了它自己的独立版本控制方案。根据官方变更日志,在那一刻之前的最后一个版本是 v0.19 。 原答案 在 Linux 中实现文件系统有两种方式: 要么将代码合并到内核中,要么使用“用户空间中的文件系统”框架(FUSE)将其构建为用户空间应用程序。 在内核中实现的文件系统比在 FUSE 之上实现的文件系统效率更高(但随着 FUSE 变得越来越成熟,这种差异会随着时间的推移而缩小)。 BTRFS 仅在内核中作为名为 的内核模块实现btrfs,因此它的版本与内核版本紧密耦合。而一个 BTRFS 内核团队在实现他们的 FS 的过程中向内核贡献了大量的通用代码。通常你会btrfs使用命令获取内核模块的版本信息modinfo btrfs | grep -i ver,但在我的例子中(Ubuntu 14.04)这个字段不存在btrfs。 是的,很多东西都是在内核中实现的。这就是为什么说 Linux 具有单片内核。在 GNU HURD 中,如果只有 GNU HURD 可以生产就绪,您就会将 btrfs 作为一项单独的服务(类似于“驱动程序”)。 事实并非如此,btrfs 模块版本与 btrfs-tools 相同。它们通常重合,但不一定必须重合。(曾经有一段时间,Ubuntu 附带的 btrfs-tools 比与内核兼容的最新版本落后一年)。Btrfs-tools 旨在向后兼容,因此较新的版本可以在较旧的内核上运行,如果内核中尚不存在某些 btrfs 功能,则可能会减少功能。 同样,BTRFS 版本在开发阶段与内核版本紧密结合。实际上,除了 kernel.btrfs git 源代码提交之外,没有诸如“btrfs 驱动程序版本”之类的东西。或者除了在 FUSE 之上编写的文件系统之外的任何其他 FS 版本。 Victor Yarema 2020-03-01T11:56:02+08:002020-03-01T11:56:02+08:00 从 Linux 内核 v2.6.32(2009 年 12 月)开始,BTRFS 模块放弃了它自己的独立版本控制方案。 此后只用uname -r获取内核版本。 根据官方变更日志,在此之前的最后一个版本是 v0.19 。
TLDR
从 Linux 内核 v2.6.32(2009 年 12 月)开始,BTRFS 模块放弃了它自己的独立版本控制方案。根据官方变更日志,在那一刻之前的最后一个版本是 v0.19 。
原答案
在 Linux 中实现文件系统有两种方式:
要么将代码合并到内核中,要么使用“用户空间中的文件系统”框架(FUSE)将其构建为用户空间应用程序。
在内核中实现的文件系统比在 FUSE 之上实现的文件系统效率更高(但随着 FUSE 变得越来越成熟,这种差异会随着时间的推移而缩小)。
BTRFS 仅在内核中作为名为 的内核模块实现
btrfs
,因此它的版本与内核版本紧密耦合。而一个 BTRFS 内核团队在实现他们的 FS 的过程中向内核贡献了大量的通用代码。通常你会btrfs
使用命令获取内核模块的版本信息modinfo btrfs | grep -i ver
,但在我的例子中(Ubuntu 14.04)这个字段不存在btrfs
。是的,很多东西都是在内核中实现的。这就是为什么说 Linux 具有单片内核。在 GNU HURD 中,如果只有 GNU HURD 可以生产就绪,您就会将 btrfs 作为一项单独的服务(类似于“驱动程序”)。
事实并非如此,btrfs 模块版本与 btrfs-tools 相同。它们通常重合,但不一定必须重合。(曾经有一段时间,Ubuntu 附带的 btrfs-tools 比与内核兼容的最新版本落后一年)。Btrfs-tools 旨在向后兼容,因此较新的版本可以在较旧的内核上运行,如果内核中尚不存在某些 btrfs 功能,则可能会减少功能。
同样,BTRFS 版本在开发阶段与内核版本紧密结合。实际上,除了 kernel.btrfs git 源代码提交之外,没有诸如“btrfs 驱动程序版本”之类的东西。或者除了在 FUSE 之上编写的文件系统之外的任何其他 FS 版本。
从 Linux 内核 v2.6.32(2009 年 12 月)开始,BTRFS 模块放弃了它自己的独立版本控制方案。
此后只用
uname -r
获取内核版本。根据官方变更日志,在此之前的最后一个版本是 v0.19 。