Как в дебиане сделать инъекцию в файл init в initrd ? (Так, чтобы при обновлении она не потерялось)

Knoppix

Модераторы: Warderer, Модераторы разделов

Silender
Сообщения: 23

Как в дебиане сделать инъекцию в файл init в initrd ?

Сообщение Silender »

Есть написанные несколько вставок в файл init, которые читают что им передано из grub и делают определенные действия. Все работает отлично, но при обновлении initrd перегенерируется.
Должен быть предусмотренный мейнтейнерами механизм решения подобных задач. Есть такой в дебиан ?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21408
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как в дебиане сделать инъекцию в файл init в initrd ?

Сообщение Bizdelnick »

man initramfs-tools
См. разделы HOOK SCRIPTS и BOOT SCRIPTS.
Если, конечно, я правильно понял, чего Вы хотите.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Silender
Сообщения: 23

Re: Как в дебиане сделать инъекцию в файл init в initrd ?

Сообщение Silender »

Мне нужно сначала смонтировать FAT, а затем на этом FAT смонтировать loop файл как корень.
Собственно проблемы возникают уже на стадии монтирования FAT. "no such device", хотя девайс 100% есть, как /dev/sda1, так и в /dev/disk/by-uuid

В initramfs.conf указано MODULES=most
В файле modules перечислены в столбик
fat
vfat
loop
nls_iso8859-1
nls_cp437
nls_utf8

Но все равно чего то не хватает.
Спасибо сказали:
Silender
Сообщения: 23

Re: Как в дебиане сделать инъекцию в файл init в initrd ?

Сообщение Silender »

Только что обратил внимание, что перед попыткой монтирования написано

modprobe: module vfat not found in modules.dep
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21408
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как в дебиане сделать инъекцию в файл init в initrd ?

Сообщение Bizdelnick »

Так я не понял,
Silender писал(а):
27.03.2015 19:43
Все работает отлично
или
Silender писал(а):
28.03.2015 15:16
"no such device"
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Silender
Сообщения: 23

Re: Как в дебиане сделать инъекцию в файл init в initrd ?

Сообщение Silender »

Когда то давно я делал загрузку системы из файлика и все работало отлично. Все вставки в init сохранены, они отлично работают (работали).

А сейчас я пытаюсь воспользоваться тем, что прочиал по ссылке выше. Передавать из grub хитрые параметры, чтобы скарипт init их как то воспринял и сделал то, что тербуется.

Вот нету модуля vfat на стадии initrd. Куда же он подевался ? :)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21408
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как в дебиане сделать инъекцию в файл init в initrd ?

Сообщение Bizdelnick »

Ну выкладывайте тогда подробно, что и как работало раньше, и что пытаетесь делать сейчас. А то я мало что понял.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Silender
Сообщения: 23

Re: Как в дебиане сделать инъекцию в файл init в initrd ?

Сообщение Silender »

Раньше, еще во времена sysvinit, дебиан был установлен на ext2, а потом запихнут в файл (в luks). При этом на этапе initramfs не было проблем с монтированием FAT раздела (на котором уже лежал файл). Просто обычная комманда mount отрабатывала без ошибок. Все было хорошо, кроме одного - обновление перетирало initrd.

А сейчас дебиан был с нуля установлен на btrfs в раздел luks. /boot на fat32. Вообще и boot и корень хочу запихать в файл. В идеале в luks и то, и другое. Но пока хотя бы с initrd разобраться. Пока не получается вообще ничего. Просто когда не удается загрузиться, консоль оказывается в initramfs. Там можно писать комманды. Комманда mount просто не работает. modprobe vfat тоже.

Вообще последовательность загрузки примерно такая
modprobe
fsck
mount
Первая и третья вываливаются с ошибкой.

Очень бы хотелось понять в чем дело. Пока я могу предположить, что раз система была устанвлена на btrfs, то FAT знать как бы не обязательно. Раньше такого не было, а сейчас появилось, так бывает в дистрибутивах линукса. Вопрос в том, как впихнуть все необходимое для FAT в initrd, да так, чтобы оно не выпилилось от туда при обновлении.
Спасибо сказали: