Рейтинг:0

Невозможно загрузиться с initramfs (невозможно переключить root, каталог sysroot пуст)

флаг ca

Итак, у меня проблема с Fedora 34. Точнее, у меня проблема с специально созданный образ это часть услуг, которые мы предоставляем.

Эта проблема

Проблема связана с initramfs. Смотрите, мы использовали initrd до сих пор, но количество пакетов и двоичных файлов увеличилось с момента нашего последнего обновления с Fedora 32 до Fedora 34. Без ручного добавления новых пакетов количество базовых пакетов, пакетов выпуска и зависимостей теперь увеличилось до такой степени, что initrd стал больше 500 МБ.

Размер этого initrd делает этот образ очень нестабильным: устаревший PXE, например, не работает, потому что этот образ слишком велик для TFTP и зависает в большинстве сетей. Однако самая большая и самая важная проблема, с которой мы столкнулись, заключается в том, что GRUB2 больше не позволяет этому initrd загружаться, в основном на ноутбуках HP. Всякий раз, когда мы возвращаемся к Fedora 32, изображения кажутся более стабильными. Мы думаем, это из-за того, что initrd здесь меньше. Образы Fedora Workstation (34) по умолчанию также работают в системах, где наш пользовательский образ вызывает панику ядра.

В нашем изображении используется /vmlinuz и /initrd файл для загрузки на RAMDisk с использованием USB (GRUB2) или PXE (iPXE). Это задумано: наше приложение представляет собой интегрированный веб-браузер киоска на основе Chromium, работающий на Fedora (34). Он должен быть изменчивым и без гражданства.

Initramfs

я искал initramfs в качестве замены initrd, так как он намного новее, намного легче, а размер этого файла может не вызывать каких-либо ошибок в GRUB2. Возможно, это также позволит нам использовать устаревшие реализации PXE, такие как PXELINUX и Службы развертывания Windows. Я подумал, что могу легко заменить использование КПИО + XZ с Дракут. Но я застрял на проблеме, которую я действительно не могу обернуть вокруг...

Парадокс

Заменить initrd на initramfs в GRUB2 не так уж сложно. Если я использую одно и то же имя для обоих файлов (не одновременно), он будет искать имя файла в конфигурации и найдет файл. Легко, верно? Но затем всплывают сообщения ядра, и он не загружается, читая что-то вроде: Не удалось переключить корень: указанный корневой путь коммутатора /sysroot не является деревом ОС. файл os-release отсутствует.

Излишне говорить, что я проверил содержимое /sysroot: пустой. Должен быть ОС-релиз файл в /и т.д. Читая «Sysroot», он должен монтировать структуру каталогов ОС, поэтому, вероятно, он говорит мне, что в нем отсутствуют некоторые файлы.

системный корень

Вот где я заблудился: структура каталогов находится внутри initramfs, верно? Но чтобы запустить initramfs через GRUB2, мне нужно смонтировать структуру каталогов в Sysroot. Это означает, что я могу достичь только /sysroot изнутри initramfs. Но я не могу смонтировать initramfs, потому что мне нужен файл выпуска ОС в /sysroot. Я также не могу смонтировать каталоги внутри initramfs, потому что это файл образа. Вы видите мой парадокс? Как я должен монтироваться /sysroot, когда для этого требуется что-то внутри initramfs сам? я уже пробовала корень= параметр ядра с ПАРТУИД или же ЭТИКЕТКА, но я не могу использовать UUID так как это vFAT поверх UEFI.

Я что-то пропустил здесь? Должен ли я вообще использовать initramfs при использовании загрузочных USB RAMDisks? Если нет, следует ли мне разбить initrd на несколько файлов? Как мне это сделать?

ПРИМЕЧАНИЕ: Мы уже используем максимально возможное сжатие (уровень XZ 9). Я пытался разбить initrd раньше, но не смог сделать это должным образом.

Лично я не люблю просить о помощи, но когда все результаты поиска Google окрашены в фиолетовый цвет, мне может понадобиться подсказка в правильном направлении. Многие системы не работают после нашего обновления до F:34, и я бы очень хотел, чтобы это было исправлено. Кто-нибудь знает, как правильно использовать Dracut? Кто-нибудь имеет опыт создания образов initramfs? Почему мой /sysroot еще не смонтирован?

Помощь очень ценится, спасибо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.