web-dev-qa-db-ja.com

initramfsにcurlを追加するようにinitramfs-toolsを構成し、Ubuntu10.04サーバーでintitrdを使用しているときに起動時にスクリプトでcurlを実行します。

Initramfsがどのように機能し、どのように構成できるかを学ぼうとしています。 initramfsで利用可能なパッケージにcurlを追加し、起動時にcurlを使用するスクリプトを実行したいと思います(つまり、ネットワークをセットアップする前にセットアップする必要があります)。

どうすればいいですか? (カーネルをアップグレードするときにも機能する必要があります。)

5
Deleted

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
7
Dustin Kirkland

最初に知りたいのは、Ubuntuが従来のinitの代わりにUpstartと呼ばれるシステムを使用していることです。最初のramdiskは引き続き使用されますが、initの代わりにupstartを再構成します。

次に、これを完全にinitrdのコンテキスト内で実行したいですか?もしそうなら、これははるかに複雑になります。

0
Tony