Настройте initramfs-tools для добавления curl в initramfs и запуска curl в скрипте при загрузке в intitrd в Ubuntu 10.04 Server

Настройте initramfs-tools для добавления curl в initramfs и запуска curl в скрипте при загрузке в intitrd в Ubuntu 10.04 Server

Я пытаюсь узнать, как работает initramfs и как его можно настроить. Я хотел бы добавить curl к пакетам, доступным в initramfs, и запустить скрипт, который использует curl во время загрузки (что означает, что сеть должна быть настроена до этого).

Как мне это сделать? (Мне нужно, чтобы это работало и при обновлении ядра.)

решение1

Вам нужно отредактировать ваши initramfs hooks. Создайте свой собственный файл, например:

$ cat /usr/share/initramfs-tools/hooks/curl
#!/bin/sh -e
PREREQS=""
case $1 in
        prereqs) echo "${PREREQS}"; exit 0;;
esac
. /usr/share/initramfs-tools/hook-functions
copy_exec /usr/bin/curl /bin

Пересоберите initramfs:

$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-3.8.0-4-generic

Проверьте, что он действительно попал туда:

$ lsinitramfs -l /boot/initrd.img-3.8.0-4-generic | grep curl
-rw-r--r--   1 root     root       385704 Nov 28 18:32 usr/lib/x86_64-linux-gnu/libcurl.so.4
-rwxr-xr-x   1 root     root       150344 Nov 28 18:32 bin/curl

решение2

Первое, что вам нужно знать, это то, что Ubuntu использует систему Upstart вместо традиционного init. Начальный ramdisk все еще используется, но вам придется перенастраивать upstart вместо init.

Во-вторых, вы хотите сделать это полностью в контексте initrd? Если так, то это будет намного сложнее.

Связанный контент