当我使用initramfs时,为什么我不能使用PARTUUID指定我的rootfs?

时间:2016-08-05 08:31:14

标签: linux linux-kernel kernel initrd

我有一个嵌入式ARM板,正在尝试使用initramfs。

由于我的根文件系统是EXT4而 EXT4驱动程序内置于内核(未编译为模块),我可以直接启动内核并挂载根文件系统,不需要initramfs。 没有initramfs ,内核当然不会识别文件系统UUID,因此我使用分区标识符PARTUUID 指定了root,如内核文档中所述。有问题的引导参数如下所示: 根= PARTUUID = 7acc80f1-01 这非常合适。

现在,当我尝试使用initramfs启动相同的内核版本时,系统无法启动。它抱怨根设备无法找到。当我将引导参数更改为使用文件系统UUID而不是PARTUUID时,它再次起作用: 根= UUID = c9fd552c-921C-4ddb-bb46-fe557943d311 但那是为什么呢? 当内核首先原生支持PARTUUID时,为什么使用initramfs会导致更少的启动选项?

我想在两种设置中以独特的方式指定root,无论是否使用initramfs。诸如/ dev / sda1之类的设备名称不是一个选项,因为它们在引导期间可能会有所不同(连接多个磁盘)。

任何线索?

谢谢和问候,

蒂莫

P.S:内核版本是主线4.4.16。 U-Boot是2015.5。 Distro是Debian 8。

1 个答案:

答案 0 :(得分:2)

好的,我现在明白了。这是Debian的initramfs-tools包中的一个已知问题:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=801154

initramfs用于挂载根文件系统的脚本不支持PARTUUID,只支持UUID。 这在测试发布中得到了解决,但在当前的稳定版中没有得到解决(Jessie)。