“未知分区表” - 错误配置的内核

Sal*_*uts 3 linux partition kernel ext4 grub2

我正在为新安装的机器编译自定义 linux 内核,在启动到新内核 (3.12) 后,init 进程找不到根设备,我追踪到系统unknown partition table在相关设备上出现错误 ( /dev/sda) . 通用内核启动并挂载根分区就好了。我似乎在内核配置中找不到任何看起来相关的东西,它可能缺少什么?

der*_*ert 6

有很多选项大多命名为CONFIG_.*_PARTITION,您可能没有设置您需要的选项。这些可能只有在您对CONFIG_PARTITION_ADVANCED(高级分区选择)回答是时才会显示。

您至少需要(在 PC 上):

CONFIG_MSDOS_PARTITION=y       # traditional MS-DOS partition table
CONFIG_EFI_PARTITION=y         # EFI GPT partition table
Run Code Online (Sandbox Code Playgroud)

有可能:

LDM_PARTITION=y                # Windows logical (dynamic) disks
Run Code Online (Sandbox Code Playgroud)

您可能还需要更多(例如CONFIG_MAC_PARTITIONBSD_DISKLABEL)来从您可能实际遇到的其他操作系统的磁盘读取分区表。

您可以在内核源代码树(在block/partitions/Kconfig)或Linux Cross Reference 中看到所有分区表选项。