我在 Ubuntu 13.10 上使用 btrfs 和 bcache 来安装 /。它运行速度很快。不幸的是,在正常启动过程中,“扫描 btrfs 文件系统”步骤失败。要成功启动,我必须进入恢复模式,然后选择菜单选项“继续进入主系统”。
我认为正常启动失败是因为在 btrfs 扫描其文件系统时 bcache0 设备尚未完成创建。我如何在这些步骤之间插入延迟?
答案1
Btrfs 实际上应该通过 udev 调用btrfs device ready
/来动态地对新设备做出反应BTRFS_IOC_DEVICE_READY
。请参阅/lib/udev/rules.d/64-btrfs.rules
。此逻辑已过时btrfs device scan
,不适合动态启动。根据这,Btrfs 发送给 udev 的消息有一个标志,用于告知何时有足够的后备设备来在其上挂载 Btrfs 文件系统。
但是,我不确定 mountall(一个文档不全的软件,用于扫描/etc/fstab
和调用 mount)是否实现了其余部分。解决方案包括修复 mountall 或破解某些特定于您系统的东西,放入 mount 命令/etc/rc.local
或自定义 udev 规则。
答案2
Btrfs 目前与 bcache 不稳定(2014 年 2 月) - 这是一个已知的错误并且正在努力解决,但目前我强烈建议不要这样使用。