Configure o initramfs-tools para adicionar curl ao initramfs e execute curl em um script na inicialização enquanto estiver no intitrd no Ubuntu 10.04 Server

Configure o initramfs-tools para adicionar curl ao initramfs e execute curl em um script na inicialização enquanto estiver no intitrd no Ubuntu 10.04 Server

Estou tentando aprender como funciona o initramfs e como ele pode ser configurado. Gostaria que o curl fosse adicionado aos pacotes disponíveis no initramfs e executasse um script que usasse o curl durante a inicialização (o que significa que a rede deve ser configurada antes).

Como devo fazer isso? (Eu também preciso que funcione ao atualizar meu kernel.)

Responder1

Você precisa editar seus ganchos do initramfs. Crie seu próprio arquivo assim:

$ 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

Reconstrua seu initramfs:

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

Verifique se ele realmente pousou lá:

$ 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

Responder2

A primeira coisa que você quer saber é que o Ubuntu está usando um sistema chamado Upstart em vez do tradicional init. O ramdisk inicial ainda é usado, mas você reconfigurará o upstart em vez do init.

Segundo, você deseja fazer isso inteiramente no contexto de um initrd? Nesse caso, isso seria muito mais complicado.

informação relacionada