Как добавить модуль ядра в initrd ALT Linux

Установил ALT Рабочая станция К 8.2 на планшет на память eMMC (определяется в Linux как /dev/mmcblk0). Перезагрузил, а не запускается, висит на заставке Plymouth. Нажал escape и прочитал ошибку:
EXT4-fs (mmcblk0p4): Cannot load crc32c driver

Почесал репу и понял, что на момент попытки смонтировать файловую систему не загружен нужный модуль ядра, следовательно, нужно вручную добавить его в initrd. Для этого chroot’нулся в установленный ALT (/dev/mmcblk0p4) из установленной рядом Ubuntu (можно с Live-флешки) и сделал вот что:

nano /etc/initrd.mk
Дописал туда в конец строки:

MODULES_PREOAD+=crc32c
MODULES_PRELOAD+=crc32c

Нажал Ctrl+O, Ctrl+X, чтобы сохранить правки и выйти из nano.

Далее почитал altlinux.org/Make-initrd и понял, что, если я сделаю предложенный там make-initrd --kernel=`uname -r`, то вместо uname -r подставится ядро хостовой системы, откуда я чрутался в Альт, а это была Ubuntu. Поэтому сделал ls /boot и получил вот такой вывод:

System.map-4.9.50-un-def-alt0.M80P.1
System.map-4.13.16-un-def-alt0.M80P.1
config-4.9.50-un-def-alt0.M80P.1
config-4.13.16-un-def-alt0.M80P.1
efi
elf-memtest-5.01
grub
initrd.img
initrd-4.9.50-un-def-alt0.M80P.1.img
initrd-4.13.16-un-def-alt0.M80P.1.img
initrd-un-def.img
memtest-5.01.bin
splash
vmlinuz
vmlinuz-4.9.50-un-def-alt0.M80P.1
vmlinuz-4.13.16-un-def-alt0.M80P.1
vmlinuz-un-def

Как видите, у меня установлено 2 версии ядра, 4.9 и 4.13, и для обоих нужно пересобрать initramfs. Поэтому, никуда не выходя из чрута, сделал:

make-initrd --kernel=4.9.50-un-def-alt0.M80P.1
make-initrd --kernel=4.13.16-un-def-alt0.M80P.1
sync

Далее перезагрузился в Альт, который заработал.

Отправить ответ

avatar
  Subscribe  
Сообщать по почте