Большинство вопросов о Busybox связано с тем, что пользователи переносятся в оболочку Busybox из-за некоторых неизвестных проблем во время загрузки. Это должно сделать Busybox одним из самых ненавистных компонентов программного обеспечения.
Моя проблема в обратном. Я хочу сознательно запускать Busybox во время загрузки либо из GRUB, либо даже до GRUB. Это возможно? Как мне это сделать? Цель состоит в том, чтобы выполнить некоторые команды до повторной инициализации последовательности загрузки. Поэтому в основном я хочу выполнить некоторые команды, чтобы сделать некоторое оборудование доступным для загрузчика.
Вам нужно будет сделать пользовательский initrd.
Извлеките initrd, обратите внимание, я использую ~/initrd
в качестве рабочего каталога
cp /boot/initrd_your_version ~
cd ~/initrd
gzip -dc ../initrd_your_version | cpio -imvd --no-absolute-filenames
Вы не упомянули, что вы хотели сделать, поэтому я могу дать здесь только общие советы.
Теперь добавьте все необходимые библиотеки и / или двоичные файлы в ~/initrd
. Используйте ldd для определения зависимостей.
Отредактируйте ~ / initrd / init, это скрипт оболочки, так что добавьте то, что вам нужно.
Упакуйте его
cd ~/initrd
find . | cpio --quiet --dereference -o -H newc | gzip -9 > ../initrd-custom.img.your_version
См. Также: http://en.gentoo-wiki.com/wiki/Initramfs
Уверены, что ссылка является gentoo , но я не знаю ни одного такого подробного документа для Ubuntu.
См. Также: http://www.busybox.net/about.html
.Я использовал этот способ разблокировать зашифрованный раздел удаленно, таким образом, я предполагаю, что он мог работать на Вашу потребность.
dropbear
в initramfs.apt-get install openssh-server dropbear busybox
scp root@my.server.ip.addr:/etc/initramfs-tools/root/.ssh/id_rsa ~/id_rsa.initramfs
/etc/default/grub
и добавьте подобную строку со своей конфигурацией:GRUB_CMDLINE_LINUX="ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>"
update-grub
и
reboot
Всего хорошего, так как различные версии личинки имеют различные параметры конфигурации.
Теперь необходимо смочь соединиться удаленно через ключ SSH и передать некоторые команды процессу начальной загрузки.
Можно найти больше информации здесь.