Назад | Перейти на главную страницу

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

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

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

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

$ 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

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

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