为非 MSDOS 磁盘标签/分区表编写 Linux 内核模块

为非 MSDOS 磁盘标签/分区表编写 Linux 内核模块

Linux 支持一组不同的磁盘标签或分区表格式。例如,Sun 磁盘标签和 MS-DOS 分区表都是以不同格式包含(大部分)相同信息(分区)的磁盘标签。请注意,我指的不是文件系统类似于 ext{2,3,4} 但是磁盘标签如 msdos、GPT、Sun 磁盘标签等。

我想添加对当前不在内核中的磁盘标签格式的支持,但看起来(从浏览fs/partitions/)这些是内置于内核本身中的,并且不能编译为模块。

是否有任何类型的内核 API 可以用来添加对不同磁盘标签的支持?

我必须求助于losetup吗?

答案1

kpartx使用设备映射器工具在底层媒体上创建设备;您应该能够在用户空间中实现分区解析器并创建 DM 映射,将底层系统的某些部分作为块设备公开给内核。

这使您摆脱了内核工作的所有复杂性,并且如果需要,仍然应该支持通过 initramfs 启动。

相关内容