我有一个嵌入式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.
小错字:U-Boot版本是2016.5,而不是2015.5。 – Timo
您可以编辑您的问题以改进它(修复错误,追加附加信息等)。 – Tsyvarev
'initramfs'与分区无关。它只是一个在内核中作为分区挂载的存档。 – 0andriy