2016-08-05 179 views
0

我有一个嵌入式ARM板,正在尝试使用initramfs。为什么我在使用initramfs时无法使用PARTUUID指定我的rootfs?

因为我的根文件系统EXT4是和EXT4驱动程序内置到内核(未编译为模块),我可以直接启动内核并挂载根文件系统,无需initramfs的。 没有initramfs,内核将无法识别文件系统UUID,当然,因此我指定了具有分区标识符PARTUUID的根,如内核文档中所述。问题的引导参数是这样的: root = PARTUUID = 7acc80f1-01 这工作得很好。

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

我想以独特的方式在两个设置中都可以指定root,无论是否使用initramfs。诸如/ dev/sda1之类的设备名称不是一个选项,因为它们在启动过程中可能会有所不同(多个附加的磁盘)。

任何线索?

感谢和问候,

蒂莫

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

+0

小错字:U-Boot版本是2016.5,而不是2015.5。 – Timo

+0

您可以编辑您的问题以改进它(修复错误,追加附加信息等)。 – Tsyvarev

+0

'initramfs'与分区无关。它只是一个在内核中作为分区挂载的存档。 – 0andriy

回答

2

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

用于通过initramfs挂载根文件系统的脚本不支持PARTUUID,但仅支持UUID。 这已经在测试分发中得到解决,但不是在当前的稳定版(Jessie)中。

相关问题