如果我有一个带有原始 NAND 闪存的嵌入式系统,带有坏块表等,据我所知,分区的最佳方法是将它们设置为全民基本收入卷在 MTD 之上。 UBI 负责磨损均衡,MTD 处理擦除块和坏块。有关于此的一些详细信息在这一页。
在嵌入式系统上,通常,引导加载程序阶段和 Linux 内核将使用某种特定于硬件供应商的安全引导进行验证,然后根文件系统通常采用 ubiblock + 的形式dm-验证+南瓜文件系统如上所述这里。这将是只读的,并且 dm-verity 负责身份验证。
为了实现 rw 分区,通常泛素化用来。
但是为了在块设备上实现安全存储(又名可读写加密存储),我可以使用dm-crypt (LUKS2)。解密密钥如何或从何而来超出了这个问题的范围。
问题 1:
我可以在原始 NAND 闪存上的 UBI 卷之上使用 dm-crypt (LUKS2) 吗?
这全民基本收入页面如下所述,意味着这是不可能的,因为在 UBI 卷之上实现的任何块设备都必须是只读的。
UBI 卷顶部的 R/O 块设备
UBI 允许在 UBI 卷之上创建块设备,但有以下限制:
- 只读操作。
- 串行化 I/O 操作,但请记住 NAND 驱动程序核心也已经串行化了所有 I/O。
尽管有这些限制,块设备对于安装的目的仍然非常有用只读,UBI 卷之上的常规文件系统。以squashfs 为例,它可以用作 NAND 设备上的轻量级只读 rootfs。在这种情况下,UBI 层将处理低级细节,例如位翻转处理和磨损均衡。
问题 2:
如果我不能使用 dm-crypt (LUKS2),那么我有什么选择?