2016-08-05 8 views
0

У меня встроенная плата ARM и я экспериментирую с initramfs.Почему я не могу указать свои rootfs с PARTUUID, когда я использую initramfs?

Поскольку моя корневая файловая система EXT4 и драйвер EXT4 встроен в ядро ​​ (не скомпилированный как модуль), я могу напрямую загрузить ядро ​​и смонтировать корневую файловую систему, не требуется никаких initramfs. Без initramfs ядро ​​не будет распознавать UUID файловой системы, конечно, следовательно Я определил root с идентификатором раздела PARTUUID, как описано в документах ядра. Соответствующий аргумент загрузки выглядит так: root = PARTUUID = 7acc80f1-01 Это работает отлично.

Теперь, когда я пытаюсь загрузить ту же версию ядра с initramfs, система не загрузится. Он жалуется, что корневое устройство невозможно найти. Когда я меняю свои аргументы загрузки на , используйте файловую систему UUID вместо PARTUUID, затем она снова работает: root = UUID = c9fd552c-921c-4ddb-bb46-fe557943d311 Но почему это? Почему использование initramfs приводит к меньшим возможностям загрузки, когда ядро ​​сначала поддерживает PARTUUID?

Я хотел бы указать root уникальным образом, который работает в обеих установках, независимо от того, используется ли initramfs или нет. Названия устройств, такие как/dev/sda1, не являются параметрами, так как они могут меняться при загрузке (приложенные несколько дисков).

Любые подсказки?

Спасибо и уважением,

Timo

P.S: версия ядра 4.4.16 магистральный. U-Boot - 2015.5. Distro - Debian 8.

+0

Маленькая опечатка: U-Boot версия 2016.5, не 2015.5. – Timo

+0

Вы можете отредактировать свой вопрос для его улучшения (исправить ошибки, добавить дополнительную информацию и т. Д.). – Tsyvarev

+0

'initramfs' не имеет ничего общего с разделами. Это просто архив, который монтируется как раздел практически в ядре. – 0andriy

ответ

2

Хорошо, я понял это сейчас. Это известная проблема в пакете initramfs-tools Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=801154

Сценарий, используемый для установки корневой файловой системы initramfs, не поддерживает PARTUUID, а только UUID. Это было разрешено в распределении тестирования, но не в текущей стабильной (Jessie).