configurationinitramfs-tools以将curl添加到initramfs,并在启动时在脚本中运行curl,而在Ubuntu 10.04 Server的intitrd中运行curl

我试图了解initramfs是如何工作的以及如何configuration它。 我想将curl添加到initramfs中的可用包中,然后运行一个在启动时使用curl的脚本(这意味着必须在它之前设置networking)。

我应该怎么做? (我也需要它来升级我的内核。)

你需要编辑你的initramfs钩子。 像这样创build自己的文件:

$ 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 

重build你的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仍在使用,但是你将会重新configurationupstart而不是init。

其次,你是否想要在initrd的上下文中完全做到这一点? 如果是这样,这将更复杂。