LINUX.ORG.RU
решено ФорумAdmin

void: сломали dracut или что другое?

 , ,


0

2

После очередного обновления. Сделал uefi ядро, не грузится. Выжимки из lsinitrd.

Вот это работало:

Kernel Version: 6.6.54_1 (voidlinux@voidlinux) #1 SMP PREEMPT_DYNAMIC Fri Oct  4 21:30:04 UTC 2024
<...>
Version: dracut-059

Arguments:  --uefi --kver '6.6.54_1' --kernel-cmdline 'noefi root=UUID=<...>  rd.luks.uuid=luks-<...>'

Вот это уже не работает:

Kernel Version: 6.6.61_1 (voidlinux@voidlinux) #1 SMP PREEMPT_DYNAMIC Sat Nov 16 00:25:36 UTC 2024
<...>
Version: dracut-105

Arguments:  --uefi --uefi-stub '/boot/efi/linuxx64.efi.stub' --kver '6.6.61_1' --kernel-cmdline 'noefi root=UUID=<...>  rd.luks.uuid=luks-<...>'

Вся команда сборки в текстовом файле, только версии менял. И вот, ядро в панике, корень не может найти.

Деградация идет стабильно: сперва он перестал делать строку для корня, потом рабочий образ с --hostonly, потом потребовал stub в особом месте, теперь то место уже не то.

И образ снова не рабочий.

UPD: Собрал старое ядро новым dracut, и оно не работает.

UPD2: Сделал downgrade dracut-059_7, новое ядро заработало.



Последнее исправление: sr11 (всего исправлений: 4)

У меня на машине с ефи система грузится.

Из различий в выжимке у меня только Arguments: -q --force. Но у меня нет люкса, так что может дело в этом? Hostonly у меня прописан так:

$ cat /etc/dracut.conf
# PUT YOUR CONFIG IN separate files
# in /etc/dracut.conf.d named "<name>.conf"
# SEE man dracut.conf(5) for options
hostonly="yes"

В выхлопе xbps-query -Rs dracut заметил, что у меня не установлен dracut-uefi-105_1, но при этом всё грузится.

Вариантов 2 - либо у тебя отрыгнуло шифрование, либо эти гении отломали логику, которая отвечает за шифрование. Я ставлю на второй вариант, т.к. после такого я их за программистов особо не считаю. Но всё равно, начни с загрузки с лайва и попробуй ручками открыть люкс. Если всё ок, то распаковывай инитрд и изучай те скрипты, которые там лежат. Весело, да.

u5er ★★
()

Та же фигня: при обновлении до dracut-105_1 при попытке sudo xbps-reconfigure -f linux6.11 получаю:

Executing post-install kernel hook: 20-initramfs ...
dracut[E]: Module 'shell-interpreter' depends on module 'dash', which can't be installed
dracut[E]: Module 'shell-interpreter' depends on module 'dash', which can't be installed
dracut[E]: Module 'base' depends on module 'shell-interpreter', which can't be installed
dracut[E]: Module 'rootfs-block' depends on module 'base', which can't be installed
dracut[E]: Module 'virtiofs' depends on module 'base', which can't be installed
dracut[E]: Module 'shutdown' depends on module 'base', which can't be installed
Executing post-install kernel hook: 50-bootsize ...
Executing post-install kernel hook: 50-efibootmgr ...
Executing post-install kernel hook: 90-defaulter ...
linux6.11: configured successfully.

И ядро, соответственно, не грузится.

Откатился пока на dracut-059_7 обратно — с ним всё нормально.


upd: написал пост, и тут же при его перепрочтение дошло, в чём проблема — у меня dash в omit_dracutmodules был (сам добавил наряду с другим ненужным мне в этом образе). Убрал его оттуда, теперь всё нормально.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от sr11

Видимо, в новой версии что-то изменилось, и теперь shell-interpreter зависит от dash. В старой версии dracut, модуль shell-interpreter от dash не зависел. Я не стал глубоко копать, но насколько я понял, раньше он зависел от bash. Я до этого надобавлял в список ненужных модулей кучу всего, что мне точно не нужно на этапе загрузки. Сейчас вот так:

omit_dracutmodules+=" i18n rpmversion convertfs btrfs lvm qemu multipath qemu-net lunmask fstab-sys terminfo securityfs img-lib biosdevname caps crypt crypt-gpg dmraid dmsquash-live mdraid nbd nfs "

До этого там ещё dash был.

CrX ★★★★★
()