Linux 6.7为蒸汽甲板的Btrfs添加新功能

2023年 9月 26日 24.4k 0

在Linux 6.7周期之前,排队进入Btrfs文件系统驱动程序的“for next”分支的是Temp FSID(相同FSID)功能,Valve的Steam Deck游戏机正在使用该功能。该功能是为了克服允许Btrfs安装两个不同设备的限制,这两个设备持有相同的文件系统映像,因此拥有相同的文件体系ID。

Igalia开发了这一功能,这是他们与Valve合作增强Steam Deck/SteamOS Linux的一部分。正如Igalia的Guilherme Piccoli在之前的补丁系列中所解释的那样:

“目前,我们无法可靠地装载相同的fsid文件系统,即使在btrfs中一次装载一个,但如果用户想同时装载它们,那几乎是不可能的。其他文件系统,如ext4,也可以做到这一点。

目标是允许具有A/B分区方案的系统(如Steam Deck控制台或各种移动设备)能够在两个分区中保存相同的文件系统映像;它还允许对文件系统完整性进行块设备级检查——这在Steam Deck映像安装中使用,以检查当前只读映像是否为原始映像。“

添加Btrfs临时fsid功能的代码提交继续添加:

“支持相同的fsid挂载具有允许btrfs在A/B分区设备中使用的优势,例如手机或Steam Deck。如果没有这种支持,用户保持相同的”图像版本是不安全的“例如,在A和B分区中,这种设置在开发中非常常见。此外,作为一大好处,它允许RO设备基于块设备进行fs完整性检查(而目前要求两者都有不同的fsid,打破了块设备哈希比较)。

通过使用文件系统功能“temp fsid”,可以添加相同的fsid挂载-当使用此类功能时,btrfs会为文件系统生成一个随机的fsid,并利用长期存在的metadata_uuid基础设施来启用此辅助“虚拟”fsid,有效地只需对代码进行很少的非侵入性更改,也不需要新的潜在漏洞。

为了防止更多的代码复杂性和角落情况,当fs上存在metadata_uuid标志时,或者如果设备处于fsid更改状态时,不允许使用临时fsid功能。对于提供该功能的文件系统,设备删除/替换也被禁用。“

此功能已
排队的
进入kdave/linux.git的下一个分支,Btrfs材料将在下一个linux内核周期之前暂存。因此,这个新的Btrfs功能将在Linux 6.7中找到,从现在到11月初合并窗口打开,任何问题都不会出现。

上周在OSS EU 2023上也提到了Btrfs的这一功能,作为
Valve对Linux的上游贡献
.

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论