Как запустить Busybox во время загрузки, из GRUB или даже до GRUB?

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

Моя проблема в обратном. Я хочу сознательно запускать Busybox во время загрузки либо из GRUB, либо даже до GRUB. Это возможно? Как мне это сделать? Цель состоит в том, чтобы выполнить некоторые команды до повторной инициализации последовательности загрузки. Поэтому в основном я хочу выполнить некоторые команды, чтобы сделать некоторое оборудование доступным для загрузчика.

1
задан 12 June 2012 в 01:20

2 ответа

Вам нужно будет сделать пользовательский 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

.
0
ответ дан 12 June 2012 в 01:20

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

  • Встроить dropbear в initramfs.

apt-get install openssh-server dropbear busybox

  • Скопируйте ключ SSH, который был автоматически сгенерирован.

scp root@my.server.ip.addr:/etc/initramfs-tools/root/.ssh/id_rsa ~/id_rsa.initramfs

  • В случае, если это Вы не используете редактирование DHCP /etc/default/grub и добавьте подобную строку со своей конфигурацией:

GRUB_CMDLINE_LINUX="ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>"

  • Конфигурация личинки перезагрузки update-grub

и

  • reboot

Всего хорошего, так как различные версии личинки имеют различные параметры конфигурации.

Теперь необходимо смочь соединиться удаленно через ключ SSH и передать некоторые команды процессу начальной загрузки.

Можно найти больше информации здесь.

0
ответ дан 12 June 2012 в 01:20

Другие вопросы по тегам:

Похожие вопросы: